CS 1044
Programming in C
Spring 2002

Instructor:Donald Allison
Office:626 McBryde, tel. 231-4212, allison@cs.vt.edu
Office Hours:MW 2.30 – 4.00 pm, F 10.00 – 11.00 am, and by appointment
Class Meets:MW 11.15 am – 12.05 pm in Hancock 100
Labs Meet:W 4.00 – 6.00 pm (index# 11349), Th 2.00 – 4.00 pm (index# 16225), Th 5.30 – 7.30 pm (index# 16224)
GTA:Peter DePasquale
GTA Office:521 McBryde, tel. 231- 5914, pjdepasq@vt.edu
GTA Office Hours:W 2.00 – 3.50 pm
Textbook:Dale, Weems, and Headington, Programming and Problem Solving in C++ (2nd edition), Jones and Bartlett,2000
(suggested) Computer Science 1044 notes available from A-1 Copies

Grading Policy: Homeworks 30% Labs 25%
Midterm I 10% Final 20%
Midterm II 10% Quizzes 5%
Honor Code:
The honor code will be strictly enforced in this course. All assignments submitted shall be considered graded work, unless otherwise noted. All aspects of your course work are covered by the honor system. Any suspected violations of the honor code will be promptly reported to the honor system. Honesty in your academic work will develop into professional integrity. The faculty and students of Virginia Tech will not tolerate any form of academic dishonesty.

Assignments and Grading Policy:
Above all READ and UNDERSTAND notes discussed in class. Experience has shown that the single most important thing you can do in this course is to come to class faithfully.

This is in large part a programming course, and the homework components will count for 30% of your grade. You are expected to produce programs which are readable as well as correct. Programs (source code files) will be submitted to the Enhanced Automated Grader. There is information on the website describing how to prepare a program for submission and how the Automated Grader scores your submission.

Equipment and Programming Language:
All programming will be done in the C++ programming language. Programming will be done on an IBM PC or compatible running Windows NT using the Microsoft Visual C++ compiler. Several of these machines are available in the departmental Computing Lab in McBryde 116/118.

Course Outline                                                                                                                                    Reading

1.     Introduction

Problem Solving: Simple C++ program                                                                 p. 1-42

Computer Systems: Hardware and Software                                                                                Notes


2.     Programming Process

Algorithms, Program Translation                                                                                           Notes

Top Down Design, Program Documentation


3.     C++ Fundamentals

Syntax, Semantics                                                                                                              p. 47-57

Data Types: Constants, Statements                                                                                          p. 58-73

Arithmetic Expressions, Operator Hierarchy                                                                              p. 107-116

Input/Output and examples                                                                                                p. 123-8, 154-176


4.     Booleans and Selection

Boolean Expressions, Truth Tables, Operator Hierarchy                                              p. 212-227

If/Else statements, nested If statements                                                                             p. 228-243

Switch Statements                                                                                                          p. 462-466


5.     Looping Structures

Count and Event Controlled Loops                                                                                     p. 276-302

Do - While, For statements                                                                                             p. 468-474

Break and Continue Statements                                                                                          p. 475-477


6.     Functions

Function Structure, Scope                                                                                                 p. 326-342

Parameters: Types, Lists, Mechanisms for Passing Parameters                                             p. 344-355


7.     Number Representation

Integers, Floating Point Numbers                                                                                                p. 496-501

Precision, Size, Difficulties, Errors                                                                                   p. 520-530, Notes


8.     Elementary Types

User Defined, Enumerated Types                                                                                 p. 532-546

Type Coercion


9.     Arrays

Structured types, Indices, Array Operations                                                                                p. 664-675

Array Parameters                                                                                                                               p. 676-678

Parallel and Multi-Dimensional Arrays                                                                                p. 685-704


10. Structures (Records)

Structure Referencing, Access, Manipulation                                                                           p. 579-589

Arrays of Structures, Hierarchical Structures


11. Searching and Sorting

Linear, Binary Search                                                                                                    p. 764-771

Bubblesort, Selection Sort, Examples                                                                                Notes


If any student needs special accommodations because of a disability, please contact the instructor during the first week of classes.