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

Spring 2021
  1. Course Basics

    Prerequisites: CS 112 (C or better)
    Format: Lecture plus weekly lab


    Name: Socrates Dimitriadis (PhD)
    Email: sdimitr@gmu.edu
    Webpage: https://cs.gmu.edu/~sdimitr
    Hours: Mondays 2-3 PM
    Office: Zoom: https://gmu.zoom.us/j/3569593469

    Name: Shahnaz Kamberi (PhD)
    Email: kamberis@gmu.edu
    Webpage: http://mason.gmu.edu/~kamberis/
    Hours: Mondays and Wednesdays 1-2 PM (EST)
    Office: Skype: https://join.skype.com/invite/Ekedxupl7qkb

    Graduate Teaching Assistants:

    Name: Biao Xie
    Email: bxie@gmu.edu
    Hours: Mondays and Wednesdays 9-10 AM
    Office: Blackboard -> Online Sessions -> Office Hours

    Name: Bikram Adhikari
    Email: badhika5@gmu.edu
    Hours: Thursdays and Fridays 12-1 PM
    Office: Blackboard -> Online Sessions -> Office Hours

    Name: Dhiman Goswami
    Email: dgoswam@gmu.edu
    Hours: Fridays 9-11 AM
    Office: Blackboard -> Online Sessions -> Office Hours

    Name: Ismail Hossain
    Email: ihossai4@gmu.edu
    Hours: Wednesdays and Thursdays 11 AM - 12 PM
    Office: Blackboard -> Online Sessions -> Office Hours

    Name: Jonathan Mbuya
    Email: jmbuya@gmu.edu
    Hours: Mondays 10-11 AM and Thursdays 9-10 AM
    Office: Blackboard -> Online Sessions -> Office Hours

    Name: Yuyang Leng
    Email: yleng2@gmu.edu
    Hours: Tuesdays 9-11 AM
    Office: Blackboard -> Online Sessions -> Office Hours


    Sec 001TR10:30 am - 11:45 amKamberiOnline
    Sec 003TR12:00 pm - 1:15 pmKamberiOnline
    Sec 005MW9:00 am - 10:15 amDimitriadisOnline
    Sec H01MW9:00 am - 10:15 amDimitriadisOnline


    Section (Lab / Lec)DayTimeInstructorLocation
    201 / 001W8:30amDhiman GoswamiOnline
    202 / 001W9:30amJonathan MbuyaOnline
    203 / 001W10:30amJonathan MbuyaOnline
    204 / 001W11:30amJonathan MbuyaOnline
    205 / 001W12:30pmBiao XieOnline
    211 / 003F8:30amIsmail HossainOnline
    212 / 003F9:30amIsmail HossainOnline
    213 / 003F10:30amBikram AdhikariOnline
    214 / 003F11:30amDhiman GoswamiOnline
    215 / 003F12:30pmDhiman GoswamiOnline
    216 / 005R10:30amBikram AdhikariOnline
    217 / 005R11:30amBiao XieOnline
    218 / 005R12:30pmYuyang LengOnline
    219 / 005R2:30pmYuyang LengOnline
    2H2 / H01R1:30pmBikram AdhikariOnline


    requiredzyBooksObject-Oriented Programming in JavaAvailable online at zyBooks
    1. Sign in or create an account at learn.zybooks.com
    2. Enter zyBook code GMUCS211Spring2021
    3. Subscribe
    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.
    requiredGMUCS 211 Lab ManualAvailable for free download from https://cs.gmu.edu/~marks/211/textbook/
    optionalReges and SteppBuilding Java Programs, 3rd ed.See online at https://practiceit.cs.washington.edu/

    Blackboard: Blackboard will be used for all course material (slides, etc.), assignments (including submissions), and grades.

    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.

    • This syllabus will be on Piazza too.
    • 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 a 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 logistical issues such as meeting outside of office hours, missing lab/lecture, grading disputes, medical situations, etc. Email addresses are listed on above and on Piazza.
  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.


    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: it varies by instructor
    Labs: programming exercises during recitation(lab) sessions; collaboration/group work allowed; same date as the recitation(lab) sessions
    Exercises: programming assignments; open resources; collaboration/group work allowed; weekly deadlines
    Projects: programming assignments; individual work; 2-3 weeks to complete.
    Exams: individual work; online; you might need the Respondus Lockdown Browser as well as a working webcam and microphone.

  4. Grading Procedures

    Grade Distribution

    CourseworkWeightDrop policy
    class participation2%varies by instructor
    zyBooks3%lowest 15 subsections
    Labs (14)5%lowest two
    Exercises (8)20%lowest one
    Projects (5)25%none
    Midterm Exams (2) 20%none (but see Grading Policies below)
    Final Exam25%must pass final to pass the course (see Grading Policies below)

    Grading Policies

    • Grades within a category (i.e. midterms, projects, labs) are weighted equally.
    • Students must have Respondus Browser lockdown installed before taking any quiz or exams.
    • By department policy, the student must pass the final or the weighted average of all three exams must be a passing grade (≥ 60) in order for a student to pass the course.
    • The final exam is cumulative; a high final exam score dominates (replaces) lower scores on one or both of the midterms.
    • Challenging of any grade must occur within a week of when the graded assignment has been returned.
    • 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.
    • Lab grading is fully automated. Projects and Exercises grading is partially automated.
    • Code which does not compile will receive a zero in most cases.
    • Absences are absorbed by the drop policy - in general, make-ups are not allowed except on exams (under very special circumstances).
    • Assignments are due at midnight on the listed due date.
    • Late submission policy (up to 48 hours) is as follows: <=24 hours with 10% off, >24 hours &&<=48 hours with 20% off, > 48 hours will receive 0. For example, if you are late by 10 hours and you get 90 on the assignment, your final points will be 81. Submission times are automatically recorded by Blackboard, and there is no distinction between a minute late and a day late. Please plan ahead to make sure that your submission is on time. Saving backups regularly is highly recommended.

    Grading Scale

    Grade A+AA- B+BB- C+CC- DF
    max 9791 898781 797771 6959
    min 989290 888280 787270 60


    • 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.
    • 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 on Blackboard rather than simply saved.

  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.

    Both the GMU Honor Code and the CS Department Honor Code 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.

  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. Schedule

    WeekDateTopic(s)Lab Text readingzyBooks readingDue
    week 11/25-1/29Introduction; Basics; Control Flow1,21,2,3
    Fri, 1/29ZY 1,2,3
    week 22/1-2/5Arrays; Input/Output; Files3-54,5
    Mon, 2/1E1
    Fri, 2/5ZY 4,5
    week 32/8-2/12Classes; Objects; Methods; Fields66,7
    Mon, 2/8E2
    Fri, 2/12ZY 6,7
    week 42/15-2/19Command line args; Packages; Javadocs11,138,9
    Mon, 2/15P1
    Fri, 2/19ZY 8,9
    week 52/22-2/26Midterm 1
    Mon, 2/22E3
    Mon/Tue, 2/22-23Review
    Wed/Thu, 2/24-25Exam
    week 63/1-3/5Inheritance; Polymorphism; Dynamic dispatch
    Mon, 3/1P2
    Fri, 3/5ZY 10
    week 73/8-3/12Abstract classes; Interfaces; Enums
    Mon, 3/8E4
    Fri, 3/12ZY 11
    week 83/15-3/19Exceptions; Unit testing10,1212
    Mon, 3/15P3
    Fri, 3/19ZY 12
    week 93/22-3/26Generics
    Mon, 3/22E5
    Fri, 3/26ZY 13
    week 103/29-4/2Midterm 2
    Mon, 3/29E6
    Mon/Tue, 3/29-30Review
    Wed/Thu, 3/31-4/1Exam
    week 114/5-4/9Collections, Lists & Queues14
    Mon, 4/5P4
    Fri, 4/9ZY 14
    week 124/12-4/16Recursion15, A215
    Mon, 4/12E7
    Fri, 4/16ZY 15
    week 134/19-4/23Sorting & Searching1616
    Mon, 4/19E8
    Fri, 4/23ZY 16
    week 144/26-4/30Anonymous classes; Lambda functions; Final Exam ReviewA1
    Mon, 4/26P5
    Exam week5/3-5/10Final Exam (time TBD)