Computer Science II: CS 211
Fall 2002
Department of Computer Science
George Mason University


Description

Pre-requisite: C or better in CS 112.
Who should take this course: CS 211 is intended for Computer Science majors and students in mathematical, scientific and engineering majors.
Goals: Study data abstraction using a class, dynamic memory allocation, generic functions and classes, recursion, data structures for stack, queue and binary tree, and algorithms for searching and sorting. Apply these principles in programming projects.
Writing-intensive course: You will be asked to write a total of 4000 words for the whole course. The reports will be graded, marked, and returned to you if necessary for revision.

Grading policy

The approximate grade distribution is as follows.

A section instructor may also include quizzes, homeworks, instructor's evaluation etc. A section instructor will decide the exact distribution and the basis for his evaluation. This evaluation may include additional programming, hour tests, class attendance. Extra credit programming points will not carry over to exam grade points or vice-versa.

You must pass the final to get a "C" or above in the course.

Coursework

Lab: You are required to register for a lab section attached to your course section. Lab time will be your opportunity to:

Reading: You 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 textbook, there will be opportunity to ask questions in class, or during office hours of the instructor, TA or UPA.
Time: You are expected to attend all classes and labs. At least 20 hours per week outside of class is probably needed for you to complete the course work.

Communications

We will use WebCt and e-mail for communication with you. You are responsible for checking regularly for notices from your instructor and TA.

You must obtain a mason account if you do not have one. You must also create your WebCt account. The TA will help you obtain an account and set up your WebCt account in lab 1.

Address for Class WebCt Bulletin Board:    WebCt

UPA's for monitoring Webct UPA assignment for monitoring WebCt.
 Monday:    TBA.
 Tuesday:   TBA.
 Wednesday: TBA.
 Thursday:  TBA.
 Friday:    TBA.
 Saturday:  TBA.



TEXTBOOK

Back to the top



Syllabus & Schedule


 Ch. 1: Program specification, design & analysis
 Ch. 2: Abstract data types and C++ classes
 Ch. 3: Container classes
 First midterm (4th week)
 Ch. 4: Pointers and dynamic arrays
 Ch. 5: Linked lists
 Ch. 6: Templates
 Ch. 7: Stacks
 Ch. 8: Queues
 Second midterm (9th week)
 Ch. 9: Recursion  
 Ch. 10: Trees
 Ch. 12.1, 13.1-2: Searching and sorting

CAVEAT: Syllabus is subject to change to fit the needs of the class.


Back to the top



Programming policies

  1. A lab/project should follow the coding style given on page 775 of the textbook.
    In addition, a lab/project should have the following.
    • A class should be in a namespace with your name.
  2. A 1000 word report is required with each project. The 1000 word count does not include code. The report should have the following sections.
    • Specification.
    • Design.
    • Implementation.
    • Conclusions.
  3. A lab/project will have the following grade distribution.
    • Algorithms: 40%. (Each project will have a separate breakup)
    • Correctness (compilation and running): 25%.
    • Program documentation: 10%.
    • Coding style: 10%.
    • report: 20%.
  4. A lab/project has to be individual effort. There should be no code sharing or discussion of solutions with anyone except the instructor/ta/upa. You should not incorporate code written by others, such as can be found on the Internet or any book.
    As graders, we reserve the right to compare programming code submitted by students to any other code by any means necessary.
    Here is the department's Honor Code statement. Honor Code violations will be reported to the Honor Court.
  5. You may develop a lab/project using any computer system. However, the submitted lab/project must run properly on osf1.gmu.edu using the g++ compiler on osf1.
    Substantial incompatibilities may exist between different compilers.   It is your responsibility to make sure that your lab/project runs properly on osf1.gmu.edu using g++ compiler on osf1 prior to the due date so that you can submit it in a timely fasion. No extensions will be given as a result of compiler incompatibilities.
  6. A lab for all sections will be due on Saturday by 11:59 pm. If your lab is on a holiday, you should contact the TA during his office hours or attend another lab section, if possible.
    The due date for a project will be posted with the project. You will have approximately 3 weeks for each project.
    • You have to submit your lab/project electronically using the submit program on mason.gmu.edu . Electronic submission instructions are here. The submit program keeps the last submission.
    • It is important that you do not touch your programs after 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 the submission.
    • You are expected to backup your program. Failure to do this may result in your getting a zero on a program instead of partial credit if last minute problems occur.
    • If you have submitted a lab/project and you want to re-submit it, you must notify the TA prior to the due date. Once your lab/project has been graded, it will not be regraded.
    • A hardcopy of each project and a report on the project should be given to the TA in the following lab class. If the next lab class is a holiday, the hardcopy and the report should be in the TA's mailbox by 5:00 PM next school day.
    • Accidently deleting your program, having problems connecting, etc., will not be accepted as excuses.
    • Requests for extension will only be considered for situations that can be documented and involve a large portion of that time period.
    • Late lab submissions will have the following penalty.
      • Sun: 10%.
      • Mon: 20%.
      A lab will not be accepted after Monday.
    • A late project will be penalized 10% per day.
  7. You will be given credit only for code that works. You should code and test functions as you write them. Do not code the whole thing and then try to get it to work.
  8. Once grades are posted, students have 1 week to contest the grade--beyond that the grade will not be changed.

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. If you are running linux on your computer, you can down-load the current release of GNU GCC from http://gcc.gnu.org/.
On Unix systems, please use g++ rather than cxx. cxx is a DEC product not available on the Sun workstations on which your programs will be compiled and run by the TA.

Back to the top

Programming projects. Programming labs.
Section 1 : Tue/Thu 10:30-11:45 am, ST 122
Instructor : Prof. Rahul Singh
Office: 229 ST 2; Phone :703-993-3176; Email: rsingh9@cs.gmu.edu
Office hours: Tue/Thu 3:00-4:30 pm.

Exam dates Teaching assistant
        Name:         Tung Ngo
	Email:        tngo6@gmu.edu
	Office hours: Fri 4-8 pm, 365 ST 2
Undergraduate peer assistant
        Name:           Minh Do
	Email:          mdo2@gmu.edu
	Office hours:   Fri 1-3 pm and Sat 2-4 pm, 268 ST 2

Section 2 : Wed 4:30-7:10 pm, R A111
Instructor : Prof. Tamara Maddox
Office: 437 ST 2; Email: tmaddox@cs.gmu.edu
Office Hours: Mon 11:30 am-1:00 pm and Tue 7:15-8:15 pm.

Exam dates Teaching assistant
        Name:         Sameer Chandra
	Email:        schandra@gmu.edu
	Office hours  Thu 6-9 pm, 365 ST 2
Undergraduate peer assistant
        Name:           Nathan Soules
	Email:           nsoules@gmu.edu
	Office hours:   TBA, 268 ST 2

Section 3 : Tue 4:30-7:10, ST2 7
Instructor : Prof. Clifford Nelson
Office: 435 ST 2; Email: cliffordnelson@earthlink.net
Office hours: By appointment

Exam dates Teaching assistant
        Name:         Sameer Chandra
	Email:        schandra@gmu.edu
	Office hours  Thu 6-9 pm, 365 ST 2
Undergraduate peer assistant
        Name:           Valerie Smith
	Email:           vsmith@gmu.edu
	Office hours:   Sat 12-2 and Sun 4-6, 268 ST 2

Section 4 : Mon/Wed 1:30-2:45 pm, ST 131
Instructor : Prof. Tamara Maddox
Office: 437 ST 2; Email: tmaddox@cs.gmu.edu
Office Hours: TBA.

Exam dates Teaching Assistant
        Name:         Ashok Vandana
	Email:        avandana@gmu.edu
	Office hours  Tue 6-8 pm and Wed 5-7 pm, 365 ST 2
Undergraduate peer assistant
        Name:           Valerie Smith
	Email:           vsmith@gmu.edu
	Office hours:   Sat 12-2 and Sum 4-6, 268 ST 2