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.
- 4 programming projects (40%)
- 10 programming labs (5-10%)
- 2 midterm examinations (20-30% together)
- Final examination (20-25%)
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:
- become accustomed to the GMU computing environment
- learn how to use the sumbit program to submit labs/projects
- gain an introduction and ask questions about
labs and programming assignments
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
- Valerie Smith
- Nathan Soules
- Sandeep Kaur
UPA assignment for monitoring WebCt.
Monday: TBA.
Tuesday: TBA.
Wednesday: TBA.
Thursday: TBA.
Friday: TBA.
Saturday: TBA.
TEXTBOOK
- Required text
- Data Structures and Other Objects Using C++ ,
Main and Savitch, Second Edition
- Reference text
- C++ Primer , Lippmane and Lajoie
- Recommended texts
- C++ FAQs , Cline and Lomow
- Unix for the Impatient , Abrahams and Larson
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
- 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.
- 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.
- 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%.
- 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.
- 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.
-
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.
A lab will not be accepted after Monday.
- A late project will be penalized 10% per day.
- 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.
- 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
- Midterm 1: TBA.
- Midterm 2: TBA.
- Final: Dec 12 Thurs, 10:30 am-1:15 pm.
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
- Midterm 1: TBA.
- Midterm 2: TBA.
- Final: Dec 11 Wed, 4:30-7:15 pm.
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
- Midterm 1: TBA.
- Midterm 2: TBA.
- Final: Dec 10 Tue, 4:30-7:15 pm.
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
- Midterm 1 : TBA.
- Midterm 2 : TBA.
- Final : Dec 11 Wed, 1:30-4:15 pm.
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