CS 211 / 211H: Object Oriented Programming

George Mason University

Spring 2014

1 Basic Information

1.1 Prerequisite

Grade of C or better in CS 112.

1.2 Instructors

NameProf. Mark SnyderProf. Chris Kauffman
Sections002, 003001, H01
OfficeENGR 5346ENGR 5341
See the course Piazza site for contact info for all TAs.

1.3 Lecture

001MW12:00 pm-01:15 pmKauffmanEXPL L003
002TR12:00 pm-01:15 pmSnyderEXPL L003
003TR3:00 pm-04:15 pmSnyderRobinson Hall B104
H01TR10:30 am-11:45 amKauffmanThompson Hall 1018

1.4 Labs

All labs are in Engineering 4457, led by graduate TAs

201001W01:30 pm-02:20 pmKauffman
202001W02:30 pm-03:20 pmKauffman
203001W03:30 pm-04:20 pmKauffman
204002R01:30 pm-02:20 pmSnyder
205002R02:30 pm-03:20 pmSnyder
206002R03:30 pm-04:20 pmSnyder
207003F08:30 am-09:20 amSnyder
208003F09:30 am-10:20 amSnyder
209003F10:30 am-11:20 amSnyder
2H1H01R12:30 pm-01:20 pmKauffman

1.5 Course Materials

Required Zyante: This semester we are piloting a new, online textbook provided by Zyante. You will receive instructions on how to log in (for free this semester!) at the beginning of the course.

Required Lab Manual: Sections will be posted online on the course Piazza site for free download.

Optional Java Software Solutions: We've preserved the readings from our previous text, which you may optionally choose to obtain as supplemental material. It was Java Software Solutions - Foundations of Program Design, 7th ed. Lewis & Loftus. (You do not need the extra online programming supplement, but it may give you another good source of practice).

It is assumed you will have access to a computer with the ability to edit, compile, and run Java programs. Some university labs provide this ability and the first week of the course will cover how to set up your personal environment. If you have difficulty accessing a suitable environment, contact the course staff.

1.6 Communication

This will be the central site for our announcements, documents repository, and discussion board. The announcements and discussion board are part of the required reading for the course.
  • All instructors and TAs can view all material on Piazza
  • Do not e-mail course staff about programming problems; use the discussion board
  • Use public posts on Piazza to discuss programming project requirements, labs, and other material related to the course.
  • Use private messages on Piazza for personal questions involving your own code or situation.
  • Refer to the Piazza main page for etiquette on what should be posted publicly versus privately
Is used for project submission and to post grades
Office Hours
Listed for all Instructors and TAs on Piazza (Course Page –> Staff).
Mail course staff for logistical issues such as meeting outside of office hours, missing lab/lecture, etc.

2 Course Outcomes

  1. An understanding of basic object-oriented (OO) programming concepts and principles.
  2. An ability to apply basic object-oriented principles and techniques in the development of software systems using a specific programming language.
  3. An ability to effectively develop software systems using both basic command line tools and sophisticated integrated development environments, and to understand the advantages and limitations of each.
  4. An ability to successfully perform debugging operations and techniques.
  5. An ability to perform software development in both individual and team environments.
  6. An understanding of programming-related references/resources available to software developers and the ability to use them effectively – both in ongoing projects and in the acquisition of new technical skills.
  7. An understanding of how acquired programming skills facilitate success in upper level CS courses and in various professional environments.

3 Coursework

3.1 Lectures

During lectures we will discuss programming concepts and instructors will provide demos of programming relevant to other course work. Programming labs will be for students to work on additional exercises and get immediate help from teaching assistants. In addition to attending the regular meeting times, you are strongly encouraged to visit the professor and teaching assistant(s) during office hours to further your understanding of the material: we are here to help you learn.

3.2 Textbook Readings

Readings from the textbook relevant to each lecture are listed in schedule. You will increase your understanding of lectures by reading associated textbook sections ahead of time, though this is not assumed. We may provide additional reading material to supplement the textbook which will be posted on the course web page.

Associated with the online textbook are short exercises which are required.

3.3 Labs

Labs meet once per week and attendance is required. Each week will involve either a short programming exercise or a quiz. Lab programming exercises will be submitted for automated grading online.

Associated with lab are readings from the Lab Manual posted online. It is assumed that students read the scheduled lab manual sections prior to each lab; doing so will make it relatively easy to complete the labs during the allowed time.

During some labs, the lab leader will prompt the class to generate potential quiz questions on the current lab topic. Some of these questions may be selected for use on a subsequent quiz or exam. Generating questions that are frequently selected for use may result in a Bonus Credit.

3.4 Programming Projects

Students will receive a number of programming projects during the semester. Each project will involve writing programs and answering questions about them to illustrate an understanding of course material.

Each programming project will have an "Honors Problem" which honor section (H01) students must complete. Other sections are not required to do these sections and will not receive any credit for completing them but are free to try.

3.5 Exams

There will be two midterm exams during the course during the regularly scheduled lecture time. There will also be a comprehensive final exam at the end of the semester. Refer to the schedule for dates of the exams. During labs there will also be short quizzes on some meetings to ensure you stay up-to-date on course topics.

4 Grading Policies

4.1 Components

Final grades will be determined by scores obtained on the components below according to their associated weight.

Zyante Exercises2%
Lab Problems3%
Lab Quizzes10%
Programming Projects (7)40%
Midterm Exams (2)20%
Final Exam25%
If circumstances require it, the grading scale may be adjusted, generally in the students' favor.

4.2 Final Grade Determination

Final grades will be assigned without rounding according to the following criteria. It is a 10-point scale per letter grade, with the upper and lower 2% of each 10% earning a + or -.

>= 98A+89-88B+79-78C+69-60D

4.3 Zyante Exercises

While reading the online textbook, small exercises are interspersed in the textbook. These exercises are for completion purpose only: answering incorrectly the first time will not be penalized so long as the correct answer is eventually submitted. All exercises in each required chapter must be completed.

4.4 Lab Problems

The Marmoset tool will be used to automatically grade lab problems according to publicly available test cases. In order to recieve credit for completing a lab problem set

  • A student must have attend their lab section
  • All tests must be passed according to Marmoset
  • Students may submit code to Marmoset after lab ends so long as they have attended their lab section. Each lab lists the final deadline for submission.

Failing to attend lab will result in a 0 for the lab problem set.

4.5 Lab Quizzes

In order to receive credit for a lab quiz students must take it in their assigned lab section during the allotted time.

The lowest quiz score for the semester will be dropped.

No makeup quizzes will be given under any circumstances.

4.6 Projects

  • Each student starts the semester with three Day-Late Tokens. Whenever a student turns in a project late, tokens are automatically applied to the assignment.
  • A "ceiling penalty" of 25% is assessed each 24-hour period entered after the deadline (when late-tokens are gone). For example, if you turn in work half a day late and score 87%, you will receive min(87,75) = 75% (and not 87-25=62%).
  • Work turned in more than three 24-hours periods late will earn zero points and will only be graded as time permits. To clarify, you can't use tokens and penalties to turn work in 4 days late; this would earn zero points.
  • You can submit work to BlackBoard as many times as desired. Only the last submission will be graded. If you anticipate being rushed around the submission deadline, be sure to submit a version before the deadline as a backup, in case you find yourself only moments late in meeting a deadline.
  • GTAs grade the programming projects for the lab sections they teach.
  • On-time submissions will generally be graded and available a week from submission, though exceptional circumstances may cause delays. Late submissions will be graded in as timely a fashion as schedules allow.

4.7 Exams

  • Your Mason ID is required for the midterm and final exams.
  • Missing an exam results in a zero score and make-up exams will be considered only in situations involving death and near death. Proof of such circumstances will be required for a make-up to be considered.
  • Failing the final exam will result in an F in the entire course. Failing is defined as receiving less than 50% of the available points on the exam.

4.8 Grading Disputes

Address grading issues with the grader first:

  • Projects: GTAs
  • Lab work: GTAs
  • Exams: Professors

This should be done respectfully either in person or via e-mail. If it is not possible to reach a resolution, the professor may be contacted by the grader to resolve the dispute.

If you have not initiated contact within 1 week after receiving a grade, the chance to contest the grade has closed.

4.9 Bonus Credit

The following will be the only opportunities for bonus/extra credit. Examine them closely.

4.9.1 Lab Merit Awards

Two Lab Merit awards will be granted at the end of the semester which will garner bonus credit. The award is granted to one lab section and everyone in the lab receives the bonus. The awards require some cooperation among members of a lab section. The two Merit Awards are

Consistency Award (+1% to overall grade)
For the lab section with the best attendance/submission precentage (quizzes taken + Marmolab passes + attendance)
Thoughtfulness Award (+1% to overall grade)
For the lab section with most submitted quiz questions actually used on real quizzes/exams

Statistics on the Merit Awards will be posted periodically during the semester so labs know their standing.

4.9.2 Additional Bonus Credit

5 Academic Integrity

PRIME DIRECTIVE: Be able to explain your own work including homework code and exam solutions.

Nearly all cheating in programming can be averted by adhering to the PRIME DIRECTIVE. Students may be asked at any time to explain code or exam solutions they submit. Inability to do so will be construed as evidence of misconduct.

Any attempts at cheating will not be tolerated, and will be turned in to the Honor Court with significant penalties recommended. You should be familiar with both the honor code at GMU and the further details of the CS Honor Code Policies, but in short you should never see, share, or discuss any part of the solution to any graded work, from algorithm development to implementation to debugging to test cases. When in doubt, ask your instructor instead of another student.

If you would like to study with friends, the Lab Manual Readings and associated exercises are a great, safe place to work on the course materials in a stress-free environment with no worries about the honor code. Learning together is valuable, but we need graded work to be entirely completed individually.

6 Additional General Policies

6.1 Civility

Students are expected to maintain a high level of civility for all participants in and out of class meetings. This includes respecting the beliefs of participants of all genders, ethnicities, and social backgrounds. Harassment of any type will not be tolerated and failure to behave in a respectful manner will result in referrals to University Counseling or the Office of Student Judicial Affairs. Any instances of sexual harassment will be reported to the Office of Equal Opportunity according the following policy: http://universitypolicy.gmu.edu/1202gen.html

6.2 Religious Accommodations

Observance of religious events will be accommodated for students of any faith.

6.3 Students with Disabilities

All possible accommodations will be made for students with disabilities. Please contact Disability Services (http://ods.gmu.edu/) and the instructor for further information.

7 Additional Policies for Prof. Kauffman's Sections

7.1 Attendance Policy

Bonus credit will be awarded based on participation in class discussions in lecture. Before each lecture, I will announce a range of the alphabet. Students with last names in that range may elect to sit in the first few rows of the room and answer questions (hot seats). Reasonable effort on answering questions in class will garner class participation credit.

The highest participation point winner at the end of the semester will receive a 3% bonus to their overall score in the course. All other students will receive a bonus proportional to the highest point winner. For example, someone tied with the highest point scorer will also receive a 3% bonus while someone with half the participation points will receive a 1.5% bonus.

7.2 Honors Section Differences

The honors section (H01) will be more difficult than other sections of CS 211. Approximately 15-20% more work will be involved.

H01 will move through lecture material more quickly and explore additional topics relevant to CS. Students in H01 are expected to keep up with these additional topics as they may appear on the H01 midterm and final exams.

Each programming project will have an "Honors Problem" which H01 students must complete. These problems may reflect the additional topics covered in lecture and often be more difficult than other portions of the project.

Grading projects for H01 students will be out of total points available including the honors section: each project will have 100 points plus an honors section, frequently worth 20 points. In such cases honors students will be scored as X / 120 for a score of X. Late projects will have the standard -25 deducted per day late.

  • An H01 student who turns a project in on time and receives a 99 on it willget 99/120 = 82.5% for the project.
  • If the same student turns in their work 1 day late without using a late token, they will receive min(99/120, 95/120) = 95/120 = 79.2%.

8 Additional Policies for Prof. Snyder's Sections

8.1 Attendance Policy

Attending both lecture and lab are quite to your benefit - I have no reservations including test or exam questions based on materials that are only shared in these venues. In lieu of the hot-seat approach to extra credit described in Prof. Kauffman's sections, I will include extra credit opportunities on my tests/exams that may likely pull from these only-in-class experiences. The same 3% maximum benefit will be possible.

Date: Spring 2014

Author: George Mason University

Org version 7.9.3d with Emacs version 24

Validate XHTML 1.0