CS 211: Object Oriented Programming - Spring 2025

George Mason University - Department of Computer Science

Please double check Piazza for the most up-to-date version of this syllabus

LAST UPDATE: 01/03/2025

Course Information

Prerequisites: CS 112 (C or better)

Format: Lecture plus weekly lab

Instructors:
Instructor Name Email Office Office Hours
Dr. David I. Samudio dgonza10@gmu.edu ENGR 4436 TBD
Dr. Brian Hrolenok hrolenok@gmu.edu ENGR 4708 TBD

Graduate Teaching assistants:
TA Name Email Office Hours location Office Hours
TBD
TBD
TBD
TBD
TBD
TBD
TBD
TBD

Lectures
Section Day(s) Time Instructor Location
001 Monday & Wednesday 1:30-2:45pm Hrolenok Exploratory Hall room L004
002 Monday & Wednesday 3:00-4:15pm Hrolenok Enterprise Hall room 80
004 Tuesday & Thursday 1:30-2:45pm Samudio Lecture Hall room 1

Labs
SectionDayTimeInstructorUTA(s)Location
201 Thursday 10:30am-11:20am
TBD
Horizon Hall room 1012
202 Thursday 9:30am-10:20am
TBD
Horizon Hall room 1012
203 Thursday 12:30pm-1:20pm
TBD
Horizon Hall room 2008
204 Thursday 1:30pm-2:20pm
TBD
Horizon Hall room 2008
205 Friday 9:30am-10:20am
TBD
Horizon Hall room 2008
206 Friday 10:30am-11:20am
TBD
Horizon Hall room 2008
208 Friday 12:30pm-1:20pm
TBD
Horizon Hall room 2008
209 Friday 1:30pm-2:20pm
TBD
Horizon Hall room 2008

Textbooks (required)

  1. (ZyBooks) CS 211: Object-Oriented Programming. Available online at learn.zyBooks.com. When purchasing your textbook, use the code "GMUCS211Spring2025" to link your assignments to this semester's sections. If you have any trouble with purchasing, or if you've taken this course before and paid for a subscription once already, contact support@zybooks.com. Please make sure you create an account using your @gmu.edu email address.
  2. (Supplemental) textbook. Available as a set of free PDFs here: cs.gmu.edu/~marks/211/textbook/.

Piazza: We will use Piazza to provide course resources (slides, code, links), for official announcements, asynchronous discussions, Q&A, and help with assignments outside of office hours. Never post any code publicly - when in doubt, ask before posting, as TAs can change the visibility of posts to public when appropriate. Please reserve email for academic/grading issues - Piazza is the place for help on assignments.

Gradescope: We will use Gradescope for all assignment and exam feedback. Accounts will be created manually by the course staff and instructions on accessing your account will be mailed to your @gmu.edu email in the first few weeks.

Blackboard/Canvas: This class will primarily not be using either Blackboard or Canvas, and these may appear as locked for the entire semester. Your instructor will notify you in class if they plan to use either of these sites.

Students will be manually added to Piazza and Gradescope in the first or second week once enrollments are finalized.

Course Description

This course presents a thorough treatment of programming according to object-oriented principles. Introduces classes, interfaces, inheritance, polymorphism, and single dispatch as means to decompose problems. Covers intermediate programming techniques including error handling through exceptions, arrangement of source code into packages, and simple data structures. Intermediate debugging techniques and unit testing are covered.

Outcomes:

  1. An understanding of basic object-oriented programming concepts and principles
  2. An ability to apply basic object-oriented principles and techniques in the design and development of software systems using a specific programming language.
  3. An ability to effectively use both basic command line tools and sophisticated integrated development environments, and to understand the benefits and limitations of each.
  4. An ability to successfully perform debugging operations and techniques.

Coursework

In this course students will be evaluated using several different kinds of coursework:

Grading Procedures

Grade Distribution
CourseworkWeightNotes
Class participation5%
Readings5%Lowest 15 subsections dropped
Labs15%weekly, no drops
Exercises9%3% each, no drops
Projects21%7% each, no drops
Midterm exam20%replaced by final exam grade if final exam grade is higher
Final exam25%must pass final to pass the course

Grading Policies

  1. By department policy, students must pass the final exam with a passing grade (≥ 60) in order to pass the course.
  2. Students who arrive more than 15 minutes after the start of an exam, or after another student has left after exams have been distributed, may be considered absent from the exam.
  3. The final exam is cumulative; a higher final exam score dominates (replaces) a lower score on midterm.
  4. For projects and exercises, any number of re-submissions are allowed (the most recent is used), however a re-submission turned in after the deadline will be considered a late submission.
  5. Late submission is allowed for projects and exercises only, and only up to 48 hours.
  6. Late submission policy: Less than 24 hours is 10% off. From 24 hours to 48 hours is 20% off. More than 48 hours is 0. Submission times are automatically recorded, and there is no distinction between a 1-minute late and a 23-hours late.
  7. Code which does not compile or pass initial validation checks will receive a zero in most cases.
  8. Save backups regularly because the unexpected happens and cannot be used as an excuse to get an extension. Save backups on a cloud service because the local file system timestamp is not acceptable.
  9. To receive a grade, the submission must be gradable. This means submitting .java source rather than compiled .class files or word documents containing the source. It also means that the code must be submitted rather than simply saved.
  10. There are no make-ups for absences to classes and labs.
  11. If you feel your assignment was graded incorrectly, let your TA and instructor know within one (1) week of when the grade was returned. Resubmitting after the due date with new code to improve your score is not permitted.
  12. The participation portion of the final grade will be calculated from a to-be-determined number of brief activities announced during lectures (for example, pop quizzes)

Grading Scale
GradeRange
A+[98,100]
A [92,98)
A-[90,92)
B+[88,90)
B [82,88)
B-[80,82)
C+[78,80)
C [72,78)
C-[70,72)
D [60,70)
F [0,60)

Academic Standards

Unless specific instructions are given to the contrary, projects are an individual effort, no group work is allowed. In addition to code, this includes the sharing of test cases, pseudocode, or approaches, receiving assistance in debugging code, as well as the use of external Internet sites, or Artificial Intelligence systems.

The Academic Standards of GMU and the CS department apply in this class. Any use of a direct contribution on any program, homework, quiz, or exam will be reported as a violation of the honor code.

We take the honor code quite seriously. Any attempts at copying or sharing code, algorithms, or other violations of the honor code simply will not be tolerated. We use automated software to flag suspicious cases, and then review them to find the cases that must be submitted to the Academic Standards Office.

Some kinds of participation in online study sites violate the Mason Honor code: these include accessing exam or quiz questions for this class; accessing exam, quiz, or assignment answers for this class; uploading of any of the instructor's materials or exams; and uploading any of your own answers or finished work. Always consult your syllabus and your professor before using these sites.

Student Resources And Accommodations

Students who are entitled to accommodations based on recommendations from University offices should promptly initiate a discussion with their instructors. It is the student's responsibility to acquire this information directly from the respective office.

Prioritizing your well-being is paramount in achieving academic success. We strongly urge students to take advantage of the available university resources designed to support their journey. We, as educators, may not possess the expertise to evaluate unforeseen and challenging circumstances that could arise; therefore, we rely on specialized offices for appropriate guidance and accommodations. These designated offices hold the responsibility of providing insights and ensuring your rights, as outlined in acts such as FERPA or ADA, are comprehensively understood and respected.

A brief list of the services at no cost to GMU students:

Disability Services at George Mason University is committed to providing equitable access to learning opportunities for all students by upholding the laws that ensure equal treatment of people with disabilities. If you are seeking accommodations for this class, please first visit https://ds.gmu.edu/ for detailed information about the Disability Services registration process. Then please discuss your approved accommodations with your instructor. Disability Services is located in Student Union Building I (SUB I), Suite 2500. Email: ods@gmu.edu | Phone: (703) 993-2474

Mason Safe Return to Campus Guide

For the collective safety of all students and staff, please follow Mason's Safe Return to Campus Guide.

Please refer to the GMU Common Course Policies provided by the Stearns Center, which cover any policies not directly superceded in this syllabus.

Schedule

Please note: the following schedule may be adjusted throughout the semester. Always check for announcements, and follow due dates posted on Blackboard, Gradescope, and zyBooks. The dates listed below are the Sunday at the beginning of the given week; they are NOT due dates. Final exam dates (which you can find here for ALL classes) are set by the registrar for each section based on the time and days of the week that lecture meets.

WeekDatesTopiczyBooks readingSupplemental readingAssignments
Week 1 19-JAN (Monday classes do not meet) Introduction; Basics; Flow Control 1, 2, 3 (due week 2) 1, 2, A2 E1
Week 2 26-JAN Arrays; File I/O 4, 5 (due week 2) 3, 5 E1
Week 3 02-FEB Classes; Objects; Methods; Fields 6, 7 4, 6 P1
Week 4 09-FEB Command line args; Packages; Javadocs 8 11, 13 P1
Week 5 16-FEB Inheritance; Polymorphism; Dynamic dispatch 10 7 E2
Week 6 23-FEB Abstract classes; Interfaces; Enums 11 8, 9 E2
Week 7 02-MAR Midterm review; Midterm
Week 8 09-MAR (spring break, no class)
Week 9 16-MAR Exceptions, Unit testing 12 10, 12 P2
Week 10 23-MAR Generics 13 14 P2
Week 11 30-MAR Collections, Lists & Queues 9, 14 E3
Week 12 06-APR Recursion 15 15 E3
Week 13 13-APR Searching & Sorting 16 16 P3
Week 14 20-APR Nested classes; Lambda expressions 19 A1 P3
Week 15 27-APR Graphical User Interfaces 17,18 P3
Week 16 04-MAY (Tuesday, Wednesday, Thursday classes do not meet) Review