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
Prerequisites:
CS 112 (C or better)
Format:
Lecture plus weekly lab
Instructors:
Name: | Dr. Socrates Dimitriadis |
Email: | sdimitr@gmu.edu |
Webpage: | https://cs.gmu.edu/~sdimitr |
Hours: | Mondays 3-5 PM |
Office: | ENGR 4508 |
Name: | Dr. Brian Hrolenok |
Email: | hrolenok@gmu.edu |
Webpage: | https://cs.gmu.edu/~hrolenok/ |
Hours: | Mondays, Wednesdays 4:30-5:30pm |
Office: | ENGR 4708 |
Graduate Teaching Assistants:
Name: | Dhiman Goswami |
Email: | dgoswam@gmu.edu |
Hours: | TBD |
Office: | TBD |
Name: | Seyed Hooman Mostafavi |
Email: | smostaf6@gmu.edu |
Hours: | TBD |
Office: | TBD |
Name: | Michael Solah |
Email: | msolah@gmu.edu |
Hours: | TBD |
Office: | TBD |
Name: | Weisen Zhao |
Email: | wzhao9@gmu.edu |
Hours: | TBD |
Office: | TBD |
Name: | Liuchuan Yu |
Email: | lyu20@gmu.edu |
Hours: | TBD |
Office: | TBD |
Lectures:
Section | Day | Time | Instructor | Location |
---|---|---|---|---|
001 | MW | 3:00 pm - 4:15 pm | Hrolenok | ENGR 1101 |
002 | MW | 1:30 pm - 2:45 pm | Hrolenok | ENGR 1101 |
003 | MW | 9:00 am - 10:15 am | Dimitriadis | EXPL L004 |
004 | MW | 10:30 am - 11:45 am | Dimitriadis | PLANET 129 |
H02 | MW | 1:30 pm - 2:45 pm | Hrolenok | ENGR 1101 |
Labs:
Section (Lab / Lec) | Day | Time | Instructor | Location |
---|---|---|---|---|
201 / 001 | R | 8:30am | TBD | IN 129 |
202 / 001 | R | 9:30am | TBD | IN 327 |
203 / 001 | R | 10:30am | TBD | ENGR 5358 |
204 / 001 | R | 11:30am | TBD | ENGR 4457 |
209 / 003 | W | 1:30pm | TBD | ENGR 1505 |
210 / 003 | W | 2:30pm | TBD | ENGR 1505 |
212 / 003 | W | 12:30pm | TBD | ENGR 1505 |
213 / 004 | F | 2:30pm | TBD | ENGR 5358 |
221 / 002 | W | 8:30am | TBD | ENGR 1505 |
223 / 002 | W | 9:30am | TBD | ENGR 1505 |
224 / 002 | W | 10:30am | TBD | ENGR 1505 |
225 / 002 | W | 11:30am | TBD | ENGR 4457 |
226 / 004 | F | 12:30pm | TBD | ENGR 1505 |
227 / 004 | F | 1:30pm | TBD | ENGR 5358 |
228 / 004 | F | 11:30am | TBD | ENGR 1505 |
2H2 / H02 | W | 12:30pm | TBD | ENGR 4457 |
Textbooks:
required | zyBooks | Object-Oriented Programming in Java | Available online at zyBooks
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.
Projects:
programming assignments; individual work; 2-3 weeks to complete.
Labs:
in-lab assignments, must complete during lab session:
Grade Distribution
Coursework | Weight | Drop policy |
---|---|---|
Readings | 3% | lowest 15 subsections |
Labs | 12% | lowest two |
Projects | 40% | none |
Midterm Exam | 20% | none (but see Grading Policies below) |
Final Exam | 25% | must pass final to pass the course (see Grading Policies below) |
Grading Policies
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
.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.
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.
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.
Week | Date | Lecture topic(s) | Lab Text reading | zyBooks reading | Homework due | Lab activity | |
---|---|---|---|---|---|---|---|
week 1 | 8/23-8/27 | Introduction; Basics; Control Flow | 1,2 | 1,2,3 | L1 - Exercise | ||
Fri, 8/27 | ZY 1,2,3 | ||||||
week 2 | 8/30-9/3 | Arrays; Input/Output; Files | 3-5 | 4,5 | L2 - Quiz | ||
Fri, 9/3 | ZY 4,5 | ||||||
week 3 | 9/6-9/10 | Classes; Objects; Methods; Fields | 6 | 6,7 | L3 - Exercise | ||
Mon, 9/6 | No Monday Classes (Labor Day) | ||||||
Fri, 2/12 | ZY 6,7; P1 | ||||||
week 4 | 9/13-9/17 | Command line args; Packages; Javadocs | 11,13 | 8,9 | L4 - Task | ||
Fri, 2/19 | ZY 8,9 | ||||||
week 5 | 9/20-9/24 | Inheritance; Polymorphism; Dynamic dispatch | 7 | 10 | L5 - Quiz | ||
Fri, 9/24 | ZY 10 | ||||||
week 6 | 9/27-10/1 | Abstract classes; Interfaces; Enums | 8,9 | 11 | L6 - Exercise | ||
Fri, 3/5 | ZY 11; P2 | ||||||
week 7 | 10/4-10/8 | Midterm | L7 - Quiz | ||||
Mon, 10/4 | Review | ||||||
Wed, 10/6 | Exam | ||||||
week 8 | 10/11-10/15 | Exceptions; Unit testing | 10,12 | 12 | L8 - Quiz | ||
Mon, 10/11 | No Class (Fall break) | ||||||
Tue, 10/12 | Monday Classes Held (Fall break) | ||||||
Fri, 10/15 | ZY 12 | ||||||
week 9 | 10/18-10/22 | Generics | 14 | 13 | L9 - Exercise | ||
Fri, 10/22 | ZY 13; P3 | ||||||
week 10 | 10/24-10/29 | Collections, Lists & Queues | 14 | L10 - Quiz | |||
Fri, 10/29 | ZY 14 | ||||||
week 11 | 11/1-11/5 | Recursion | 15, A2 | 15 | L11 - Quiz | ||
Fri, 11/5 | ZY 15 | ||||||
week 12 | 11/8-11/12 | Sorting & Searching | 16 | 16 | L12 - Exercise | ||
Fri, 11/12 | ZY 16; P4 | ||||||
week 13 | 11/15-11/19 | Anonymous classes; Lambda functions | A1 | L13 - Task | |||
week 14 | 11/22-11/27 | TBD | L14 - Quiz | ||||
Wed-Fri, 11/24-11/27 | No Class (Thanksgiving break) | ||||||
week 15 | 11/28-12/3 | Final Exam Review | L15 - Exercise | ||||
Fri, 12/3 | P5 |