Difference between revisions of "CompSciWeek3"
From Predictive Chemistry
(→Reading Assignment) |
(→Homework 2 - due Monday, Sept. 15) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
= Class 1: Intermediate shell utilities = |
= Class 1: Intermediate shell utilities = |
||
* commands |
* commands |
||
− | ** cat |
||
+ | ** man/info <-> help() |
||
− | ** grep |
||
+ | ** ls <-> dir() |
||
− | ** sort |
||
+ | ** cat <-> print |
||
− | ** head / tail |
||
+ | ** grep <-> string.find() |
||
− | ** tr, sed |
||
+ | ** sort <-> list.sort() |
||
+ | ** head / tail <-> list.__slice__ (i.e. l[:10]) |
||
+ | ** tr, sed <-> string.replace() |
||
** find |
** find |
||
** w, top, last |
** w, top, last |
||
* shell variables |
* shell variables |
||
* control flow |
* control flow |
||
− | ** pipes, &&, || |
||
+ | ** shell functions -- f() { commands; } |
||
− | ** for loops |
||
+ | ** pipes, redirection, &&, || -- a | b, a && b, a || b |
||
+ | ** for, while loops -- for i in 1 2 3; do ... done, for((i=0; i<$n; i++)); do ... done |
||
+ | |||
+ | References: |
||
+ | * [https://docs.python.org/3/ Python Syntax] |
||
+ | * [http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html Bash Syntax] |
||
+ | * [http://sed.sourceforge.net/sed1line.txt Sed One-Liners] |
||
= Class 2: Python vs. shell = |
= Class 2: Python vs. shell = |
||
Line 26: | Line 34: | ||
* Graphs |
* Graphs |
||
− | = Homework 2 - due |
+ | = Homework 2 - due Tuesday, Sept. 16 = |
+ | |||
+ | Since the due date was pushed back, re-submitted homework will be accepted in place of the original. As a reminder, all homework must be done on your own. Send the homework as a single txt file attachment with the subject line "Sci Comp HW2". If you send a pdf, format it using the script [[Code:text2pdf]]. |
||
+ | |||
* Coding problems: |
* Coding problems: |
||
− | ** Write a loop to sum 100 random numbers (import random, random.random()) using each of the following control structures: for, while, list and `tuple` comprehension. |
+ | ** Write a loop to sum 100 random numbers (import random, random.random()) using each of the following control structures: for, while, list and `tuple` comprehension. The first two can generate numbers in the loop, the last two must create iterators / generators and can use the python builtin `sum' function. |
− | ** Write a shell loop to save 100 numbers from $RANDOM to a file, writing one number per line. |
+ | ** Write a shell loop to save 100 numbers from $RANDOM to a file, writing one number per line. (hint: use the shell append re-direction, '''>>''' instead of the usual re-direction '''>''') |
− | ** Write a shell loop to sum files with 1 number per line. |
+ | ** Write a shell loop to sum files with 1 number per line. -- use shell math expressions, like a=$(($a*12)) |
** Write python and shell programs to print the smallest 10 numbers from such a file. |
** Write python and shell programs to print the smallest 10 numbers from such a file. |
||
** Write a text processing script using sed to get the numbers for the following quantities from [[File:multiwfn.txt]] |
** Write a text processing script using sed to get the numbers for the following quantities from [[File:multiwfn.txt]] |
||
**# '''Basin electric monopole moment:''' (1 number for ea. line) |
**# '''Basin electric monopole moment:''' (1 number for ea. line) |
||
− | **# '''Basin electric dipole moment:''' and '''Basin electron contribution to molecular dipole moment:''' (3 numbers from ea. line tagged X=, etc |
+ | **# '''Basin electric dipole moment:''' and '''Basin electron contribution to molecular dipole moment:''' (3 numbers from ea. line) The input is tagged X=, etc, the output should have only numbers. |
+ | *** (Clarification) The output (if run) would be one file with all the "monopole" numbers, 1 per line, another with all the "dipole" numbers, 3 per line. I just want the code, not the output. |
Latest revision as of 08:09, 15 September 2014
Contents
Reading Assignment
- Beginning Python, Chapter 6
- Algorithms, Chapters 1-2
- focus on tree data structures (formal complexity next week)
- ignore python 'Class' for now
Class 1: Intermediate shell utilities
- commands
- man/info <-> help()
- ls <-> dir()
- cat <-> print
- grep <-> string.find()
- sort <-> list.sort()
- head / tail <-> list.__slice__ (i.e. l[:10])
- tr, sed <-> string.replace()
- find
- w, top, last
- shell variables
- control flow
- shell functions -- f() { commands; }
- pipes, redirection, &&, || -- a | b, a && b, a || b
- for, while loops -- for i in 1 2 3; do ... done, for((i=0; i<$n; i++)); do ... done
References:
Class 2: Python vs. shell
- Reading / Writing Files
- Advanced control structures (list comprehensions)
- Code profiling
- Hash tables
- Graphs
Homework 2 - due Tuesday, Sept. 16
Since the due date was pushed back, re-submitted homework will be accepted in place of the original. As a reminder, all homework must be done on your own. Send the homework as a single txt file attachment with the subject line "Sci Comp HW2". If you send a pdf, format it using the script Code:text2pdf.
- Coding problems:
- Write a loop to sum 100 random numbers (import random, random.random()) using each of the following control structures: for, while, list and `tuple` comprehension. The first two can generate numbers in the loop, the last two must create iterators / generators and can use the python builtin `sum' function.
- Write a shell loop to save 100 numbers from $RANDOM to a file, writing one number per line. (hint: use the shell append re-direction, >> instead of the usual re-direction >)
- Write a shell loop to sum files with 1 number per line. -- use shell math expressions, like a=$(($a*12))
- Write python and shell programs to print the smallest 10 numbers from such a file.
- Write a text processing script using sed to get the numbers for the following quantities from File:Multiwfn.txt
- Basin electric monopole moment: (1 number for ea. line)
- Basin electric dipole moment: and Basin electron contribution to molecular dipole moment: (3 numbers from ea. line) The input is tagged X=, etc, the output should have only numbers.
- (Clarification) The output (if run) would be one file with all the "monopole" numbers, 1 per line, another with all the "dipole" numbers, 3 per line. I just want the code, not the output.