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
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
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;
conditionals (if, if/else, switch, ternary operator)
iteration
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
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