March 2007
CSE 142: Computer Programming I
Purpose:
- To teach basic programming-in-the-small abilities and concepts,
with procedural/functional abstraction and simple built-in datatype
manipulation the highlights.
- To teach basic abilities of writing, executing, and debugging
programs.
Precondition Concepts:
- high-school algebra (symbolic expressions and formulas)
Precondition Abilities:
Precondition Skills:
Postcondition Concepts:
- goals of programming
- correctness
- maintainability (programming style, structure)
- specification vs. design vs. implementation
- informal pre/post conditions, invariants, side effects
- stepwise refinement
- simple data types
- variables, values, and types
- operators, precedence, and associativity
- numbers (integer and floating point)
- booleans
- characters
- strings
- one-dimensional arrays
- classes
- simple control structures
- sequencing
- input and output
- conditional evaluation
- iteration
- nested conditionals and iteration
- procedural, functional abstraction
- definition vs. invocation
- parameter passing
- formals vs. actuals
- call-by-value vs. call-by-reference
- return types and values
- simple variable scoping rules
- external libraries
- string operations
- terminal vs. file I/O
- simple graphics
Postcondition Abilities:
- carry out simple program development process
- read others' code
- extend others' code
- write new code from scratch, e.g. up to about 300 lines long
- document programs
- hand-simulate programs
- debug programs
- develop good test suites
- decompose solution into procedures & functions
- (on the order of 3-15 small procedures)
- use simple programming environment tools:
- editor
- compiler/interpreter
- use reference manuals and on-line resources to get information
Postcondition Skills:
- simple programming skills in Java