Computer Science
Generic Course Syllabus
(For actual course syllabi please consult the schedule of classes, determine the instructor for the courses and consult his or her home page.)


 
Course #: C101
Course Title: Computer Programming I
Prerequisites: M014 or Level 3 on the math placement exam.
Credits: 4
Text Book: Program Development and Design Using C++, by Gary Bronson
Supplemental Texts: Handouts
Course Information:  C101 is a course designed to give an introduction to computer science and programming. The course assumes no previous experience with computers, but some mathematics background is needed. Students not familiar with basic algebra will be at a disadvantage. C++ is the programming language that is used for assignments. 
Other Information: 1. Introduction to computers.
a. Components of a computer (CPU, memory, peripherals).
b. Operating systems.
c. Files
d. Bits, bytes, words, addresses, K = 1024. How data is stored in a computer.
e. Stored program concept. Machine instructions.
f. High level languages and compilers.
g. Ethical behavior in IUSB computer science courses (handout available).
2. Programming Rules and Methodology.
a. Pseudo-code.
b. Algorithm design.
c. Top-down design. Modularity.
d. Program style: indenting, choices for identifiers, using named constants, commenting.
3. Programming Environment Topics
a. Using Windows 200X, XP and the Visual C++ integrated environment.
b. Program testing.
c. Debugging techniques, including using the debugger.
4. Fundamental Programming Techniques
a. Swapping the values in two variables.
b. Simple loop based algorithms, including summing loops, counting loops.
c. When to use "for", "while" and "do-while" loops. Consider suggesting use a "for" loop only
if the number of repetitions is known in advance.
d. Searching: linear and binary search.
e. Sorting: cover insertion sort and possibly one other sort.
f. Processing character streams using cin.get() and EOF or cin.good().
5. Programming Assignments
The students should be kept busy with programming assignments. Students seem to do better if assignments are due weekly.  No assignment during a week when a test is scheduled allows students to study!
6. The C++ Programming Language
a. Basic syntax (rules for identifiers, declarations, etc.).
b. Fundamental data types (char, int, float, double, unsigned, short, long). Enumerated types. The inexactness of stored floats.
c. C++ I/O operators, functions in iostream and iomanip.
d. C++ operators
   i. The "operator concept": All C++ operators return a value.
   ii. Precedence of operators.
   iii. Postpone discussion of following operators:
         scope resolution, new, delete, comma, and bitwise operators.

e. Control flow statements (if, if-else, switch, break, while, do-while, for, continue).
f. Functions and parameter passing; Value and reference parameters.
g. Standard libraries: ctype, stdlib, string.h.
h. Scope. Static and external (global) variables.
i. Arrays: The relationship between pointers and arrays. "Strings".
j. Preprocessor: #define and #include.