Computer Science II: CS 211
Spring 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 3500 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%)
- Programming labs (5-10%)
- 2 midterm examinations (20-30% together)
- Final examination (20%)
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 with a "C" or better
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 should not post any code or major
portions of pseudo-code on the WebCt.
You must obtain a mason account if you
do not have one.
If you registered before the start
of the semester, the WebCt account
has already been created for you.
If you had an account before, then you can
use your earlier password.
In the other case, your password is the
last four digits on your GMU ID.
If you are adding the class, please send
an email to Dr Maddox for opening the account.
Address for Class WebCt Bulletin Board: WebCt
UPA assignment for monitoring WebCt is as follows.
Monday: Minh Do mdo2@gmu.edu
Tuesday: Greg Butterfield gbutterf@gmu.edu
Wednesday: Bryan Topsher btopsche@gmu.edu
Thursday: Greg Butterfield gbutterf@gmu.edu
Friday: Minh Do mdo2@gmu.edu
Valerie Smith vsmith@gmu.edu
Saturday: Valerie Smith vsmith@gmu.edu
Bryan Topscher btopsche@gmu.edu
Sunday: Greg Butterfield gbutterf@gmu.edu
Valerie Smith vsmith@gmu.edu
TEXTBOOK
- Required text
- Data Structures and Other Objects Using C++ ,
Main and Savitch, Second Edition
- Recommended texts
- Just enough Unix , P. Andersen.
- Problem Solving with C++ , Savitch (cs112 textbook)
- C++ Primer ,
by Lippmane and Lajoie
- 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.
- Help from instructor/ta/upa.
- You should bring a hard copy of
the complete program.
-
- You must have a specific question.
In other words, you must ask about
a compilation error or a run-time
error or an incorrect result.
- When you do not have a specific
question, you will be guided to
identify the problem.
- You will not be given the complete
answer to the question.
However, you will be guided to
find the answer.
- If there are other students waiting
in line, you will be helped from 5-10
minutes depending on the length of the
line.
- A 750-850 word report is required with each
project.
The 750-850 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): 20%.
- 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.
(See 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.
- The first lab for all sections is due
on Monday, Jan 28 by 11:59 pm.
The remaining labs/projects for all sections are 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 only the
latest version of a 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.
- 12:00 PM Sat - 11:59 PM Sun: 10%.
- 12:00 PM Sun - 11:59 PM Mon: 20%.
A lab will not be accepted after 11:59 PM 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.
-
Lab 1 Due Mon, Jan 28, 11:59 PM.
-
Lab 2 Due Sat, Feb 2, 11:59 PM.
-
Lab 3 Due Sat, Feb 9, 11:59 PM.
-
Lab 4 Due Sat, Feb 23, 11:59 PM.
-
Lab 5 Due Sat, Mar 2, 11:59 PM.
-
Lab 6 Due Sat, Mar 9, 11:59 PM.
-
Lab 7 Due Sat, Mar 23, 11:59 PM.
-
Lab 8 Due Sat, Mar 30, 11:59 PM.
-
Lab 9 Due Sat, Apr 13, 11:59 PM.
-
Lab 10 Due Sat, Apr 20, 11:59 PM.
Section 1 : Tue/Thu 10:30 AM - 11:45 AM, ENT 178
Instructor : Prof. Tamara Maddox
Office: 437 ST 2;
Phone :703-993-3471;
Email: tmaddox@cs.gmu.edu
Office hours: Tue/Thu 12:00 AM - 1:30 PM.
Exam dates
- Midterm 1: Feb 14.
- Midterm 2: Mar 28.(tentative)
- Final: May 9 Thurs, 10:30 AM - 1:15 PM.
Teaching assistant
Name: Krishna Palati
Email: kpalati@gmu.edu
Office hours: Thu 2:00 PM - 4:00 PM and 6:00 PM - 8:00 PM, 435 ST 2
Undergraduate peer assistant
Name: Sindhu Akula
Email: sakula1@gmu.edu
Office hours: Tue and Wed 5:00 PM - 7:00 PM, 268 ST 2
Section 2 : Wed 4:30 PM -7:10 PM, ENT 178
Instructor : Prof. Rahul Singh
Office: 229 ST 2;
Email: rsingh9@cs.gmu.edu
Office Hours: Tue 4:30 PM - 6:30 PM and Thu 5:00 PM - 6:00 PM.
Exam dates
- Midterm 1: Feb 13.
- Midterm 2: Mar 27. (tentative)
- Final: May 8 Wed, 4:30 PM - 7:15 PM.
Teaching assistant
Name: Sameer Chandra
Email: schandra@gmu.edu
Office hours Sat 12:00 AM - 4:00 PM, 435 ST 2
Undergraduate peer assistant
Name: Valerie Smith
Email: vsmithgmu.edu
Office hours: Sat and Sun 10:00 AM - 12:00 AM, 268 ST 2
Section 3 : Thu 4:30 PM - 7:10 PM, ENT 178
Instructor : Prof. Tamara Maddox
Office: 437 ST 2;
Phone :703-993-3471;
Email: tmaddox@cs.gmu.edu
Office hours: Tue/Thu 12:00 AM - 1:30 PM
Exam dates
- Midterm 1: Feb 14.
- Midterm 2: Mar 28. (tentative)
- Final: May 9 Thu, 4:30 PM - 7:15 PM.
Teaching assistant
Name: Gulbir Sethi
Email: gsethi1@gmu.edu
Office hours Mon 11:00 AM - 1:00 PM and 5:00 PM - 7:00 PM, 435 ST 2
Undergraduate peer assistant
Name: Minh Do
Email: mdo2@gmu.edu
Office hours: Fri 10:00 AM - 2:00 PM, 268 ST 2
Section 4 : Mon 7:20 PM - 10:00 PM, A111 Robinson
Instructor : Prof. Rahul Singh
Office: 229 ST 2;
Email: rsingh9@cs.gmu.edu
Office Hours: Tuesday: 4:30 PM - 6:30 PM and Thursday 5:00 PM - 6:00 PM.
Exam dates
- Midterm 1: Feb 18.
- Midterm 2: Apr 1. (tentative)
- Final: May 13, 7:30 PM - 10:15 PM.
Teaching assistant
Name: Arshad Ahmed
Email: aahmed8@gmu.edu
Office hours Fri 3:00 PM - 7:00 PM, 435 ST 2
Undergraduate peer assistant
Name: Anh-Tuan Tran
Email: atranf@gmu.edu
Office hours: Sun 1:00 PM - 5:00 PM, 268 ST 2
Section 5 : Tue 7:20 PM -10:00 PM, ENT 274
Instructor : Prof. Clifford Nelson
Office: 435 ST 2;
Email:
cliffordnelson@earthlink.net
Office Hours: Tue 6:00 PM - 7:00 PM by appointment.
Exam dates
- Midterm 1 : Feb 12.
- Midterm 2 : Mar 26. (tentaive)
- Final : May 14, 7:30 PM - 10:15 PM.
Teaching Assistant
Name: Sameer Chandra
Email: schandra@gmu.edu
Office hours Sat 12:00 AM - 4:00 PM, 435 ST 2
Undergraduate peer assistant
Name: Valerie Smith
Email: vsmith@gmu.edu
Office hours: Sat and Sun 10:00 AM - 12:00 AM, 268 ST 2
More undergraduate peer
assistants
Name: Greg Butterfield
Email: gbutterf@gmu.edu
Office hours: Tue 2:00 AM - 4:00 PM, 268 ST 2
Name: Bryan Topscher
Email: btopsche@gmu.edu
Office hours: Wed 11:00 AM - 1:00 PM, 268 ST 2