CS 211: Object Oriented Programming
George Mason University
Department of Computer Science

Summer 2025
  1. Course Basics

    Prerequisites: CS 112 (C or better)
    Format: Lecture and Lab

    Instructor:

    NameEmailOfficeHours
    Prof. Archange Giscard Destinéadestine@gmu.eduENGR 3241Tuesdays 3-5pm

    Graduate Teaching Assistants:

    NameemailOfficeHours
    TBATBATBATBA

    Lecture:

    SectionDayTimeLocation
    B01MW10:30 am - 1:10 pmHorizon Hall 2016

    Labs:

    Lab SectionDayTimeInstructorLocation
    2B1TR12:30 pm TBAHorizon Hall 4010
    2B2TR1:30 pm TBAHorizon Hall 4010

    Textbooks (required):

    1. Object-Oriented Programming in Java. Available online at zyBooks.
      A subscription is $52.20 (includes a 10% discount, original price is $58). The discount is not available through third-party sites like GMU Bookstore, etc.
      Go to learn.zybooks.com, sign in or create an account, and enter zyBook code GMUCS211DestineSummer2025 to subscribe. If you've taken this course before and you paid for a subscription once already, send an email to support@zybooks.com and ask them to reactivate your subscription for free.
    2. Supplemental Java Textbook. Available for free download
    3. The Java Tutorials. Available for free download

    Canvas: Canvas will be used for all course material (slides, etc.), assignment descriptions, and grades.

    Gradescope: Gradescope will be used for homework submission and grading.

    Piazza: Piazza will be used for all official announcements, online discussion and Q&A; any announcements made on Piazza will be assumed to be known to students.

    • 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.
    • When prompted by the TA, use private posts on Piazza to share portions of your code pertaining to your questions. Don't share your project code in public posts.
    • Email course staff only for personal issues such as meeting outside of office hours, missing lab/lecture, grading disputes, medical situations, etc. Email addresses are listed above.
  2. Course Information

    Course Description: 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.

  3. Coursework

    Readings: online textbook with practice problems; weekly deadlines; automated grading
    Class participation: attendance and quizzes
    Labs: programming exercises during recitation(lab) sessions; collaboration/group work allowed
    Exercises: small programming assignments (5 days); individual or group work
    Projects: large programming assignments (10 days); individual work only
    Exams: in-class; computer-based; require the Respondus Lockdown Browser

  4. Grading Procedures

    Grade Distribution

    CourseworkWeightNotes
    Class participation5%
    Readings5%lowest 15 subsections dropped
    Labs (14)10%lowest 2 dropped
    Exercises (4-5)15%no drops
    Projects (2-3)20%no drops
    Midterm Exam15%replaced by final exam grade if final exam score is higher
    Final Exam30%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. The final exam is cumulative; a high final exam score dominates (replaces) lower score on midterm.
    3. For homework, any number of resubmissions are allowed (the most recent is used), however a resubmission turned in after the deadline will be considered a late submission.
    4. Late submission is allowed for projects and exercises only (up to 48 hours).
    5. 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 by Gradescope, and there is no distinction between a 1-minute late and a 23-hours late.
    6. Code which does not compile will receive a zero in most cases.
    7. 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.
    8. 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.
    9. There are no make-ups for absences to classes and labs. The drop policy is used in these cases.
    10. Challenging of any grade must occur within a week of when the graded assignment has been returned.

    Grading Scale

    grade:
    A+
    A
    A-
    B+
    B
    B-
    C+
    C
    C-
    D
    F
    range: [98,100][92,98)[90,92) [88,90)[82,88)[80,82) [78,80)[72,78)[70,72) [60,70)[0,60)

  5. Honor Code

    Unless specific instructions are given to the contrary, programming assignments 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.

    • All students are expected to abide by the GMU Academic Standards Code. This policy is rigorously enforced. Cheating will be prosecuted and result in a notification of the Honor Committee as outlined in the Standards. Sharing, collaboration, or looking at any code or algorithm for the programming projects that is not your own, including resources from Internet or AI, is considered cheating.
    • The computer science department has an CS Honor Code Policies that you are subject to particularly for our course. The document helps you to understand how Academic Standards applies to programming and CS, and what constitutes cheating in the CS setting. It clarifies some scenarios that are unique to our sorts of assignments. Make sure you read and familiarize yourself with these rules.
    • 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 Office of Academic Standards. Confirmed violations of the Academic Standards Code or the CS Honor Code are generally Level 2 violations which always result in course failure.
  6. Special Accommodations

    Students who have a right to accommodations due to disabilities or other conditions should discuss this with the instructor as soon as possible. Accommodations will follow the recommendations of the University's Office of Disability Services.

  7. Tentative Schedule

    WeekDatesTopicSupplemental readingzyBooks readingAssignmentsNotes (deadlines)
    week 15/28Introduction; Basics; Control Flow1, 2, A21, 2, 3E1-
    week 26/02Arrays; Input/Output; File I/O3, 54, 5-
    6/04Classes; Objects; Methods; Fields4, 66, 7E2, P1E1 is due
    week 36/09Command line args; Packages; Javadocs11, 138-
    6/11Inheritance; Polymorphism; Dynamic dispatch
    710E2 is due
    week 46/16Abstract classes; Interfaces; Enums
    8, 911E3, P2P1 is due
    6/18Exceptions; Unit testing10, 1212-
    week 56/23Midterm ReviewE4 E3 is due
    6/25--- Midterm Exam ---
    week 66/30Debugging; Testing
    7/02Generics1413P2 is due
    week 77/07Collections, Lists & Queues
    9,14P3E4 is due
    7/09Recursion1515-
    week 87/14Searching & Sorting1616E5-
    7/16Nested classes; Lambda functionsA119P3 is due
    week 97/21Final ReviewE5 is due
    7/23OOP Concepts review
    7/24--- Final Exam ---