Prerequisites:
CS 112 (C or better)
Format:
Lecture plus weekly lab
Instructors:
Name | Office | Hours | |
---|---|---|---|
Prof. Archange Giscard Destine | adestine@gmu.edu | Buchanan Hall D215A | Friday 9:30-11:30am |
Dr. Socrates Dimitriadis | socrates@gmu.edu | ENGR 4508 | Tuesday 1-3pm |
Name | Office | Hours | |
---|---|---|---|
Sadia Afrin Mim | safrinmi@gmu.edu | ENGR 4456 | Friday 3-6pm |
Dibyendu Das | ddas6@gmu.edu | ENGR 4456 | Wednesday 4-7pm |
Long Cao Thanh Doan | ldoan5@gmu.edu | ENGR 4456 | Thursday 4-6pm & Friday 2-3pm |
Saad Muhammad Abdul Ghani | sghani2@gmu.edu | ENGR 4456 | Monday 9-11am & Tuesday 12-1pm |
Prommy Sultana Hossain | phossai@gmu.edu | ENGR 4456 | Monday 12-3pm |
Saadat Hasan Khan | skhan225@gmu.edu | ENGR 4456 | Tuesday 9-11am & Thursday 11am-12pm |
Jonathan Mbuya | jmbuya@gmu.edu | ENGR 4456 | Wednesday 1-4pm |
Fardin Sakib | fsakib@gmu.edu | ENGR 4456 | Thursday 1-4pm |
Section | Day | Time | Instructor | Location |
---|---|---|---|---|
Sec 001 | TR | 10:30 am - 11:45 am | Dimitriadis | Horizon Hall 2014 |
Sec 002 | MW | 9:00 am - 10:15 am | Dimitriadis | Planetary Hall 129 |
Sec 003 | TR | 1:30 pm - 2:45 pm | Destine | Exploratory Hall L004 |
Sec 004 | MW | 1:30 pm - 2:45 pm | Dimitriadis | Enterprise Hall 178 |
Sec H01 | MW | 1:30 pm - 2:45 pm | Dimitriadis | Enterprise Hall 178 |
Section (Lab / Lec) | Day | Time | Instructor | UTA | UTA | Location |
---|---|---|---|---|---|---|
201 / 001 | W | 8:30am | Jonathan Mbuya | Raajita Battina | Isaac Choi | ENGR 4457 |
202 / 001 | W | 9:30am | Jonathan Mbuya | Tushar Rangaswamy | Arjun Giridhar | ENGR 4457 |
203 / 001 | W | 10:30am | Sadia Afrin Mim | Rohina Naderi | Sandhya Kuruganty | ENGR 4457 |
204 / 001 | W | 11:30am | Sadia Afrin Mim | Rohina Naderi | Raza Hussain | ENGR 4457 |
205 / 002 | R | 10:30am | Fardin Sakib | Muhammad Nomad | Qasim Khan | ENGR 4457 |
211 / 002 | R | 11:30am | Fardin Sakib | Nicolas Alt | Qasim Khan | ENGR 4457 |
212 / 002 | R | 12:30pm | Saadat Hasan Khan | Nicolas Alt | Calvin Nguyen | ENGR 4457 |
213 / 002 | R | 1:30pm | Saadat Hasan Khan | Tushar Rangaswamy | Isaac Choi | ENGR 4457 |
214 / 003 | F | 11:30am | Long Cao Thanh Doan | Zachary Canter | Jahnavi Paladugu | ENGR 4457 |
215 / 003 | F | 12:30pm | Long Cao Thanh Doan | Raza Hussain | Jahnavi Paladugu | ENGR 5358 |
216 / 003 | T | 10:30am | Dibyendu Das | Ilyas Fazelyar | Kevin Daniel | ENGR 4457 |
217 / 003 | T | 11:30am | Dibyendu Das | Ilyas Fazelyar | Kevin Daniel | ENGR 4457 |
218 / 004 | T | 12:30pm | Prommy Sultana Hossain | Samanvitha Matta | Arjun Giridhar | ENGR 4457 |
219 / 004 | T | 1:30pm | Prommy Sultana Hossain | Calvin Nguyen | Sandhya Kuruganty | ENGR 4457 |
220 / 004 | T | 2:30pm | Saad Muhammad Abdul Ghani | Calvin Nguyen | Kevin Daniel | ENGR 4457 |
2H2 / H01 | T | 3:30pm | Saad Muhammad Abdul Ghani | Joniel Jerome | Muhammad Nomad | ENGR 4457 |
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
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
Exercises:
small programming assignments (5-7 days); individual or group work
Projects:
large programming assignments (10-14 days); individual work only
Exams:
in-class; computer-based; require the Respondus Lockdown Browser
Grade Distribution
Coursework | Weight | Notes |
---|---|---|
Class participation | 3% | format varies by instructor |
Readings | 3% | lowest 15 subsections dropped |
Labs (14) | 10% | lowest 2 dropped |
Exercises (3) | 9% | 3% each, no drops |
Projects (5) | 35% | 7% each, no drops |
Midterm Exam | 15% | replaced by final exam grade if final exam score is higher |
Final Exam | 25% | must pass final to pass the course |
.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.
Grading Scale
grade: | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
range: | [98,100] | [92,98) | [90,92) | [88,90) | [82,88) | [80,82) | [78,80) | [72,78) | [70,72) | [60,70) | [0,60) |
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.
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.
We are in unprecedented times. For our collective safety, please follow these guides.
Week | Dates | Topic | Supplemental reading | zyBooks reading | Assignments |
---|---|---|---|---|---|
week 1 | 1/23-1/29 | Introduction; Basics; Control Flow | 1, 2, A2 | 1, 2, 3 | E1 |
week 2 | 1/30-2/05 | Arrays; Input/Output; File I/O | 3, 5 | 4, 5 | E1 |
week 3 | 2/06-2/12 | Classes; Objects; Methods; Fields | 4, 6 | 6, 7 | P1 |
week 4 | 2/13-2/19 | Command line args; Packages; Javadocs | 11, 13 | 8 | P1 |
week 5 | 2/20-2/26 | Inheritance; Polymorphism; Dynamic dispatch | 7 | 10 | E2 |
week 6 | 2/27-3/05 | Abstract classes; Interfaces; Enums | 8, 9 | 11 | P2 |
week 7 | 3/06-3/12 | Midterm Review & Exam | P2 | ||
week 8 | 3/13-3/19 | SPRING BREAK | |||
week 9 | 3/20-3/26 | Exceptions; Unit testing | 10, 12 | 12 | P3 |
week 10 | 3/27-4/02 | Generics | 14 | 13 | P3 |
week 11 | 4/03-4/09 | Collections, Lists & Queues | 9, 14 | E3 | |
week 12 | 4/10-4/16 | Recursion | 15 | 15 | P4 |
week 13 | 4/17-4/23 | Searching & Sorting | 16 | 16 | P4 |
week 14 | 4/24-4/30 | Nested classes; Lambda functions | A1 | 19 | P5 |
week 15 | 5/01-5/07 | Graphical User Interfaces; Final Exam Review | 17, 18 | P5 | |
Reading days | 5/08-5/09 | ||||
Exams | 5/10-5/17 | Final Exam |