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

Fall 2022
  1. Course Basics

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

    Instructors:

    Name: Brian Hrolenok (PhD)
    Email: hrolenok@gmu.edu
    Webpage: https://cs.gmu.edu/~hrolenok
    Hours: Thursdays 12:00-2:00pm
    Office: Nguyen Engineering Building, 4708

    Name: Socrates Dimitriadis (PhD)
    Email: socrates@gmu.edu
    Webpage: https://cs.gmu.edu/~socrates
    Hours: Thursdays 3:00-5:00pm
    Office: Nguyen Engineering Building, 4508

    Name: Prof. David Igna Gonzalez Samudio
    Email: dgonza10@gmu.edu
    Hours: Tuesdays and Thursdays 4:30-5:30pm
    Office: Nguyen Engineering Building, 5309

    Graduate Teaching Assistants:

    Name: Dibyendu Das
    Email: ddas6@gmu.edu
    Hours: Tuesday 11a-12p & Wednesday 1-3p
    Office: ENGR 4456

    Name: Jonathan Mbuya
    Email: jmbuya@gmu.edu
    Hours: Wednesday 3-5p & Friday 2-5p
    Office: ENGR 4456

    Name: Prommy Sultana Hossain
    Email: phossai@gmu.edu
    Hours: Tuesday 4-6p & Thursday 1-3p
    Office: ENGR 4456

    Name: Saadat Hasan Khan
    Email: skhan225@gmu.edu
    Hours: Monday 3-4p & Friday 9-11a
    Office: ENGR 4456

    Name: Fardin Sakib
    Email: fsakib@gmu.edu
    Hours: Thursday 10a-12p & Friday 11a-2p
    Office: ENGR 4456

    Name: Long Cao Thanh Doan
    Email: ldoan5@gmu.edu
    Hours: -
    Office: -

    Name: Saad Muhammad Abdul Ghani
    Email: sghani2@gmu.edu
    Hours: Tuesday 2-4p & Wednesday 11a-1p
    Office: ENGR 4456

    Name: Sadia Afrin Mim
    Email: safrinmi@gmu.edu
    Hours: Monday 11a-1p & Tuesday 12-2p
    Office: ENGR 4456

    Lectures:

    SectionDayTimeInstructorLocation
    Sec 001TR3:00 pm - 4:15 pmGonzalezENGR 1101
    Sec 002TR1:30 pm - 2:45 pmDimitriadisENGR 1101
    Sec 003MW12:00 pm - 1:15 pmHrolenokENT 178
    Sec 004MW1:30 pm - 2:45 pmHrolenokENT 178
    Sec H02TR1:30 pm - 2:45 pmDimitriadisENGR 1101

    Labs:

    Section (Lab / Lec)DayTimeInstructorUTAUTALocation
    201 / 001W8:30amKhanKenneth Johnson-IN 326
    202 / 001W9:30amKhanKenneth JohnsonBrandon LandersIN 326
    203 / 001W10:30amKhanKenneth JohnsonJahnavi PaladuguIN 326
    204 / 001W11:30amDasWilson TranBrandon KimIN 326
    205 / 002F8:30amSakibLloyd AmarantoBrandon LandersIN 222
    206 / 002F9:30amSakibLloyd AmarantoBrandon LandersIN 222
    207 / 002F10:30amMbuyaLloyd AmarantoJahnavi PaladuguIN 222
    208 / 002F11:30amMbuyaDan LeLouis SpectorENGR 4457
    209 / 003T8:30amDasSusan NgoRohina NaderiIN 222
    210 / 003T9:30amDasSusan NgoFaraaz RahmanIN 222
    211 / 003T10:30amGhaniSusan NgoFaraaz RahmanIN 222
    212 / 003T11:30amGhaniLouis Spector-IN 222
    213 / 004R8:30amAfrin MimRohina NaderiFaraaz RahmanIN 222
    226 / 004R9:30amAfrin MimRohina NaderiBrandon KimIN 222
    227 / 004R10:30amHossainDan LeSaneela RefaiIN 222
    228 / 004R11:30amHossainJahnavi PaladuguSaneela RefaiIN 222
    2H2 / H02F10:30amMbuyaLloyd AmarantoJahnavi PaladuguIN 222

    Textbooks:

    requiredzyBooksObject-Oriented Programming in JavaAvailable online at zyBooks
    1. Sign in or create an account at learn.zybooks.com
    2. Enter zyBook code GMUCS211Fall2022
    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, and grades.

    Gradescope: Gradescope may be used for exams and assignment submissions.

    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 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 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: 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; you might need the Respondus Lockdown Browser as well as a working webcam and microphone.

  4. Grading Procedures

    Grade Distribution

    CourseworkWeightDrop policy
    Class participation3%varies by instructor
    Readings3%lowest 15 subsections
    Labs (15)10%lowest two
    Exercises (3)9%none
    Projects (5)30%none
    Midterm Exam20%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 exam with a passing grade (≥ 60) in order to pass the course.
    • The final exam is cumulative; a high final exam score dominates (replaces) lower score on midterm.
    • 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

    Tips

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

    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 Integrity. The penalty for cheating will always be far worse than a zero grade, to ensure it's not worth taking the chance. Confirmed cases of cheating almost always translate into course failure.

    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.

  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. Mason Safe Return to Campus Guide

    We are in unprecedented times. For our collective safety, please follow these guides: Click here.

  8. Tentative Schedule

    WeekDateTopic(s)Lab Text readingzyBooks readingHomeworkDue
    week 1Introduction; Basics; Flow control1, 2, A21, 2, 3
    Friday, Aug 26ZY 1,2,3
    week 2Arrays; Input/Output; File I/O3, 54, 5P1
    Friday, Sep 2ZY 4,5
    week 3Classes; Objects; Methods; Fields4, 66, 7P1
    Friday, Sep 9P1 & ZY 6,7
    week 4Command line args; Packages; Javadocs11, 138E1
    Friday, Sep 16E1 & ZY 8
    week 5Inheritance; Polymorphism; Dynamic dispatch
    710P2
    Friday, Sep 23ZY 10
    week 6Abstract classes; Interfaces; Enums
    8, 911P2
    Friday, Sep 30P2 & ZY 11
    week 7Midterm ExamP3
    Friday, Oct 7
    week 8Exceptions; Unit testing10, 1212P3
    Friday, Oct 14P3 & ZY 12
    week 9Generics
    1413E2
    Friday, Oct 21E2 & ZY 13
    week 10Collections, Lists & Queues9, 14P4
    Friday, Oct 28ZY 9,14
    week 11Recursion1515P4
    Friday, Nov 4P4 & ZY 15
    week 12Searching & Sorting1616P5
    Friday, Nov 11ZY 16
    week 13Nested classes; Lambda functionsA119P5
    Friday, Nov 18P5 & ZY 19
    week 14Graphical User Interfaces17, 18
    Thursday, Nov 24THANKSGIVING
    week 15Final Exam ReviewE3
    Friday, Dec 2E3 & ZY 17,18
    week 16Final Exams