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