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

Summer 2023
  1. Course Basics

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

    Instructor:

    NameEmailOfficeHours
    Prof. Archange Giscard Destinéadestine@gmu.eduBuchanan Hall D215FTuesday 3-5 pm

    Graduate Teaching Assistants:

    NameemailOfficeHours
    Rezoan Ahmed Nazibrnazib@gmu.eduBuchanan Hall D215FThursday 3-5 pm

    Lecture:

    SectionDayTimeLocation
    B01MW1:30 pm - 4:10 pmExploratory Hall L004
    BP1MW1:30 pm - 4:10 pmExploratory Hall L004

    Labs:

    Lab SectionDayTimeInstructorLocation
    CS211-2B1TR12:30 pm Rezoan Ahmed NazibENGR 5358
    CS211-2B2TR1:30 pm Rezoan Ahmed NazibENGR 5358

    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 GMUCS211DestineSummer2023 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

    Blackboard: Blackboard 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 Blackboard and 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.

    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.

  8. Schedule

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