4609 Engineering Building
CS112 (C or better) and access to a Java-capable computer
CS 211 Lab Manual,
available for free
available online (access details to be provided)
(Optional) Reges and Stepp,
Building Java Programs
, 3rd ed.
will be used for all
official announcements and online discussion; any information
discussed on Piazza will be assumed to be known to students.
will be used
to provide and submit assignments, as well as to view grades.
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
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
zyBooks: online textbook with practice problems;
weekly deadlines for completing the practices are checked
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.
|Material||Weight||Drop policy |
|Attendance||2%||three days |
|zyBooks||3%||lowest three |
|Labs (weekly)||10%||lowest two |
|Programming projects (5-7)||40%||none |
|Midterm exams (2)||20%||- |
|Final exam||25%||- |
Grades within a category (i.e. midterms, projects, labs) are
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).
Late work can be mitigated by emergency tokens (see below).
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
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.
- 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.
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
.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
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