CS 211: Object Oriented Programming - Fall 2023

George Mason University - Department of Computer Science

Course Information

Prerequisites: CS 112 (C or better)

Format: Lecture plus weekly lab

Instructors:
Instructor Name Email Office Office Hours
Prof. Archange Giscard Destiné adestine@gmu.edu Buchanan Hall D215F Tuesday, 11am-1pm
Prof. David I. Gonzalez Samudio dgonza10@gmu.edu TBA TBA
Dr. Brian Hrolenok hrolenok@gmu.edu ENGR 4708 Mondays, 3pm-5pm

Graduate Teaching assistants:
TA Name Email Office Hours location Office Hours
Chenghao Du cdu9@gmu.edu ENGR 4456 Tuesday, 1:00pm-3:00pm
Mainul Hossain mhossa6@gmu.edu ENGR 4457 Thursdays, 1:30pm-3:30
A. H. M. Rezaul Karim akarim9@gmu.edu ENGR 4457 Thursdays, 11:30am-1:30pm
Arun Krishna Vajjala akrishn@gmu.edu ENGR 5358 Mondays, 9:00am-11:00am
Raj Patel rpatel17@gmu.edu ENGR 4456 Wednesdays, 12:30pm-2:30pm
Sthitadhi Sengupta ssengup2@gmu.edu ENGR 5358 Mondays, 11:00am-1:00pm
Fatemeh Vares fvares@gmu.edu ENGR 4457 Thursdays, 10:30am-12:30pm
Fatema Tuz Zohra fzohra@gmu.edu ENGR 4456 Mondays, 1:00pm-3:00pm

Lectures
Section Day(s) Time Instructor Location
001 Tuesday & Thursday 3:00-4:15pm Destiné Horizon Hall 2014
002/H02 Tuesday & Thursday 1:30-2:45pm TBA Horizon Hall 2014
003 Monday & Wednesday 12:00-1:15pm Hrolenok Enterprise Hall 178
004 Monday & Wednesday 1:30-2:45pm Hrolenok Nguyen Engineering 1101

Labs
SectionDayTimeInstructorUTAUTAUTAUTALocation
201 Friday 09:30am-10:20am Arun Krishna Vajjala Rimika Shrestha Sheena Anishraj Daniel Burnayev Alexander Farouz Buchanan Hall D023
202 Friday 10:30am-11:20am Fatema Tuz Zohra Raza Hussain Mohamed Haik Sami Saifudin Katherine Fadeyeva Buchanan Hall D023
203 Friday 11:30am-12:20pm Sthitadhi Sengupta Sienna Manny Mohamed Shaik Sami Saifudin Katherine Fadeyeva Buchanan Hall D023
204/2H2 Friday 12:30pm-01:20pm Raj Patel Daniel Burnayev Aidan Grupac Andreas Siokouros Phuc Nguyen Horizon Hall 2008
205 Thursday 10:30am-11:20am A. H. M. Rezaul Karim Ali Madi Aidan Grupac Andreas Siokouros Alexander Farouz Horizon Hall 1014
206 Thursday 11:30am-12:20pm Mainul Hossain Sami Saifudin Sydney To Veronica Thach Daniel Burnayev Horizon Hall 1014
207 Thursday 12:30pm-01:20pm Fatemeh Vares Daniel Burnayev Raza Hussain Andreas Siokouros Andrew Soto Buchanan Hall D023
208 Thursday 01:30pm-02:20pm Chenghao Du Zachary Canter Sienna Manny Riyaz Rabbani Faraaz Rahman Buchanan Hall D023

Textbooks (required)

  1. (ZyBooks) CS 211: Object-Oriented Programming. Available online at learn.zyBooks.com. When purchasing your textbook, use the code "GMUCS211HrolenokFall2023" 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.

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%each week, 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. The final exam is cumulative; a higher final exam score dominates (replaces) a lower score on midterm.
  3. 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.
  4. Late submission is allowed for projects and exercises only, and 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, 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.
  10. If you feel your assignment was graded incorrectly, let your TA and instructor know within one (1) week of when the grade was returned.

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)

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.

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

Schedule

Please note: the following schedule may be adjusted throughout the semester. Always check for announcements, and follow due dates posted on Blackboard and Gradescope.

WeekDatesTopiczyBooks readingSupplemental readingAssignments
Week 1 21-AUG Introduction; Basics; Flow Control 1, 2, 3 1, 2, A2 E1
Week 2 28-AUG Arrays; File I/O 4, 5 3, 5 E1
Week 3 04-SEP Classes; Objects; Methods; Fields 6, 7 4, 6 P1
Week 4 11-SEP Command line args; Packages; Javadocs 8 11, 13 P1
Week 5 18-SEP Inheritance; Polymorphism; Dynamic dispatch 10 7 E2
Week 6 25-SEP Abstract classes; Interfaces; Enums 11 8, 9 E2
Week 7 02-OCT Midterm review; Midterm P2
Week 8 09-OCT Exceptions, Unit testing 12 10, 12 P2
Week 9 16-OCT Generics 13 14 E3
Week 10 23-OCT Collections, Lists & Queues 9, 14 E3
Week 11 30-OCT Recursion 15 15 P3
Week 12 06-NOV Searching & Sorting 16 16 P3
Week 13 13-NOV Nested classes; Lambda functions 19 A1 P3
Week 14 20-NOV Graphical User Interfaces 17,18
Week 15 27-NOV Review