This is an old revision of the document!


Topic Learning Objectives Priority

General Usage of Computer for Programming

concept of an “operating system”
use of ssh to access strauss
interpreter
interpreter vs. compilation
editor
shell

  • shell commands: cp, mv, rm, chmod, ls, cat, mkdir, rmdir, more
  • directories
  • command line arguments

basic html and chmod to create simple web pages

computer architecture

  • parts of the computer (computer organization)
  • registers,cache,ram,disk
  • file system - directories and files

Programming Constructs

  • expressions
  • statements
  • data types
  • variables
  • functions
    • recognize function calls
    • design recipe
    • write function using design recipe
    • distinguish between function header, body, and call
    • distinguish between actual and formal parameters/arguments
    • return value
    • parameters
    • nested
    • recursive
    • parameter default values
    • optional args
    • lambda
    • doc strings (python)
  • assignment statements
  • operators, operator precedence and associativity, order of operations
  • truth values, boolean expressions, logical operators;
    • relation to zero
  • conditionals (if, if/else, switch, ternary operator)
  • iteration
    • definite iteration (for loops, while loops)
    • indefinite iteration (while loops)
    • comprehensions (python)
  • Data
    • strings
    • lists/arrays
    • dictionaries (python)
    • structs

pass-by-reference-value vs. pass-by-value

addresses

pointers

constants

simple file I/O

pre-defined function libraries, including testing library

strings, and string functions

classes

  • constructor
  • str, repr

functional decomposition

scope linear search binary search sorting: either selection or insertion sort; either merge or quicksort finding min, max, count, sum, average of a sequence of data values

(from either an input file or an array).	 	 	 	 

menu driven programs linked lists

Optional:

  • DeMorgan's law
  • binary, hex, octal, decimal number systems
  • structured programming (sequence, selection, and repetition are sufficient, goto not needed. Bohm and Jacopini, Dijkstra letter).

Resources: http://docs.python.org/tutorial/controlflow.html#intermezzo-coding-style