Instructor: Ivan Avramovic
Email: iavramo2-at-gmu.edu
Hours:
12:00-1:00pm Tue/Thu,
4609 Engineering Building
Assistants:
see Piazza
Prerequisites:
CS112 (C or better) and access to a Java-capable computer
Format:
Lecture plus weekly lab
Textbooks:
CS 211 Lab Manual, available for free
download from
https://cs.gmu.edu/~marks/211/textbook/
zyBooks
Programming in Java,
available online at
https://learn.zybooks.com/
(access using the sign-in code
GMUCS211AvramovicFall2018)
(Optional) Reges and Stepp,
Building Java Programs, 3rd ed., available online at
https://practiceit.cs.washington.edu/
Webpage:
https://mason.gmu.edu/~iavramo2/classes/cs211f18.html
Piazza:
Piazza will be used for all
official announcements and online discussion; any information
discussed on Piazza will be assumed to be known to students.
Blackboard:
Blackboard will be used
to provide and submit assignments, as well as to view grades.
Outcomes
-
An understanding of basic object-oriented (OO) programming
concepts and principles.
-
An ability to apply basic object-oriented principles and
techniques in the development of software systems using a
specific programming language.
-
An ability to effectively develop software systems using both
basic command line tools and sophisticated integrated
development environments, and to understand the advantages and
limitations of each.
-
An ability to successfully perform debugging operations and
techniques.
-
An ability to perform software development in both individual
and team environments.
-
An understanding of programming-related references/resources
available to software developers and the ability to use them
effectively - both in ongoing projects and in the acquisition
of new technical skills.
-
An understanding of how acquired programming skills facilitate
success in upper level CS courses and in various professional
environments.
Coursework Description
-
zyBooks: online textbook with practice problems;
weekly deadlines for completing the practices are checked
automatically.
-
Labs:
-
Exercise: programming assignment; open resources;
collaboration/group work allowed; several days to submit.
-
Quiz: pencil and paper; closed resources; individual;
due same-day during lab.
-
Task: computer assignment; closed resources; individual;
due same-day during lab.
-
Projects: programming assignment; individual work;
possibly more than a week to complete.
-
Exams: individual work; in-class.
Grade Distribution
Material | Weight | Drop policy |
zyBooks | 5% | lowest 15 subsections |
Labs (weekly) | 10% | lowest two |
Programming projects (5-7) | 40% | none |
Midterm exams (2) | 20% | - |
Final exam | 25% | - |
Grading Policies
-
Grades within a category (i.e. midterms, projects, labs) are
weighted equally.
-
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 are hand-graded.
Lab task and 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 (provided a valid excuse).
- Assignments are typically due at noon on the listed due date.
-
Late work can be mitigated by emergency tokens (see below).
Emergency Tokens
-
Every student begins the semester with a non-replenishing allotment
of three emergency tokens.
-
For every emergency token, a submitted assignment (programming
projects and lab exercises) can be submitted a day (24 hours) late
without penalty. An assignment can be submitted two days late at
the cost of two tokens.
-
No assignment will be accepted more than 2 days late (i.e. if
3 tokens are available, at most 2 of them can be used on the
assignment).
-
Without applying tokens, a one day late assignment can receive
a maximum score of 75%, while a two day late assignment can
receive a maximum score of 50%. Beyond that an assignment receives
a zero, regardless of tokens.
-
Tokens are applied automatically to late submissions, projects
first, in chronological order; a student cannot pick and choose
where to use tokens to maximize impact.
-
Tokens are use-it-or-lost it; if a student has tokens remaining at
the end of the semester, nothing happens with them.
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 | ↓ |
General Policies
- Students must show their Mason ID card when taking exams.
-
Instructors and TAs will be able to view all material on Piazza.
If you have any questions about programming problems, use Piazza
as a first resort rather than email. However, do not share any
code except in private posts. Email should be reserved for
logistics and grade disputes.
-
Grading issues should be directed to the grader (by email or in
person) first. For programs or lab work, this is the GTA of the
lab section, and for exams this is the instructor.
- Course-related email must be sent from a valid GMU email address.
Tips
-
Make backups, 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) and Lab Text reading | zyBooks reading | Lab | Notes |
week 1 | | Introduction; Basics; Flow control, Sections 1,2 | 1-4 | Exercise-1 | |
| Thu, Aug 30 | | | E1 assigned | |
week 2 | | Arrays; Input/Output, Sections 3-5 | 5,6 | Quiz-2 | |
| Mon, Sep 3 | | 1-4 due | | Labor Day, no class |
| Thu, Sep 6 | | | E1 due | Project 1 assigned |
| Fri, Sep 7 | | | Q2, sec 215/216 | |
| Mon, Sep 10 | | | Q2, sec 217/218 | |
| Tue, Sep 11 | | | Q2, sec 213/214/219/220 | |
week 3 | | Classes; Objects; Methods; Fields, Section 6 | 7,8 | Exercise-3 | |
| Mon, Sep 10 | | 5,6 due | | |
| Thu, Sep 13 | | | E3 assigned | |
week 4 | | Inheritance; Polymorphism; Dynamic dispatch, Section 7 | 9 | Task-4 | |
| Mon, Sep 17 | | 7,8 due | | |
| Thu, Sep 20 | | | E3 due | Project 1 due |
| Fri, Sep 21 | | | T4, sec 215/216 | |
| Mon, Sep 24 | | | T4, sec 217/218 | |
| Tue, Sep 25 | | | T4, sec 213/214/219/220 | |
week 5 | | | | Exercise-5 | |
| Mon, Sep 24 | | | | Review, sec 006 |
| Tue, Sep 25 | | | | Review, sec 004 |
| Wed, Sep 26 | | | | Midterm 1, sec 006 |
| Thu, Sep 27 | | | E5 assigned | Midterm 1, sec 004; Project 2 assigned |
week 6 | | Abstract classes; Interfaces; Packages; Enums, Sections 8,9 | 10 | Exercise-6 | |
| Mon, Oct 1 | | 9 due | | |
| Thu, Oct 4 | | | E5 due | |
| Thu, Oct 4 | | | E6 assigned | |
week 7 | | Exceptions; Command line args; Javadocs, Sections 10,11,13 | 11,12 | Quiz-7 | |
| Mon, Oct 8 | | 10 due | | Columbus Day, no class |
| Tue, Oct 9 | | | | Monday sections meet |
| Thu, Oct 11 | | | E6 due | Project 2 due; Project 3 assigned |
| Fri, Oct 12 | | | Q7, sec 215/216 | |
| Mon, Oct 15 | | | Q7, sec 217/218 | |
| Tue, Oct 16 | | | Q7, sec 213/214/219/220 | |
week 8 | | Unit testing, Section 12 | | Exercise-8 | |
| Mon, Oct 15 | | 11,12 due | | |
| Thu, Oct 18 | | | E8 assigned | |
week 9 | | Generics, Section 14 | 13 | Task-9 | |
| Thu, Oct 25 | | | E8 due | Project 4 assigned |
| Fri, Oct 26 | | | T9, sec 215/216 | Project 3 due |
| Mon, Oct 29 | | | T9, sec 217/218 | |
| Tue, Oct 30 | | | T9, sec 213/214/219/220 | |
week 10 | | | | Exercise-10 | |
| Mon, Oct 29 | | 13 due | | |
| Wed, Oct 31 | | | | Review, sec 006 |
| Thu, Nov 1 | | | E10 assigned | Review, sec 004 |
week 11 | | Recursion, Section 15 | 14 | | |
| Mon, Nov 5 | | | | Midterm 2, sec 006 |
| Tue, Nov 6 | | | | Midterm 2, sec 004 |
week 12 | | Sort & search, Section 16 | 15,16 | Quiz-11 | |
| Mon, Nov 12 | | 14 due | | |
| Tue, Nov 13 | | | | Project 4 due |
| Thu, Nov 15 | | | E10 due | |
| Fri, Nov 16 | | | Q11, sec 215/216 | |
| Mon, Nov 19 | | | Q11, sec 217/218 | |
| Tue, Nov 20 | | | Q11, sec 213/214/219/220 | |
week 13 | | Sort & search, Section 16 | | | |
| Mon, Nov 19 | | 15 due | | Project 5 assigned |
| Wed-Fri | | | | Thanksgiving, no class |
week 14 | | Lists; Collections | | Exercise-12 | |
| Sun, Nov 25 | | | E12 assigned | |
| Mon, Nov 26 | | 16 due | | |
week 15 | | Stacks & queues | | Quiz-13 | |
| Sun, Dec 2 | | | E12 due | |
| Mon, Dec 3 | | | Q13, sec 217/218 | |
| Tue, Dec 4 | | | Q13, sec 213/214/219/220 | Project 5 due |
| Wed, Dec 5 | | | | Review, sec 006 |
| Thu, Dec 6 | | | | Review, sec 004 |
| Fri, Dec 7 | | | Q13, sec 215/216 | |
exam week | | | | | |
| Mon, Dec 17 | | | | Final exam, sec 006, 1:30-4:15pm |
| Tue, Dec 18 | | | | Final exam, sec 004, 10:30-1:15pm |