You are on page 1of 10

/Last Updated: 2015-02-26 Thu 10:49/

CS 211 / 211H: Object Oriented Programming


George Mason University
Spring 2015
1 Basic Information
1.1 Prerequisite
Grade of C or better in CS 112.
1.2 Instructors
*Name* Richard
*Sections*
*Email*
*Office*
*Phone*

Carver Chris Kauffman Mark Snyder


001
002, 004
003, H01
rcarver@cs.gmu.edu
kauffman@cs.gmu.edu
ENGR 5318
ENGR 5341
ENGR 5346
703-993-1550
703-993-5194
703-993-5624

msnyde14@gmu.edu

GTAs:
Rajhersh Patel
Yue Hao
Ruoxi Li
Thabet Kacem
Phi Hung Le

rpatel17@gmu.edu
yhao3@gmu.edu
rli7@gmu.edu
tkacem@gmu.edu
ple13@gmu.edu

See the course /Piazza/ site for contact info for all TAs.
1.3 Lectures
#
001
002
003
004
H01

Day
TR
MW
TR
TR
TR

Time
10:30am
12:00pm
12:00pm
03:00pm
10:30am

Location
- 11:45am
- 01:15pm
- 01:15pm
- 04:00pm
- 11:45am

Professor
Music Theater Building 1005
Carver
Exploratory L004
Kauffman
Innovation 132 Snyder
Robinson B104 Kauffman
Engineering 1107
Snyder

1.4 Labs Meetings


All labs are in the Engineering Building. The Graduate Teaching
Assistant leading each lab will be posted on the course web page
<#sec-1-6>.
\#
CRN
Lecture Prof.
201
11396
Carver

GTA to add as instructor


Rajhersh Patel 001

Lec

Day

ROOM

Time

4457

12:30 pm-01:20 pm

202
11838
Carver
203
11397
-03:20
pm
Carver
204
17724
Carver
205
12710
Kauffman
206
11398
Kauffman
207
12709
Kauffman
208
17725
Kauffman
210
11399
Snyder
212
17704
Snyder
213
17721
Snyder
214
17722
Kauffman
215
17728
Kauffman
216
17729
Kauffman
217
17731
Kauffman
2H1
11840
Snyder

Rajhersh Patel 001

4457

01:30 pm-02:20 pm

Yue Hao (attend @ rm. 5358)

001

Rajhersh Patel 001

4457

03:30 pm-04:20 pm

Ruoxi Li

002

5358

11:30 am-12:20 pm

Ruoxi Li

002

5358

12:30 am-01:20 pm

Ruoxi Li

002

5358

01:30 am-02:20 pm

Yue Hao

002

5358

02:30 am-03:20 pm

Yue Hao

003

1505

01:30pm - 02:20pm

Phi Hung Le

003

1505

02:30pm - 03:20pm

Phi Hung Le

003

1505

03:30pm - 04:20pm

(cancelled)

004

4457

08:30am - 09:20am

Kacem Thabet

004

4457

09:30am - 10:20am

Kacem Thabet

004

4457

10:30am - 11:20am

Kacem Thabet

004

4457

11:30am - 12:20pm

Yue Hao

H01

5358

03:30pm - 04:20pm

4457

1.5 Course Materials


Textbook
*Required* /Building Java Programs/, 3rd ed. By Reges and Stepp. It
comes with additional exercises that will be good practice.
*Required* Lab Manual <#Lab-Manual>: Sections will be posted online
on the course Piazza site for free download.
Computing
It is assumed you will have access to a computer with the ability to
edit, compile, and run Java programs. Some university labs provide
this ability and the first week of the course will cover how to set
up your personal environment. If you have difficulty accessing a
suitable environment, contact the course staff.
1.6 Communication
* Piazza <http://piazza.com/gmu/spring2015/cs211> is the central site
for our announcements, documents repository, and discussion board.
The announcements and discussion board are part of the /required
reading/ for the course.
o All instructors and TAs can view all material on Piazza
o *Do not* e-mail course staff about programming problems; use the
discussion board.
o Use public posts on Piazza to discuss programming project

02:30 pm

requirements, labs, and other material related to the course.


o When prompted by a TA, use private posts on Piazza to share
portions of your code pertaining to your questions.
o Refer to the Piazza main page for etiquette on what should be
posted publicly versus privately
o *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
Piazza (Resources
Staff
<https://piazza.com/gmu/spring2015/cs211/staff>).
* BlackBoard <http://mymason.gmu.edu> is used for project submission
and to post grades
* *Office Hours* are listed for all Instructors and TAs on Piazza
(Resources Staff <https://piazza.com/gmu/spring2015/cs211/staff>).
2 Course Outcomes
1. An understanding of basic object-oriented (OO) programming concepts
and principles.
2. An ability to apply basic object-oriented principles and techniques
in the development of software systems using a specific programming
language.
3. 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.
4. An ability to successfully perform debugging operations and techniques.
5. An ability to perform software development in both individual and
team environments.
6. 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.
7. An understanding of how acquired programming skills facilitate
success in upper level CS courses and in various professional
environments.
3 Coursework
3.1 Lectures
During lectures we will discuss programming concepts and instructors
will provide demos of programming relevant to other course work.
Programming labs will be for students to work on additional exercises
and get immediate help from teaching assistants. In addition to
attending the regular meeting times, you are strongly encouraged to
visit the professor and teaching assistant(s) during office hours to
further your understanding of the material: we are here to help you learn.
3.2 Textbook Readings
Readings from the textbook relevant to each lecture are listed in the
schedule. You will increase your understanding of lectures by reading
associated textbook sections ahead of time, though this is not assumed.
We may provide additional reading material to supplement the textbook
which will be posted on the course web page.

3.3 Labs
Labs meet once per week and attendance is required. Labs roughly
alternate between *Lab Exercises <#Lab-Exercises>* and *Lab Quizzes/Tasks*.
Associated with lab are readings from the Lab Manual posted online. It
is assumed that students read the scheduled lab manual <#Lab-Manual>
sections prior to each lab; doing so will make it relatively easy to
complete the labs during the allowed time. *This is one of our main
sources of practice*. If you don't practice, you won't succeed.
Lab Exercises
About half of labs will involve Lab Exercises <#Lab-Exercises>. These
are short sets of programming problems which are designed to be
completed during the lab time so long as students have kept up with
reading and lectures. Teaching Assistants will give a brief introduction
to the problems and then be present to assist as students work on the
exercises.
*Lab exercises <#Lab-Exercises> are open resource and open
collaboration.* Students may freely discuss how to solve the exercises
with anyone, examine each other's code, assist one another in debugging,
and employ any online or physical resources to complete the exercises.
No penalties will be assessed for similar looking code on Lab Exercises
<#Lab-Exercises>.
Lab Quizzes and Tasks
The other half of labs will involve either a Lab Quiz, a set of paper
and pencil questions, or a Lab Task, a programming task on a computer.
*Lab Quizzes <#Lab-Quizzes> and Tasks are closed resource, no
collaboration allowed.* For Lab Tasks, students may use their own
programming environment and submit their solutions to Blackboard by the
end of the lab. No external resources may be used for Tasks.
Students will take the Quiz or Task in the lab room and be monitored by
teaching assistants. All materials must be submitted by the end of the
lab period according to the instructions associated with the assessment.
3.4 Programming Projects
Students will receive a number of programming projects during the
semester. Each project will involve writing programs and answering
questions about them to illustrate an understanding of course material.
Each programming project will have an "Honors Problem" which honor
section (H01) students must complete. Other sections are not required to
do these sections and will not receive any credit for completing them
but are free to try. The normal projects will normally be scored out of
100 points, and earning 100 points would be a perfect score. The honors
problem will be some additional amount of points. If a particular
project had a 15 point honors problem, then they would need 115 points
to get a perfect score. Disregard blackboard's "points possible" claims
if it doesn't match your style of section.

3.5 Exams
There will be two midterm exams during the course during the regularly
scheduled lecture time. There will also be a comprehensive final exam at
the end of the semester. Refer to the schedule for dates of the exams.
4 Grading Policies
4.1 Graded Components
Final grades will be determined by scores obtained on the components
below according to their associated weight.
Component
Weight
Lab Exercises <#Lab-Exercises> 5%
Lab Quizzes <#Lab-Quizzes> & Tasks
Programming Projects (7)
40%
Midterm Exams (2)
20%
Final Exam
25%

10%

If circumstances require it, the grading scale may be adjusted,


generally in the students' favor.
4.2 Final Grade Determination
Final grades will be assigned *without rounding* according to the
following criteria. It is a 10-point scale per letter grade, with the
upper and lower 2% of each 10% earning a + or -.
Percent
Grade
>= 98 A+
97-92 A
91-90 A-

Grade

Percent

89-88
87-82
81-80

B+
B
B-

79-78
77-72
71-70

Grade

Percent

C+
C
C-

69-60
<60

Grade
D
F

4.3 Lab Exercise Grading


In order to recieve credit for completing Lab Exercises <#Lab-Exercises>
do the following.
* *You must attend your assigned lab section and be present for
attendance.*
* Complete your program and pass the public tests that are provided.
* Credit will be assigned on the proportion of tests that are passed.
* Submit your exercises as per the instructions in each lab, usually
zipping and uploading to Blackboard.
* Lab exercises <#Lab-Exercises> may be completed submitted after lab
ends so long as you have attended. Each lab lists the final deadline
for submission, often during the following weekend.
* No late submissions for Lab Exercises <#Lab-Exercises> will be
accepted. Missing the deadline results in 0 credit.
* Failing to attend lab will result in a 0 for that week's lab
exercises <#Lab-Exercises>.

Percent

4.4 Lab Quiz and Task Grading


In order to receive credit for lab quizzes <#Lab-Quizzes> and tasks, you
must be present in your assigned lab and submit your work by the end of
the lab period. *The lowest Quiz or Task score for the semester will be
dropped. No lab makeups will be given under any circumstances.* Plan to
attend all labs so that in the event that you miss a quiz, the resulting
0 score is dropped.
4.5 Project Grading
*No collaboration is allowed on programming projects unless explicitly
indicated in the project description.* Utilize the discussion board and
office hours of course staff if you have questions about the projects.
Project grading will usually be divided into two portions weighted 50%
for each portion.
1. Automatic Testing (50%): Public tests will be used to assess the
correctness of programs. Running these tests while constructing your
program will indicate exactly what your score on this portion will be.
2. Manual Inspection (50%): Each project will include a checklist of
features your programs should exhibit. These usually comprise things
that cannot be easily checked via unit tests such as good variable
name selection, proper decomposition of a problem into multiple
functions or cooperating objects, overall design elegance, and
proper asymptotic complexity. These features will be checked by
graders and assigned credit based on level of compliance.
The policies for project submission are as follows.
* Projects each have a deadline; no late work is accepted more than 48
hours after the deadline, and penalties for late work apply (see
below). Work turned in more than 48 hours late doesn't count.
* Each student starts the semester with three Day-Late Tokens.
Whenever a student turns in a project late, tokens are
*automatically* applied to the assignment.
* A "ceiling penalty" of 25% is assessed each 24-hour period entered
after the deadline (when late-tokens are gone). For example, if you
turn in work half a day late (one 24-hour period late), you can't
earn higher than 75%.
* Work turned in more than *two 24-hour periods late will earn zero
points* and will only be graded as time permits. To clarify, you
can't use tokens and/or penalties to turn work in 3 days late; this
would earn zero points.
* You can submit work to BlackBoard as many times as desired. Only the
last submission will be graded, and all others are ignored. If you
anticipate being rushed around the submission deadline, be sure to
submit a version before the deadline as a backup, in case you find
yourself only moments late in meeting a deadline.
* GTAs grade the programming projects for the lab sections they teach.
* On-time submissions will generally be graded and available a week
from submission, though exceptional circumstances may cause delays.
Late submissions will be graded in as timely a fashion as schedules
allow.
* /Be sure you actually turned in your work!/ We need |.java| files,
|.class| files are worthless as a submission. If you tend to keep
earlier versions in extra files, make sure you turned in the final
product, as that is what will be graded.

* *BACK UP* your work, always! Without fail, each semester multiple
students will lose, drown, crack, reformat, magnetize, or generally
destroy their computers at the worst possible time. Keep everything
somewhere backed up, such as a DropBox or Google Drive folder, so
that this doesn't happen to you.
4.6 Exam Policies and Grading
* *Your Mason ID is required* for tests and final exams.
* Missing an exam results in a zero score and make-up exams will be
considered only in situations involving death, near death, and
documented dangerous diseases. Proof of such circumstances will be
required for a make-up to be considered.
* Failing the final exam will result in an F in the entire course.
Failing is defined as receiving less than 60% of the available
points on the exam.
4.7 Grading Disputes
Address grading issues with the grader first via a direct email or in
Staff
person. Email address for staff are on Piazza under Resources
<https://piazza.com/gmu/spring2015/cs211/staff>.
* Projects: Email your lab GTA
* Lab work: Email your lab GTA
* Exams: Email your Professor
This should be done respectfully either in person or via e-mail. If it
is not possible to reach a resolution, the professor may be contacted by
the grader to resolve the dispute.
If you have not initiated contact within *1 week* after receiving a
grade, the chance to contest the grade has closed.
5 Academic Integrity
*
PRIME DIRECTIVE: Be able to explain your own work including homework
code and exam solutions. The work you submit should be the product of
your own effort and reflect your personal understanding.
*
Nearly all cheating in programming can be averted by adhering to the
PRIME DIRECTIVE <#PRIME-DIRECTIVE>. Students may be asked at any time to
explain code or exam solutions they submit. Inability to do so will be
construed as evidence of misconduct. More specific guidelines are given
below.
5.1 Thou Shalt Not
Unless otherwise specified, all assessments in this course are
individual efforts involving no unfair collaboration. For the purposes
of this course, the following actions constitute scholastic misconduct
(cheating) and will be reported.

* Directly copying someone else's solution to an assessment problem,


including student solutions from a previous semester
* Directly copying an answer from some outside source such as the
Internet or friend for a homework problem
* Making use of an Instructor Solution manual to complete problems
* Paying someone for a homework solution or submitting someone else's
work as your own
* Posting solutions to any web site including public posts to our
course web site
* Collaborating or copying someone else's answer during an exam
* Aiding or abetting any of the above
* Witnessing any of the above and failing to report it to an
instructor immediately
Refer to the following links for additional information.
* Computer Science Department policies on scholastic dishonesty
<http://cs.gmu.edu/wiki/pmwiki.php/HonorCode/CSHonorCodePolicies>
* George Mason University Honor Code
<http://oai.gmu.edu/the-mason-honor-code-2/>
5.2 Penalties
Any instance of misconduct that is detected will be referred to the
honor board and will likely result in failing the course. Be advised
that the teaching team will be employing *electronic means to detect
plagiarism*. This is extremely easy with computer code so keep your nose
clean.
5.3 Fair Collaboration
The purpose of this course is to learn about programming and learning
from one another is a great help. To that end, the following actions
*will NOT be considered cheating in this course.*
* Collaboration on Lab Exercises <#Lab-Exercises> is allowed and
encouraged. These are a great opportunity to help one another on
work that counts towards your final grade. Just make sure that you
understand any solutions you submit as per the PRIME DIRECTIVE
<#PRIME-DIRECTIVE>.
* Reading and working together on the exercises contained in the Lab
Manual <#Lab-Manual> with other students. The manual contains many
good readings and exercises for unrestricted group work.
* Outside coding practice sites such as Coding Bat
<http://codingbat.com/> can be done in unrestricted groups for
practice.
* If you are unsure whether a given collaboration is fair or not, stop
the activity and clear it with your instructor.
At all times keep the /PRIME DIRECTIVE/ in mind when studying with
another student. The above collaborations should be limited to getting
someone over a hurdle, not carrying them across the finish line.
6 Additional General Policies
Students are expected to maintain a high level of civility for all

participants in and out of class meetings. This includes respecting


participants of all genders, ethnicities, and social backgrounds.
Harassment of any type will not be tolerated and failure to behave in a
respectful manner will result in referrals to University Counseling or
the Office of Student Judicial Affairs. Any instances of sexual
harassment will be reported to the Office of Equal Opportunity according
the following policy: http://universitypolicy.gmu.edu/1202gen.html
Observance of religious events will be accommodated for students of any
faith.
All possible accommodations will be made for students with disabilities.
Please contact Disability Services (http://ods.gmu.edu/) and the
instructor for further information.
7 Section Specific Policies
7.1 Additional Policies for Prof. Kauffman's Sections
Attendance Policy
*Bonus credit* will be awarded based on participation in class
discussions in lecture. Students may elect to sit in the first few rows
of the room ("hot seats") and answer questions. Reasonable effort on
answering questions in class will garner class participation credit.
Occasionally there may be "challenges" issued which involve work outside
class which also earn participation credit.
Participation points will be tracked over the semester and the highest
point earner will receive a 3% bonus to their overall score in the
course. All other students will receive a bonus proportional to the
highest point winner. For example, someone tied with the highest point
scorer will also receive a 3% bonus while someone with half the
participation points will receive a 1.5% bonus.
Open Resource Exams
Unless otherwise specified, Prof. Kauffman's exams will be open
resource: notes, textbook, editor, compiler, and any code the student
finds useful is allowed to be used. No communication is allowed during
the exam (no email/texting/chat), no Internet searches are allowed, and
no unauthorized web sites may be visited. If in doubt, ask about
specifics before or during the exam.
7.2 Additional Policies for Prof. Carver's and Prof. Snyder's Sections
Attendance Policy
Attending both lecture and lab are quite to your benefit. Test or exam
questions are likely to be based on materials that are only shared in
these venues. In lieu of the hot-seat approach to extra credit described
in Prof. Kauffman's sections, there will be extra credit opportunities
on exams that will draw from in-class experiences and total a 3% bonus
to overall grades.

Open Resource Exams


The exams in Prof. Carver and Snyder's sections will be closed resource:
no notes, textbooks, or computers will be allowed.
7.3 Honors Section Differences (Snyder)
The honors section (H01) will discuss more advanced topics than other
sections of CS 211. Approximately 15% more work will be involved.
H01 will move through lecture material more quickly and explore
additional topics relevant to CS. Students in H01 are expected to keep
up with these additional topics as they may appear on the H01 tests and
final exams.
Each programming project will have an "Honors Problem" which H01
students must complete. These problems may reflect the additional topics
covered in lecture and often be more difficult than other portions of
the project.
Grading projects for H01 students will be out of total points available
including the honors section: each project will have 100 points plus an
honors section, frequently worth up to 20 points. In such cases honors
students will be scored as X / 120 for a score of X. Late projects will
have the standard -25 pts deducted per day late.
* An H01 student who turns a project in on time and receives a 99 on
it will get 99/120 = 82.5% for the project.
* If the same student turns in their work 1 day late without using a
late token, they will receive min(99/120, 95/120) = 95/120 = 79.2%.
-----------------------------------------------------------------------/Author: Mark Snyder, Chris Kauffman, Richard Carver (msnyde14@gmu.edu
<mailto:msnyde14@gmu.edu>, kauffman@cs.gmu.edu
<mailto:kauffman@cs.gmu.edu>, rcarver@mason.gmu.edu
<mailto:rcarver@mason.gmu.edu>)
Date: 2015-02-26 Thu 10:49
/