Course Basics
Prerequisites:
CS 112 (C or better)
Format:
Lecture and Lab
Instructor:
Name | Email | Office | Hours |
---|
Prof. Archange Giscard Destiné | adestine@gmu.edu | ENGR 3241 | Tuesdays 3-5pm |
Graduate Teaching Assistants:
Name | email | Office | Hours |
---|
TBA | TBA | TBA | TBA |
Lecture:
Section | Day | Time | Location |
B01 | MW | 10:30 am - 1:10 pm | Horizon Hall 2016 |
Labs:
Lab Section | Day | Time | Instructor | Location |
2B1 | TR | 12:30 pm | TBA | Horizon Hall 4010 |
2B2 | TR | 1:30 pm | TBA | Horizon Hall 4010 |
Textbooks (required):
- 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 GMUCS211DestineSummer2025 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.
- Supplemental Java Textbook. Available for free download
- The Java Tutorials. Available for free download
Canvas:
Canvas 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.
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
-
An understanding of basic object-oriented programming concepts and principles
-
An ability to apply basic object-oriented principles and techniques in the design and development of software systems using a specific programming language.
-
An ability to effectively use both basic command line tools and sophisticated integrated development environments, and to understand the benefits and limitations of each.
-
An ability to successfully perform debugging operations and techniques.
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
Grading Procedures
Grade Distribution
Coursework | Weight | Notes |
Class participation | 5% | |
Readings | 5% | lowest 15 subsections dropped |
Labs (14) | 10% | lowest 2 dropped |
Exercises (4-5) | 15% | no drops |
Projects (2-3) | 20% | no drops |
Midterm Exam | 15% | replaced by final exam grade if final exam score is higher |
Final Exam | 30% | must pass final to pass the course |
Grading Policies
-
By department policy, students 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.
-
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.
-
Late submission is allowed for projects and exercises only (up to 48 hours).
-
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 Gradescope, and there is no distinction between a 1-minute late and a 23-hours late.
-
Code which does not compile will receive a zero in most cases.
-
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 rather than simply saved.
-
There are no make-ups for absences to classes and labs. The drop policy is used in these cases.
-
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) |
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.
-
All students are expected to abide by the
GMU Academic Standards Code.
This policy is rigorously enforced. Cheating will be prosecuted
and result in a notification of the Honor Committee as outlined
in the Standards. Sharing,
collaboration, or looking at any code or algorithm for the
programming projects that is not your own, including resources
from Internet or AI, is considered cheating.
-
The computer science department has an CS Honor Code
Policies that you are subject to particularly for our
course. The document helps you to understand how Academic Standards
applies to programming and CS, and what constitutes cheating in the
CS setting. It clarifies some scenarios that are unique to our
sorts of assignments. Make sure you read and familiarize
yourself with these rules.
-
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 Standards.
Confirmed violations of the Academic Standards Code or the CS
Honor Code are generally Level 2 violations which always result
in course failure.
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.
Tentative Schedule
Week | Dates | Topic | Supplemental reading | zyBooks reading | Assignments | Notes (deadlines) |
week 1 | 5/28 | Introduction; Basics; Control Flow | 1, 2, A2 | 1, 2, 3 | E1 | - |
week 2 | 6/02 | Arrays; Input/Output; File I/O | 3, 5 | 4, 5 | | - |
| 6/04 | Classes; Objects; Methods; Fields | 4, 6 | 6, 7 | E2, P1 | E1 is due |
week 3 | 6/09 | Command line args; Packages; Javadocs | 11, 13 | 8 | | - |
| 6/11 | Inheritance; Polymorphism; Dynamic dispatch | 7 | 10 | | E2 is due |
week 4 | 6/16 | Abstract classes; Interfaces; Enums
| 8, 9 | 11 | E3, P2 | P1 is due |
| 6/18 | Exceptions; Unit testing | 10, 12 | 12 | | - |
week 5 | 6/23 | Midterm Review | | | E4 | E3 is due |
| 6/25 | | | --- Midterm Exam --- | | |
week 6 | 6/30 | Debugging; Testing | | | | |
| 7/02 | Generics | 14 | 13 | | P2 is due |
week 7 | 7/07 | Collections, Lists & Queues
| | 9,14 | P3 | E4 is due |
| 7/09 | Recursion | 15 | 15 | | - |
week 8 | 7/14 | Searching & Sorting | 16 | 16 | E5 | - |
| 7/16 | Nested classes; Lambda functions | A1 | 19 | | P3 is due |
week 9 | 7/21 | Final Review | | | | E5 is due |
| 7/23 | OOP Concepts review | | | | |
| 7/24 | | | --- Final Exam --- | | |