CompSciWeek3

From Predictive Chemistry
Revision as of 17:35, 10 September 2014 by David M. Rogers (talk | contribs) (Homework 2 - due Monday, Sept. 15)

Jump to: navigation, search

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 Monday, Sept. 15

  • 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 shell loop to save 100 numbers from $RANDOM to a file, writing one number per line.
    • Write a shell loop to sum files with 1 number per line.
    • 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
      1. Basin electric monopole moment: (1 number for ea. line)
      2. 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.