CS 211, Computer Science II
George Mason University
DEPARTMENT OF COMPUTER SCIENCE
Course Description -- Spring 2004



Section 1 :
            Lecture: Mon 7:20-10:00 pm, IN 136
            Instructor: Prof. John Otten, Office: ST2, Rm 435
            Phone:540-349-3542;
            Office hours: by Appointment
Section 2 :
            Lecture: Mon/Wed 1:30-2:45 pm, ENT 178
           Instructor: Prof. Tucker Maney, Office: ST2, Rm 469
            Phone: 703-993-1543;
            Office hours:See homepage
Section 3 :
            Lecture: Wed 4:30-7:10 pm, IN 136
            Instructor: Prof. Cliff Clausen, Office: ST2, Rm 435
            Phone: 301-594-7877; Email: cclausen@gmu.edu;
           Office hours: See homepage
Section 4 :
            Lecture: Tues/Thurs 10:30-11:45 am, IN 134
            Instructor: Prof. Tamara Maddox, Office: ST2, Rm 430B
            Phone: 703-993-1525; Email: tmaddox@cs.gmu.edu;
            Office hours: Wed 2:00 - 4:00 pm abd immediately after class
Address for Class WebCt Bulletin Board:    WebCt
PROGRAMMING PROJECTS: Will be posted here Electronic submission instructions can be found here.

Project report (external documentation) guidelines can be found here.


LABORATORY WORK:

Lab time will be your opportunity to: Lab attendance is *required.*  Failure to attend lab will result in significant loss of both instruction and hands-on experience.  In addition, quizzes or in-lab assignments may not be made up. During lab time, your lab instructor will provide examples and assistance with concepts covered in the book and during lecture, and occasionally will introduce new material as well.  Accordingly, you should fully prepare yourself for lab by attending lectures and completing any assigned reading, as well as carefully reviewing and, in appropriate cases, getting started on the lab assignments provided in advance. Lab will also provide the opportunity to work on the GMU computer systems in a controlled environment  and to ask more detailed questions than may be possible during your lecture.

Lab assignments for each lab period are due via electronic submission on or before the next lab period.

Please note that you must attend the lab session you are registered for.  You may be able to attend another lab session if it is tied to your lecture session if your instructor agrees;  however, individual instructors may vary both lab materials and lab assignments.  Accordingly, attendance at any lab session not specifically connected with your lecture section cannot be counted on to cover the same material as those associated with your lecture section.  In addition, quizzes taken in another lab section will not count towards your grade unless special arrangements were made in advance and accepted by both your instructor and TA.  Accordingly, you should plan to attend the lab session you are registered for.





DESCRIPTION

A second course in computer science.
Goals: Study some of computing's core areas, namely, data structures and algorithms. Apply the principles learned in class to several programming projects.
Who should take this course: CS 211 is intended for Computer Science majors and students majoring in other mathematical, scientific, and engineering subjects.

PRE-REQUISITE: C or better in CS 112

Back to the top



COURSEWORK

Reading: Students are responsible for reading and understanding the material in the textbook. However, we will not necessarily cover all of it in class. If you do not understand something in the book, there will be opportunity to ask questions in class, during your teachers' office hours, or those of the course TAs.

Due Dates: Labs are due prior to the beginning of the next lab period in which the assignment was given. Programming projects will be due the assigned date and time. Work will be submitted electronically using the submit program on mason.gmu.edu.

Late work: Late labs will not be accepted. Late projects will be penalized 10 points a day. Note that if you have submitted a project and decide you want to submit a late project, you MUST notify the TA prior to the due date. Once your project has been graded, it may not be resubmitted. No extra credit points, when available, will be given to late projects. Individual requests for extensions will not be granted.

Missing an Exam or Contesting a grade Once labs or projects grades are sent to you, you have one week to contest the grade. After that the grade will not be changed. You must have a written excuse (doctor's note, for example) to miss an exam. Once a test or quiz is returned, you have one week to contest the grade-- beyond that the grade will not be changed. Note that the week starts when a test is returned to the class, which may or may not be when you choose to pick yours up.

Incomplete A request for an incomplete (IN) will only be considered in the final quarter of the course (all assignments up to and including the 3rd project must have been turned in and no additional work on these will be accepted). Request must be made in writing, accompanied by a note from a doctor or employer and applicable contact information.

Back to the top




COMMUNICATIONS

We will use WebCt and Unix e-mail for official communication. You are responsible for checking the system regularly for notices from your instructor or TA.

You MUST obtain a mason account if you do not have one. (The TA's will help you obtain an account and set up your WebCt account during a beginning lab session.) Please use this account for any individual correspondence with your instructor and/or TA.  (GMU faculty members have been instructed not to respond to student email originating from a non-GMU account.)  Your WebCT account will be set up automatically if you are properly registered for this class.  Your WebCT account will be identical to the name of your GMU account.  If you have not used WebCT before, your initial password will be the last 4 digits of your GMU ID.

Back to the top




WRITING-INTENSIVE COURSE

CS211 has been designated a writing-intensive course. This means that during the semester you will be asked to write a total of 3500 words, which will be graded, marked, and returned to you if necessary for revision. These writing assignments (and revisions, where appropriate) will be graded and will be a factor in the course grade as explained below.

Writing assignments that involve formal documentation of the four major programming projects will
count towards the 3500 word writing requirement, and will account for a portion of the grade on
those projects.  Additional writing assignments may vary from instructor to instructor, and may be
included in your instructor's evaluation grade.

Students *must* complete *all* writing assignments satisfactorily in order to earn a grade of "C" or better in the class.

Back to the top




GRADING POLICY

Your course grade will be a weighted average of the following items:

Each section instructor will decide the basis for his/her lab grades and instructor's evaluation, which might include additional programming, pop quizzes, hour tests, class participation and/or other things as determined by your instructor.

Extra credit programming points do no carry over to test grade points or vice-versa. Any student earning a "D" or "F" on the final exam will receive a "D"or "F" in the class, at the discretion of the instructor.

Back to the top




PROGRAMMING POLICIES

Programming projects may be weighted differently. These are to be individual efforts, meaning that no code sharing or discussion of problem solutions with anyone except your instructor or a course UPA or TA. You may not incorporate code written by others, such as can be found on the Internet or any of the numerous CS books. Documentation is required.

You *may*, however, ask questions or respond to queries on WebCT regarding projects or other assignments, so long as you do not post any C++ code or pseudocode, and so long as you do not provide specific solutions to the overall problem or algorithm design (even in English). "Summarizing" WebCT statements or responses to another student verbally regarding an assignment are *not* acceptable, and are subject to the above ban on discussing assignment solutions.  Such discussion or code sharing constitutes an honor code violation. Suspected honor code violations will be reported to the Honor Committee.  (For further information regarding honor code violations in programming, see the Computer Science department's Honor Code statement.)

During a lab session, with the TAs permission, you are allowed to help a fellow student debug a program or answer very specific questions. Allowing another student to copy your work or to copy that of another student, is however, an Honor Code violation.

You will be given credit only for code that works. This means that you should code and test functions as you write them, not code the whole thing and then try to get it to work. Students may develop programs using any computer system they have available. Please note, however, that submitted projects must run under Cygwin or on a compiler available on osf1, unless otherwise specified by your instructor.

You are expected to backup and submit/resubmit your program as you get different pieces working. The submit program keeps the last version you submit. Failure to do this may result in your getting a zero on a program instead of partial credit if last minute problems occur. Note that accidently deleting your program, having problems connecting, etc., will not be accepted as excuses. It is important that you not touch your programs once you have done your final submission: If there are submission problems, consideration for credit will only be given if it can be verified that the programs were not changed after being submitted.

A hardcopy of each project (including documentation) will be handed in at the beginning of the first lecture following the due date.


Back to the top




TEXTBOOK


Back to the top




SOFTWARE

If you plan to program at home, it is recommended that you download the cygwin environment from RedHat. The URL is sources.redhat.com.cygwin. Follow the install link. Note that you have to specifically select g++, make, and the gdb (debugger). See here for directions. You can also obtain emacs (editor) from the same source. If you are running linux on your computer, you can down-load the current release of GNU GCC from http://gcc.gnu.org/. JEdit, a free, easy to use editor present in the labs can be found here


Back to the top




SYLLABUS & SCHEDULE

For each week, one or more chapters of the textbook as indicated below will be read in advance of class. Students are expected to read the corresponding chapters below in advance of the class in which they will be covered.




Week     Topic (Note: this is a tentative schedule)
 
1        Syllabus
         Program specification, design & analysis
         OO principles
         Abstract data types and C++ classes
2        Operator overloading
         UML
         Big-O
3        Templates 
         Inheritance
4        Pointers
         Midterm 1
5        Pointers and arrays
         Dynamic memory allocation
6        Dynamic arrays
         Destructor, Overloading assignment operator, copy constructor
7        Linked list basics
8        Linked list as ADT
         Ordered Linked List
9        Doubly Linked list
         Circular Linked Lists
         STL list
10       Stacks
         STL stack
11       Queues
         STL queue
12       Hashing
13       Recursion 
         Searching
14       Sorting 
Optional topics:   Binary trees
CAVEAT:  This schedule is subject to change to best serve the needs of the class.
Back to the top


EXAM DATES

Back to the top



TEACHING ASSISTANT
	Name        : Ge Wang
	Email       : gwang5@gmu.edu
	Office hours: Wed 3:00-5:00pm, Sat 10:00am-Noon, in ST 2, Rm 365
        Labs        : 204,205,206     

        Name        : Peter Mburu
	Email       : pmburu@gmu.edu
	Office hours: Thur 2:30-6:30pm, in ST 2, Rm 365
        Labs        : 201,202,203

        Name        : Aohan Zhao
	Email       : azhao@gmu.edu
	Office hours: Tues 2:30-6:30pm, in ST 2, Rm 268
        Labs        : 210,211,212 


UNDERGRADUATE PEER ASSISTANT Name : TBA Email : @gmu.edu
Tutoring hours: TBA in ST2, Rm 268

Back to the top