CS 211: Object Oriented Programming - Fall 2024

George Mason University - Department of Computer Science

Please double check Piazza for the most up-to-date version of this syllabus

LAST UPDATE: 09/25/2024

Course Information

Prerequisites: CS 112 (C or better)

Format: Lecture plus weekly lab

Instructors:
Instructor Name Email Office Office Hours
Dr. David I. Samudio dgonza10@gmu.edu ENGR 4436 Tuesdays 1-3pm
Dr. Brian Hrolenok hrolenok@gmu.edu ENGR 4708 Mondays 1-3pm

Graduate Teaching assistants:
TA Name Email Office Hours location Office Hours
Md Badsha Biswas mbiswas2@gmu.edu Buchanan 215 Thursdays 12:30-2:30pm
Sireesha Gurram sgurram5@gmu.edu ENGR 4456 Tue & Wed 9-10am
Mainul Hossain mhossa6@gmu.edu Mondays ENGR 4457,
Fridays ENGR 1505
Mondays 11:30am-12:30noon,
Friday 3:30-4:30pm
Rezaul Karim akarim9@gmu.edu ENGR 4456 Fridays 2-4pm
Arun Krishnavajjala akrishn@gmu.edu ENGR 4457 Mondays 9-10am, 11-12am
Siyu Lei slei4@gmu.edu ENGR 4456 Thursdays 9-11am
Sthitadhi Sengupta ssengup2@gmu.edu ENGR 4457 Wednesdays 12:15pm-2:15pm

Lectures
Section Day(s) Time Instructor Location
001 Monday & Wednesday 1:30-2:45pm Samudio Exploratory Hall room L004
002 Monday & Wednesday 3:00-4:15pm Samudio Exploratory Hall room L004
003 Tuesday & Thursday 12:00-1:15pm Hrolenok Innovation Hall room 105
004 Tuesday & Thursday 3:30-4:15pm Hrolenok Planetary Hall room 131

Labs
SectionDayTimeInstructorUTAUTAUTALocation
201 Thursday 11:30am-12:20pm Md Badsha Biswas Muhammad Shayyan Qazi Yohanes Philis Malaika Atif Buchanan Hall room D023
202 Thursday 1:30pm-2:20pm Siyu Lei Mohamed Shaik Katherine Fadeyeva Sana Syed Horizon Hall room 1010
203 Thursday 10:30am-11:20am Sireesha Gurram Malaika Atif Maya Elgodamy Sana Syed Horizon Hall room 1012
204 Thursday 11:30am-12:20pm Siyu Lei Mohamed Shaik Dannielle Nguyen Maya Elgodamy Horizon Hall room 1012
205 Friday 11:30am-12:20pm Rezaul Karim Hanz Daoang Sydney To Tasneem Shabana Buchanan Hall room D023
206 Friday 12:30pm-1:20pm Arun Krishnavajjala Najah Smith Tasneem Shabana Nathan Huang Exploratory Hall room L102
207 Friday 1:30pm-2:20pm Sthitadhi Sengupta Hanz Daoang Yohanes Philis Nathan Huang Buchanan Hall room D023
208 Friday 2:30pm-3:20pm Mainul Hossain Hanz Daoang Yohanes Philis Tasneem Shabana Buchanan Hall room D023

Textbooks (required)

  1. (ZyBooks) CS 211: Object-Oriented Programming. Available online at learn.zyBooks.com. When purchasing your textbook, use the code "GMUCS211Fall2024" to link your assignments to this semester's sections. If you have any trouble with purchasing, or if you've taken this course before and paid for a subscription once already, contact support@zybooks.com. Please make sure you create an account using your @gmu.edu email address.
  2. (Supplemental) textbook. Available as a set of free PDFs here: cs.gmu.edu/~marks/211/textbook/.

Piazza: We will use Piazza to provide course resources (slides, code, links), for official announcements, asynchronous discussions, Q&A, and help with assignments outside of office hours. Never post any code publicly - when in doubt, ask before posting, as TAs can change the visibility of posts to public when appropriate. Please reserve email for academic/grading issues - Piazza is the place for help on assignments.

Gradescope: We will use Gradescope for all assignment and exam feedback. Please make sure you create an account using your @gmu.edu email address.

Blackboard: We will use Blackboard for limited cases only. Please consult with your instructor.

Students will be manually added to Piazza and Gradescope in the first or second week once enrollments are finalized.

Course Description

This course presents a 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.

Coursework

In this course students will be evaluated using several different kinds of coursework:

Grading Procedures

Grade Distribution
CourseworkWeightNotes
Class participation5%
Readings5%Lowest 15 subsections dropped
Labs15%weekly, no drops
Exercises9%3% each, no drops
Projects21%7% each, no drops
Midterm exam20%replaced by final exam grade if final exam grade is higher
Final exam25%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. Students who arrive more than 15 minutes after the start of an exam, or after another student has left after exams have been distributed, may be considered absent from the exam.
  3. The final exam is cumulative; a higher final exam score dominates (replaces) a lower score on midterm.
  4. For projects and exercises, any number of re-submissions are allowed (the most recent is used), however a re-submission turned in after the deadline will be considered a late submission.
  5. Late submission is allowed for projects and exercises only, and only up to 48 hours.
  6. 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, and there is no distinction between a 1-minute late and a 23-hours late.
  7. Code which does not compile or pass initial validation checks will receive a zero in most cases.
  8. 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.
  9. 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.
  10. There are no make-ups for absences to classes and labs.
  11. If you feel your assignment was graded incorrectly, let your TA and instructor know within one (1) week of when the grade was returned. Resubmitting after the due date with new code to improve your score is not permitted.
  12. The participation portion of the final grade will be calculated from a to-be-determined number of brief activities announced during lectures (for example, pop quizzes)

Grading Scale
GradeRange
A+[98,100]
A [92,98)
A-[90,92)
B+[88,90)
B [82,88)
B-[80,82)
C+[78,80)
C [72,78)
C-[70,72)
D [60,70)
F [0,60)

Academic Standards

Unless specific instructions are given to the contrary, projects 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, or Artificial Intelligence systems.

The Academic Standards of GMU and the CS department 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 Academic Standards Office.

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.

Student Resources And Accommodations

Students who are entitled to accommodations based on recommendations from University offices should promptly initiate a discussion with their instructors. It is the student's responsibility to acquire this information directly from the respective office.

Prioritizing your well-being is paramount in achieving academic success. We strongly urge students to take advantage of the available university resources designed to support their journey. We, as educators, may not possess the expertise to evaluate unforeseen and challenging circumstances that could arise; therefore, we rely on specialized offices for appropriate guidance and accommodations. These designated offices hold the responsibility of providing insights and ensuring your rights, as outlined in acts such as FERPA or ADA, are comprehensively understood and respected.

A brief list of the services at no cost to GMU students:

Disability Services at George Mason University is committed to providing equitable access to learning opportunities for all students by upholding the laws that ensure equal treatment of people with disabilities. If you are seeking accommodations for this class, please first visit https://ds.gmu.edu/ for detailed information about the Disability Services registration process. Then please discuss your approved accommodations with your instructor. Disability Services is located in Student Union Building I (SUB I), Suite 2500. Email: ods@gmu.edu | Phone: (703) 993-2474

Mason Safe Return to Campus Guide

For the collective safety of all students and staff, please follow Mason's Safe Return to Campus Guide.

Please refer to the GMU Common Course Policies provided by the Stearns Center, which cover any policies not directly superceded in this syllabus.

Schedule

Please note: the following schedule may be adjusted throughout the semester. Always check for announcements, and follow due dates posted on Blackboard, Gradescope, and zyBooks. The dates listed below are the Sunday at the beginning of the given week; they are NOT due dates. Final exam dates (which you can find here for ALL classes) are set by the registrar for each section based on the time and days of the week that lecture meets.

WeekDatesTopiczyBooks readingSupplemental readingAssignments
Week 1 26-AUG Introduction; Basics; Flow Control 1, 2, 3 (due NEXT week) 1, 2, A2 E1
Week 2 02-SEP Arrays; File I/O 4, 5 (due THIS week) 3, 5 E1
Week 3 09-SEP Classes; Objects; Methods; Fields 6, 7 4, 6 P1
Week 4 16-SEP Command line args; Packages; Javadocs 8 11, 13 P1
Week 5 23-SEP Inheritance; Polymorphism; Dynamic dispatch 10 7 E2
Week 6 30-SEP Abstract classes; Interfaces; Enums 11 8, 9 E2
Week 7 07-OCT Midterm review; Midterm
Week 8 14-OCT (Monday classes do not meet) Exceptions, Unit testing 12 10, 12 P2
Week 9 21-OCT Generics 13 14 P2
Week 10 28-OCT Collections, Lists & Queues 9, 14 P2
Week 11 04-NOV (Tuesday classes do not meet) Recursion 15 15 E3
Week 12 11-NOV Searching & Sorting 16 16 E3
Week 13 18-NOV Nested classes; Lambda expressions 19 A1 P3
Week 14 25-NOV (Wed, Thu, Fri classes do not meet) Graphical User Interfaces 17,18 P3
Week 15 02-DEC Review P3
Week 16 09-DEC (Tue, Wed, Thu, Fri classes do not meet) Review