Course Basics
Instructors:
Name: |
Socrates Dimitriadis (PhD) |
Email: |
sdimitr-at-gmu-dot-edu |
Webpage: |
https://cs.gmu.edu/~sdimitr
|
Hours: |
TR 3-4 PM or by appointment |
Office: |
Blackboard Ultra |
Name: |
Brian Hrolenok (PhD) |
Email: |
hrolenok-at-gmu-dot-edu |
Webpage: |
https://cs.gmu.edu/~hrolenok
|
Hours: |
TR 1:30-2:30 PM or by appointment |
Office: |
Blackboard Ultra |
Graduate Teaching Assistants:
Name: |
Xu Han |
Email: |
xhan21@ |
Hours: |
TBA |
Name: |
Jonathan Mbuya |
Email: |
jmbuya@ |
Hours: |
TBA |
Name: |
Mohammad Rahman |
Email: |
mrahma23@ |
Hours: |
TBA |
Name: |
Biao Xie |
Email: |
bxie@ |
Hours: |
TBA |
Name: |
Jin Zhou |
Email: |
jzhou23@ |
Hours: |
TBA |
Undergraduate Teaching Assistants:
Prerequisites:
CS 112 (C or better) and access to a Java-capable computer
Format:
Lecture plus weekly lab
Lectures:
Section | Days | Times | Location |
Sec 001 | MW | 3:00 pm - 4:15 pm | Online |
Sec 003 | TR | 10:30 am - 11:45 am | Online |
Sec 006 | MW | 1:30 pm - 2:45 pm | Online |
Sec H02 | MW | 1:30 pm - 2:45 pm | Online |
Labs:
Textbooks:
Blackboard:
Blackboard will be used for all official announcements,
course slides, assignments (including submissions), and grades.
Piazza:
Piazza will be used for online discussion; any information
discussed on Piazza will be assumed to be known to students.
- Course schedule, announcements discussion. GTA/UTA contacts and office hours 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
zyBooks:
online textbook with practice problems;
weekly deadlines for completing the practices are checked
automatically.
Labs:
- Lab submissions: Programming exercises during recitation(lab) sessions; collaboration/group work allowed;same date as the recitation(lab) sessions.
-
Exercise: programming assignment; open resources;
collaboration/group work allowed; several days to submit.
-
Quiz: closed resources; individual;
online (you need Respondus browser lockdown installed to take quizzes. Please refer here about respodus browser lockdown). You need to have a working webcam and microphone as well.
Programming Projects: programming assignment; individual work;
possibly more than a week to complete.
Exams: individual work; online (you need Respondus browser lockdown installed to take exams. Please refer here about respodus browser lockdown). You need to have a working webcam and microphone as well.
Grading Procedures
Grade Distribution
Material | Weight | Drop policy |
zyBooks | 5% | lowest 15 subsections |
Lab Submissions and Quizzes | 5% | |
Weekly Exercises (9) | 20% | lowest Two |
Programming projects (5) | 25% | none |
Midterm exam (2) | 20% | - |
Final exam | 25% | - |
Grading Policies
-
Grades within a category (i.e. midterms, projects, labs) are
weighted equally.
- Students must have Respondus Browser locakdown 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 exercise grading is fully automated. Quizzes may be hand-graded.
Project grading is partially automated. Even when
manually graded, 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 typically 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 25% 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. Taking 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
-
Take backups regularly, because the unexpected happens, and cannot be
used as an excuse to get an extension.
-
Submission times are automatically recorded by Blackboard, and
there's no distinction between a tiny bit late and nearly a day
late - plan ahead to make sure that your submission is on time.
-
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 | Lab | Notes |
week 1 | 08/24-08/28 | Introduction; Basics; Flow control | 1,2 | 1-3 | Exercise-1 | |
| Sun, Aug 30 | | | 1-3 due | | |
week 2 | 08/31-09/04 | Arrays; Input/Output | 3-5 | 4,5 | Exercise-2, Project 1 | |
| Mon, Aug 31 | | | | | E1 due |
| Sun, Sep 06 | | | 4,5 due | | |
week 3 | 09/08-09/11 | Classes; Objects; Methods; Fields | 6 | 6,7 | Exercise-3 | |
| Mon, Sep 07 | NO class - Labor Day | | | | |
| Tue, Sep 08 | | | | | E2 due |
| Sun, Sep 13 | | | 6,7 due | | P1 due |
week 4 | 09/14-09/18 | Command line args; Packages; Javadocs | 11,13 | 8,9 | | |
| Mon, Sep 14 | | | | | E3 due |
| Wen, Sep 16 | | | | Quiz 1 | |
| Sun, Sep 20 | | | 8,9 due | | |
week 5 | 09/21-09/25 | | | | Project 2 | |
| Mon/Tue, Sep 21/22 | Mid Term 1 - Review | | | | |
| Wed/Thu, Sep 23/24 | Midterm 1 | | | | |
| Sun, Sep 27 | | | | | |
week 6 | 09/28-10/02 | Inheritance; Polymorphism; Dynamic dispatch | 7 | 10 | Exercise-4 | |
| Sun, Oct 04 | | | 10 due | | |
week 7 | 10/05-10/09 | Abstract classes; Interfaces; Enums
| 8,9 | 11 | Exercise-5 | |
| Mon, Oct 05 | | | | | E4 due |
| Sun, Oct 11 | | | 11 due | | P2 due |
week 8 | 10/12-10/16 | Exceptions; Unit testing | 10,12 | 12 | Exercise-6, Project 3 | E5 due |
| Sun, Oct 18 | | | 12 due | | |
week 9 | 10/19-10/23 | Generics
| 14 | 13 | | |
| Mon, Oct 19 | | | | | E6 due |
| Wen/Thu, Oct 21/22 | | | | Quiz 2 | |
| Sun, Oct 25 | | | 13 due | | P3 due |
week 10 | 10/26-10/30 | | | | Project 4 | |
| Mon/Tue, Oct 26/27 | Mid Term 2 - Review | | | | |
| Wed/Thu, Oct 28/29 | Midterm 2 | | | | |
| Sun, Nov 01 | | | | | |
week 11 | 11/02-11/06 | Collections, Lists & Queues | | 14 | Exercise-7 | |
| Tue, Nov 03 | NO class - Election Day | | | | |
| Sun, Nov 08 | | | 14 due | | |
week 12 | 11/09-11/13 | Recursion | 15, A2 | 15 | Exercise-8 | |
| Mon, Nov 09 | | | | | E7 due |
| Sun, Nov 15 | | | 15 due | | P4 due |
week 13 | 11/16-11/20 | Sort & search | 16 | 16 | Exercise-9, Project 5 | |
| Mon, Nov 16 | | | | Quiz 3 | E8 due |
| Sun, Nov 22 | | | 16 due | | |
week 14 | 11/23-11/24 | Anonymous classes; Lambda functions; | A1
| | | |
| Mon, Nov 23 | | | | | E9 due |
| Nov 25 - Nov 29 | NO class - Thanksgiving | | | | |
week 15 | 11/30-12/05 | Anonymous classes; Lambda functions; | A1 | | | |
| Mon, Nov 30 | | | | | P5 due |
| Wed/Thu, Dec 02/03 | Final Exam Review | | | | |
Exam week | 12/07-12/11 | Final Exam (time TBD) | | | | |