CS 211: Object Oriented Programming

(Fall 2015)


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 submission and to post grades.


Instructor: Katherine (Raven) Russell
Piazza: http://piazza.com/gmu/fall2015/cs211/home
Instructor Email: krusselc_AT_gmu.edu
Email Subject Line: [CS211]
Instructor Office Hours: Engineering, Rm 5328, Tuesday/Thursday 10:30-11:30am
UTAs and GTAs: See Piazza for contact information


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

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


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 next section.

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, coding, and debugging techniques.


  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.



Lab Quizzes 5% Drop lowest one
Lab Tasks 10% Drop lowest two
Programming Projects 40% Drop lowest one
Midterm Exams 20% (10% each) 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:

A+ 98% and up
A 92-97
B- 90-91
B+ 88-89
B 82-87
B- 80-81


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/wiki/pmwiki.php/HonorCode/CSHonorCodePolicies. 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.