CSC 221: Computer Programming I
Fall 2001
Course Overview
SKILLS DEVELOPED
problem-solving: the ability to take a problem, break it into manageable pieces,
design and organize a step-by-step solution
programming: the ability to design and implement problem solutions in the form
of programs that can be understood and executed by computers
critical-thinking: the ability to analyze and indentify the important features of
a problem, systematically test and evaluate solutions
communications: the ability to express ideas in a clear and precise manner, for
understanding by the computer (code) or another person (code & comments)
GENERAL KNOWLEDGE
Overview & history: hardware vs. software, technology generations, ...
Top-down design: approach to problem-solving, manage complexity, ...
LANGUAGE FEATURES
C++ basics: program structure, input & output, variables, constants, ...
Expressions & assignments: mathematical operators, library functions, ...
User-defined functions: calling sequence, parameters, return type, ...
Conditional execution: if/if-else/cascading if-else, boolean expressions, ...
Libraries & objects: cctype library, ADT, C++ classes (e.g., Die class), ...
Repetition: while loops, black hole loops, counters & sums, for loops, ...
Top-down design: tasks & subtasks, reference parameters, ...
Arrays: declaration, indexing, traversing via a loop, arrays as pointers, ...
Files: ifstream, open & close, input driven loops, ofstream, get & getline, ...
Vectors: nice array class, declaration, size & resize, push_back
PROGRAMMING TECHNIQUES
Constants for storing "magic" values
Functions for computational abstraction
Conditionals for alternatives (1-way if, 2-way if-else, multi-way cascading if-else)
Loops for repetition (conditional while loops, counter-driven for loops)
Counters & sums for collecting data
Arrays for storing and accessing large amounts of related data
Files for easier input/output
Vectors for more flexible & robust arrays