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