GEORGE MASON UNIVERSITY

Department of Computer Science

CS 112, CS I (4 Units)-Syllabus Summer 2004


 

Instructor: Yih-Feng Hwang, Office ST2 435

email: yhwang@cs.gmu.edu Office hours by Appointment

 


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 10%, quizzes and instructor evaluation 10%, midterm 20%, programming assignments 30%, 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 assignments and labs will be penalized 20% for each day they are late. Neither will be accepted for credit more than 4 days late. 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++. 4th ed.,2002. (required)


 

SCHEDULE:

 

Class          Topics                                        Chapters
1              Hardware and Software Basics                  C++ ch. 1-2
               What is Programming?                  
               Program Structure in C++              
               Introduction to Unix                  
 
2              Data types, Objects and Classes               C++ ch. 2
               Operators, Expressions 
 
3              Loops, Control Structures, Basic I/O          C++ ch. 3
               with CIN/COUT                  
 
4              Functions, Variable Scope, Constant           C++ ch. 3-4
               Value Parameters, Overloading Functions       
 
5              void Functions, Reference Parameters,         C++ ch. 4
               Stubs and Drivers
        
6              File I/O, Streams, Stream Classes             C++ ch. 5
               Character I/O                         
 
7              Arrays and For Loops; Strings;                C++ ch. 10.1 – 10.3
               String class                                  C++ ch. 11.1 – 11.2
               2d Arrays                                     C++ ch. 10.5
 
8              Designing flow of control;                    C++ ch. 7
               Review For Midterm
               MidTerm
 
9              Nesting loops; Booleans; Switch  
               Structs; Classes                              C++ ch. 6
 
10             Classes, ADTs, Friends,                       C++ ch. 6,8 
               Overloading operators 
                                                      
11             Separate Files(Class Definition(interface),   C++ ch. 9
               Class Method Definitions(implementation) 
               and Application(main)), Makefiles     
 
12             Command line arguments, dynamic allocation    C++ ch. 12
               Introduction to pointers
 
13             Pointers,                                     C++ ch. 12
               Searching/Sorting                             C++ ch. 10.3-10.4
 
14             Review for Final                                      
 

FINAL EXAM:

 

Wednesday 7/28/04,  4:30-7:10 pm