GEORGE MASON UNIVERSITY
Department of Computer Science
CS 112, CS I (4 Units)-Syllabus Spring 2002

Section 1 Monday/Wednesday 3:00-4:15pm, ST 2, 7
Instructor: Dr. Tucker Maney, Office, ST 2, 437 Phone: 993-1543
email: maney@cs.gmu.edu Office hours: Wed 5-8pm
Students in section 1 must enroll in a lab section 201-206

Section 2 Tue/Thur 10:30-11:45am, ST 2, room 7
Instructor: Dr. Richard Carver, Office, ST 2, 343 Phone: 993-1550
email: rcarver@cs.gmu.edu Office hours: Tuesday and Thursday 12:30-1:30pm.
Class notes: http://www.cs.gmu.edu/~rcarver/cs112/cs112.html
Students in section 2 must enroll in a lab section: 207-212

Section 3 Tue 4:30-7:10pm, LH 1
Instructor: Dr. Anne Marchant , Office: ST I 2-C Phone: 993-1526
email: amarchan@cs.gmu.edu Office hours: Tuesday 2-4pm or by appt.
Class notes: http://www.cs.gmu.edu/~amarchan/cs112/cs112.html
Students in section 3 must enroll in a lab section: 213-218

DESCRIPTION:
A first course in computer science for majors and others with a serious interest in computer science. Topics include an overview of computer system hardware and organization, problem solving methods and algorithm development, program structures, abstract data types, simple data and file structures, introduction to analysis of algorithmic complexity and program correctness, and applications development in a high level language that supports modular design.

Prerequisite: Thorough understanding of high school algebra and trigonometry and successful completion of Math Placement Test offered through the Testing Center (i.e. student is eligible to take Math 113), or a grade of C or better in MATH 105.

CS 112 is an intensive, time-consuming, 4 unit class intended for CS majors, CS minors, and students in engineering and/or mathematics. While students in the IT minor program may take CS 112, they are strongly advised to take IT 108 instead. Beginners with little exposure to computers should consider taking IT 103 or IT 108. CS 112 is taught using C++ in a Unix environment. Lab attendance is required.

GRADING POLICY:
labwork 20%, quizzes and instructor evaluation 10%, midterm 20%, programming assignments 20%, final 30%. These are general guidelines. Any conflicts with quizzes or exams must be resolved beforehand. No makeups will be given for any reason. Exam dates are subject to change. Scores may be curved at the instructor's discretion at the end of the term.

Programming assignments and lab work are to be individual efforts. Cheating cases will be referred to the honor committee. Any student found guilty of an honor code violation will receive an F in the class. The MOSS program may be used to check programming submissions. Students are expected to be familiar with:

Late work will be penalized. Work will not be accepted for credit more than 1 week late. Students should check their grades on line by weeks 5, 10 and 14 of the semester. Any discrepancy must be resolved with the TA by the end of the week following. No adjustments to grades can be made after that time. A student missing 3 or more programming assignments or who receives a D or F on the final exam will receive a course grade of D or F at the instructor's discretion. This policy is intended to ensure that students are adequately prepared for CS 211. Students must receive a final course grade of C or better to go on to CS 211.

READING:
Textbooks: W. Savitch, Problem Solving With C++. 3rd ed.,2000. (required)
Special Note: You really need the new edition. It contains an additional chapter on exception handling and other new material. Additionally, when we assign work out of the book, page numbers won't match if you use the old edition.
P. Anderson, Just Enough Unix, 3rd ed., 2000. (required)
TAs, COURSE MATERIALS AND GETTING HELP:
Class FTP Site ftp://mason.gmu.edu/amarchan/cs112
Dr. Maney's CS112 Web Site http://www.cs.gmu.edu/~maney/cs112/
Dr. Carver's 112 Web Site http://www.cs.gmu.edu/~rcarver/cs112/cs112.html
Dr. Marchant's 112 Web Site http://www.cs.gmu.edu/~amarchan/cs112/cs112.html
Dr. Maddox's 112 Web Site http://www.cs.gmu.edu/~tmaddox/cs112
Web CT - CS 112 Bulletin Board http://webct.gmu.edu
TAs and Office Hours of CS 112 Staff ftp://mason.gmu.edu/amarchan/cs112/cs112officehours.txt
SCHEDULE:
Week		Topics					Chapters
1		Hardware and Software Basics		C++ ch. 1-2
		What is Programming?			Unix ch. I,
		Program Structure in C++		pico/pine: 		
		Introduction to Unix			p. 189, 237

2		Data types, Objects and Classes		C++ ch.	2-3
		Operators, Expressions, Loops,		Unix ch. II
		Control Structures, Basic I/O				

3		Functions, Variable Scope, Constant	C++ ch. 3-4
		Value Parameters, Overloading Functions	Unix ch. III

4		void Functions, Reference Parameters	C++ ch. 1-4
		QUIZ (in class), Stubs and Drivers	Unix App. D

5		File I/O, Streams			C++ ch. 5
		Stream Classes				
(Last Day to Drop without Dean's Permission is 2/22 by 5pm)

6		Arrays and for loops			C++ ch. 9.1-9.2
		Strings, 2D arrays			C++ ch. 10		

7		Review					review chapters
		Midterm (Sect. 1: 3/6, Sect. 2: 3/7 , Sect. 3: 3/5)

8		Structures 				C++ ch. 6
		Classes					C++ ch. 16

9		More on Classes				C++ ch. 7
		Nesting, more on Loops, Switch		

10		ADT operations, Overloading Operators	C++ chs.8,9.3-9.4
		Searching/Sorting

11		Pointers				C++ ch. 11
		QUIZ (in class), Dynamic Allocation

12		Recursion				C++ ch.	12
		Command line arguments, practice	(C++ ch. 15		
							is optional)
13		Linked Lists I				
		Linked Lists II				C++ ch. 14

14		Templates				C++ ch. 13
		Review					

Final Exam:
Section 1: Mon 5/13 1:30-4:15pm
Section 2: Thu 5/9 10:30am-1:15pm
Section 3: Tue 5/14 4:30-7:15pm