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

Summer 2022
  1. Course Basics

    Instructor:

    Name: Tessema Mengistu (Ph.D.)
    Email: tmengis-at-gmu-dot-edu
    Webpage: https://cs.gmu.edu/~tmengis/courses/SM22/CS211Summer22.html
    Hours: M 10:00 AM - 12:00 PM or by appointment
    Office: ENGR 2703

    Graduate Teaching Assistants:

    Name: Fardin Sakib
    Email: fsakib-at-gmu-dot-edu
    Hours: Tuesdays/Thursdays 1:45-3:45 PM
    Office: ENGR 4456

    Undergraduate Teaching Assistants:

    TBA

    Prerequisites: CS 112 (C or better) and access to a Java-capable computer
    Format: Lecture plus weekly lab
    Lectures:

    SectionDaysTimesLocation
    B01/BP1MW1:30 PM - 4:10 PMDavid King Jr. Hall 1006

    Labs:

    SectionDaysTimesLocation
    CS-211-2B1TR11:30 am - 12:20 pmNguyen Engineering Building 1505
    CS-211-2B2TR12:30 pm - 1:20 pmNguyen Engineering Building 1505

    Textbooks:

    zyBooksProgramming in Javaavailable online at https://learn.zybooks.com/ (subscribe and access using the sign-in code GMUCS211MengistuSummer2022)
    1. Sign in or create an account at learn.zybooks.com
    2. Enter zyBook code: GMUCS211MengistuSummer2022
    3. Subscribe
    GMUCS 211 Lab Manualavailable for free download from https://cs.gmu.edu/~marks/211/textbook/
    (Optional)Reges and SteppBuilding Java Programs, 3rd ed.see online at https://practiceit.cs.washington.edu/

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

    Piazza: Piazza will be used for online discussion; any information discussed on Piazza will be assumed to be known to students.

    • Course schedule, announcements discussion. GTA/UTA contacts and office hours 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/excercise 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.

    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

    zyBooks: online textbook with practice problems; weekly deadlines for completing the practices are checked automatically.
    Programming Assignments:

    • Lab Submissions : Programs that should be submitted at the end of weekly recitation sessions.
    • Programming Exercises: programming assignments; open resources; collaboration/group work allowed; several days to submit.
    • Projects: programming assignments; individual work; possibly more than a week to complete.

    Exams: individual work; You need Respondus browser lockdown installed and a working webcam to take the mid and final exam. Please refer here about respodus browser lockdown.

  4. Grading Procedures

    Grade Distribution

    MaterialWeightDrop policy
    zyBooks5%lowest 15 subsections
    Class Participation5%
    Lab Submissions10%
    Programming Exercises (4-5)15%lowest one
    Programming projects (2-3)20%none
    Mid exam 15%-
    Final exam30%-

    Grading Policies

    • Grades within a category (i.e. midterms, projects, labs) are weighted equally.
    • Students must have Respondus Browser locakdown installed before taking any tests or exams. A working webcam is also required to take the final exam.
    • By the department's policy, a student must pass the final exam with a passing grade (≥ 60) in order to pass the course.
    • The final exam is cumulative.
    • Challenges to any grade must occur within a week from the day an assignment grade is released.
    • 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.
    • Programming exercises grading are fully automated. Tests and final exam maybe hand-graded. Project grading is partially automated. Even when manually graded, code which does not compile will receive a zero in most cases.
    • In general, make-ups are not allowed except on exams ( under very special circumstances).
    • Assignments are typically 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 25% off, > 48 hours will receive 0. 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. Taking 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

    • Make backups, because the unexpected happens, and cannot be used as an excuse to get an extension.
    • Submission times are automatically recorded by Blackboard, and there's no distinction between a tiny bit late and nearly a day late - plan ahead to make sure that your submission is on time.
    • 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, all 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. Programming Environment

    All programs in lab assignments must compile and run in at least Java SE 8 environment. You can compile and run your source code from the command line or you can choose to use any IDE you prefer, for example Eclipse (recommended), NetBeans, DrJava or BlueJ. All of the necessary software can be freely installed on your PC. For any technical questions regarding software installation, lab assignments, Java programming, and development environment, please consult the GTA/UTA first. Programming assignments that cannot be compiled or run will receive zero points.

  8. Schedule

    WeekDateTopic(s)Lab Text readingzyBooks readingAssignmentsNotes
    week 1June 07-12Exercise-1
    Introduction; Basics; Flow control1, 21-3
    Arrays; Input/Output3-54, 5
    Sun, June 121-5 due
    week 2June 13 -19Exercise-2, Project 1E1 due
    Classes; Objects; Methods; Fields66,7
    Command line args; Packages; Javadocs11, 138
    Sun, June 196-8 due
    week 3June 20 - 26E2 due
    Mon, June 20Juneteenth Observance (University Closed)
    Inheritance; Polymorphism; Dynamic dispatch79,10
    Sun, June 269 - 10 due
    week 4June 27 - July 03Exercise 3, Project 2P1 due
    Abstract classes; Interfaces; Enums8, 911
    Sun, July 03
    week 5 July 04- July 10
    Mon, July 4Independence Day (University Closed)
    Wen, Jul 06 Mid exam
    week 6 Jul 11 - 17Exercise-4E3-due
    Exceptions; Unit testing10, 1212
    Generics1413
    Sun, Jul 1712-13 due
    week 7 Jul 18 - 24Project 3E4 due;P2 due
    Collections, Lists & Queues14
    Recursion15, A215
    Sun, Jul 2414-15 due
    week 8 Jul 25 - 27
    Sort & search1616
    Wen, Jul 27P3 due
    Final ExamFriday, 7/29 1:30 – 4:15 pm

.