Course Basics
Prerequisites:
CS 112 (C or better)
Format:
Lecture plus weekly lab
Instructors:
Graduate Teaching Assistants:
Name: |
Biao Xie |
Email: |
bxie@gmu.edu |
Hours: |
Mondays and Wednesdays 9-10 AM |
Office: |
Blackboard -> Online Sessions -> Office Hours |
Name: |
Bikram Adhikari |
Email: |
badhika5@gmu.edu |
Hours: |
Thursdays and Fridays 12-1 PM |
Office: |
Blackboard -> Online Sessions -> Office Hours |
Name: |
Dhiman Goswami |
Email: |
dgoswam@gmu.edu |
Hours: |
Fridays 9-11 AM |
Office: |
Blackboard -> Online Sessions -> Office Hours |
Name: |
Ismail Hossain |
Email: |
ihossai4@gmu.edu |
Hours: |
Wednesdays and Thursdays 11 AM - 12 PM |
Office: |
Blackboard -> Online Sessions -> Office Hours |
Name: |
Jonathan Mbuya |
Email: |
jmbuya@gmu.edu |
Hours: |
Mondays 10-11 AM and Thursdays 9-10 AM |
Office: |
Blackboard -> Online Sessions -> Office Hours |
Name: |
Yuyang Leng |
Email: |
yleng2@gmu.edu |
Hours: |
Tuesdays 9-11 AM |
Office: |
Blackboard -> Online Sessions -> Office Hours |
Lectures:
Section | Day | Time | Instructor | Location |
Sec 001 | TR | 10:30 am - 11:45 am | Kamberi | Online |
Sec 003 | TR | 12:00 pm - 1:15 pm | Kamberi | Online |
Sec 005 | MW | 9:00 am - 10:15 am | Dimitriadis | Online |
Sec H01 | MW | 9:00 am - 10:15 am | Dimitriadis | Online |
Labs:
Section (Lab / Lec) | Day | Time | Instructor | Location |
201 / 001 | W | 8:30am | Dhiman Goswami | Online |
202 / 001 | W | 9:30am | Jonathan Mbuya | Online |
203 / 001 | W | 10:30am | Jonathan Mbuya | Online |
204 / 001 | W | 11:30am | Jonathan Mbuya | Online |
205 / 001 | W | 12:30pm | Biao Xie | Online |
211 / 003 | F | 8:30am | Ismail Hossain | Online |
212 / 003 | F | 9:30am | Ismail Hossain | Online |
213 / 003 | F | 10:30am | Bikram Adhikari | Online |
214 / 003 | F | 11:30am | Dhiman Goswami | Online |
215 / 003 | F | 12:30pm | Dhiman Goswami | Online |
216 / 005 | R | 10:30am | Bikram Adhikari | Online |
217 / 005 | R | 11:30am | Biao Xie | Online |
218 / 005 | R | 12:30pm | Yuyang Leng | Online |
219 / 005 | R | 2:30pm | Yuyang Leng | Online |
2H2 / H01 | R | 1:30pm | Bikram Adhikari | Online |
Textbooks:
required | zyBooks | Object-Oriented Programming in Java | Available online at zyBooks
- Sign in or create an account at learn.zybooks.com
- Enter zyBook code GMUCS211Spring2021
- Subscribe
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. |
required | GMU | CS 211 Lab Manual | Available for free download from https://cs.gmu.edu/~marks/211/textbook/ |
optional | Reges and Stepp | Building Java Programs, 3rd ed. | See online at
https://practiceit.cs.washington.edu/ |
Blackboard:
Blackboard will be used for all course material (slides, etc.), assignments (including submissions), and grades.
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.
- This syllabus 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 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.
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:
it varies by instructor
Labs:
programming exercises during recitation(lab) sessions; collaboration/group work allowed; same date as the recitation(lab) sessions
Exercises:
programming assignments; open resources; collaboration/group work allowed; weekly deadlines
Projects:
programming assignments; individual work; 2-3 weeks to complete.
Exams:
individual work; online; you might need the Respondus Lockdown Browser as well as a working webcam and microphone.
Grading Procedures
Grade Distribution
Coursework | Weight | Drop policy |
class participation | 2% | varies by instructor |
zyBooks | 3% | lowest 15 subsections |
Labs (14) | 5% | lowest two |
Exercises (8) | 20% | lowest one |
Projects (5) | 25% | none |
Midterm Exams (2) | 20% | none (but see Grading Policies below) |
Final Exam | 25% | must pass final to pass the course (see Grading Policies below) |
Grading Policies
-
Grades within a category (i.e. midterms, projects, labs) are
weighted equally.
- Students must have Respondus Browser lockdown installed before taking any quiz or exams.
-
By department policy, the student must pass the final or
the weighted average of all three exams must be a
passing grade (≥ 60) in order for a student to pass the course.
-
The final exam is cumulative; a high final exam score dominates
(replaces) lower scores on one or both of the midterms.
-
Challenging of any grade must occur within a week of when the
graded assignment has been returned.
-
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.
-
Lab grading is fully automated.
Projects and Exercises grading is partially automated.
-
Code which does not compile will receive a zero in most cases.
-
Absences are absorbed by the drop policy - in general, make-ups
are not allowed except on exams (under very special circumstances).
- Assignments are 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 20% off, > 48 hours will receive 0. For example, if you are late by 10 hours and you get 90 on the assignment, your final points will be 81. 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. Saving backups regularly is highly recommended.
Grading Scale
Grade |
A+ | A | A- |
B+ | B | B- |
C+ | C | C- |
D | F |
max |
↑ | 97 | 91 |
89 | 87 | 81 |
79 | 77 | 71 |
69 | 59 |
min |
98 | 92 | 90 |
88 | 82 | 80 |
78 | 72 | 70 |
60 | ↓ |
Tips
-
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 on Blackboard rather than simply saved.
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.
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.
Schedule
Week | Date | Topic(s) | Lab Text reading | zyBooks reading | | Due |
week 1 | 1/25-1/29 | Introduction; Basics; Control Flow | 1,2 | 1,2,3 | | |
| Fri, 1/29 | | | | | ZY 1,2,3 |
week 2 | 2/1-2/5 | Arrays; Input/Output; Files | 3-5 | 4,5 | | |
| Mon, 2/1 | | | | | E1 |
| Fri, 2/5 | | | | | ZY 4,5 |
week 3 | 2/8-2/12 | Classes; Objects; Methods; Fields | 6 | 6,7 | | |
| Mon, 2/8 | | | | | E2 |
| Fri, 2/12 | | | | | ZY 6,7 |
week 4 | 2/15-2/19 | Command line args; Packages; Javadocs | 11,13 | 8,9 | | |
| Mon, 2/15 | | | | | P1 |
| Fri, 2/19 | | | | | ZY 8,9 |
week 5 | 2/22-2/26 | Midterm 1 | | | | |
| Mon, 2/22 | | | | | E3 |
| Mon/Tue, 2/22-23 | Review | | | | |
| Wed/Thu, 2/24-25 | Exam | | | | |
week 6 | 3/1-3/5 | Inheritance; Polymorphism; Dynamic dispatch | 7 | 10 | | |
| Mon, 3/1 | | | | | P2 |
| Fri, 3/5 | | | | | ZY 10 |
week 7 | 3/8-3/12 | Abstract classes; Interfaces; Enums
| 8,9 | 11 | | |
| Mon, 3/8 | | | | | E4 |
| Fri, 3/12 | | | | | ZY 11 |
week 8 | 3/15-3/19 | Exceptions; Unit testing | 10,12 | 12 | | |
| Mon, 3/15 | | | | | P3 |
| Fri, 3/19 | | | | | ZY 12 |
week 9 | 3/22-3/26 | Generics
| 14 | 13 | | |
| Mon, 3/22 | | | | | E5 |
| Fri, 3/26 | | | | | ZY 13 |
week 10 | 3/29-4/2 | Midterm 2 | | | | |
| Mon, 3/29 | | | | | E6 |
| Mon/Tue, 3/29-30 | Review | | | | |
| Wed/Thu, 3/31-4/1 | Exam | | | | |
week 11 | 4/5-4/9 | Collections, Lists & Queues | | 14 | | |
| Mon, 4/5 | | | | | P4 |
| Fri, 4/9 | | | | | ZY 14 |
week 12 | 4/12-4/16 | Recursion | 15, A2 | 15 | | |
| Mon, 4/12 | | | | | E7 |
| Fri, 4/16 | | | | | ZY 15 |
week 13 | 4/19-4/23 | Sorting & Searching | 16 | 16 | | |
| Mon, 4/19 | | | | | E8 |
| Fri, 4/23 | | | | | ZY 16 |
week 14 | 4/26-4/30 | Anonymous classes; Lambda functions; Final Exam Review | A1
| | | |
| Mon, 4/26 | | | | | P5 |
Exam week | 5/3-5/10 | Final Exam (time TBD) | | | | |