CS 211: Object Oriented Programming

(Summer 2017)


Piazza is 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.

Email course staff only for logistical issues such as meeting outside of office hours, missing lab/lecture, grading disputes, medical situations, etc. Email addresses are listed on Piazza.

BlackBoard is used for project descriptions, graded work submissions, and to post grades.


Contact Method Contact Info
Instructor: Katherine (Raven) Russell
Piazza: http://piazza.com/gmu/summer2017/cs211
Instructor Email: krusselc _ AT _ gmu.edu
Email Subject Line: [CS211]
Office: Engineering, Rm 5328
Open Office Hours (no appointment needed) Tuesday/Thursday 4:30-5:40pm, other times by appointment
Office Hours by Appointment Tuesday/Thursday after 3pm


Required: Zyante Zybook (code will be posted on Pizza)

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

Optional: Building Java Programs, 3rd ed., by Reges and Stepp.


You will need a computer for this class with some modern operating system capable of running a Java compiler. Remember that lab computers are also available on campus, see campus resources below.

The prerequisite for this course is CS 112 or its equivalent with a grade of C or better. I will assume a "semester's worth" of programming experience. You should understand basic programming including program design, debugging techniques, exception handling, and basic classes and objects.


  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.



Graded Material Percent of Final Grade Drop Policy
Attendance Lab/Lect 2% Drop lowest two
Reading 3% Drop lowest two
Lab Tasks 5% Drop lowest one
Weekly Programming Projects 40% Drop lowest one
Lab Quizzes 10% Drop Lowest
Midterm Exam 15% No drop
Final Exam 25% No drop


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 -. For example:

Letter Grade Score Required
A+ 98% and up
A 92-97%
A- 90-91%
B+ 88-89%
B 82-87%
B- 80-81%
C+ 78-79%
C 72-77%
C- 70-71
D 60-69%
F below 60%

Note: per departmental policy, a failing grade on the final exam (<60.0%) will result in a failing grade (F) for the entire course, regardless of performance on other assignments and graded materials.

Contesting of grades on any/all submissions must be requested within one week of the item's return. No grade changes will be considered subsequent to that deadline, or after the final exam meeting.

There will be no make-up or extra-credit assignments at the end of the semester; your grade should be a measure of your semester-long progress.


Programming projects will be a primary focus of your grade - each one should take multiple sessions of coding, with questions asked in between. This is the practice you need to learn, master, and internalize various concepts of the course. Don't be surprised if you're spending 5-20 hours on each one. All project grades will be averaged together evenly.

All projects are to be submitted to Blackboard. You can submit your work an unlimited number of times to BlackBoard, and by default only the last version will be graded. Turning in the wrong files will likely result in a zero. You can and should download your submitted attempts to verify that you turned in a working copy.

Blackboard being unavailable is not an excuse for turning in a late assignment; in the rare situation that the website is somehow unavailable or giving the student an error, the student MUST email their submission to their GTA before the deadline, otherwise it will be considered late.

Catastrophic computer failure will not be cause for an extension. Use a backup service such as DropBox (or any cloud service), emailing yourself, storing to a USB drive, whatever it takes. Every semester multiple students' computers die, are stolen, or otherwise 'lose' projects. Don't be the student who forgot to (frequently) back up your work!

Any code turned in that does not compile, specifically on Java 1.8 is likely to receive a zero. If the grader is able to quickly fix your code, you may get some points (but you will automatically lose 10 points PER FIX). If the grader cannot immediately spot and fix the issue, the assignment will receive a zero, no exceptions.



PRIME DIRECTIVE: Be able to explain your own work including homework code and exam solutions. The work you submit should be the product of your own effort and reflect your personal understanding. 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.

Both the University and the Computer Science Department have honor codes you are expected to adhere to. We will be reviewing these in class, but more information about the university honor code can be found here: http://oai.gmu.edu/the-mason-honor-code-2/ and the deparment's honor code can be found here: http://cs.gmu.edu/resources/honor-code/. You are bound by these honor codes.

Any submitted work which shows too much commonality with others' work to be completely original, or any plagiarized work, will result in a case for the Honors Committee. Any code which is presented in class or provided to you as part of the project may be included in your programs.

Programming projects are considered individual efforts, therefore no sharing of code and/or discussion of problem solutions are allowed with anyone except the TAs or the professor. Student projects will be manually and automatically assessed for cheating. You may not look at or otherwise view any other individual's code, pseudocode, or algorithms.

You may not use any Internet resources to create code or algorithms, besides the textbooks, the slides, and Piazza, unless otherwise specified. However, you are free to look up the syntax errors your encounter online, to gain an understanding of what the syntax error means. The projects we're doing this semester can be directly solved using techniques discussed in class, and no outside material is needed unless otherwise noted.

It is your responsibility to lock your computers with a password, to not post your code to websites like Pastebin that are publicly accessible, to guard your USB drives and computers, to not upload your files to someone else's computer, etc. You will be liable for any access gained to your code.