Topic Learning Objectives Priority
General Usage of Computer for Programming
concept of an “operating system”
use of ssh to access strauss
interpreter
editor
Unix
shell commands: cp, mv, rm, cd, script, pwd, 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
pre-defined function libraries, including testing library
recognize function calls
design recipe
functional decomposition
write function using design recipe
distinguish between function header, body, and call
distinguish between actual and formal parameters/arguments
return value
parameters
scope
pass-by-reference-value vs. pass-by-value
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
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