CS 211 / 211H: Object Oriented Programming

George Mason University

Spring 2018

1 Staff

  • Dr. Mark Snyder
    • msnyde14@gmu.edu - ENGR 5346
    • office hours: Wednesdays 3-5pm

prerequisite: grade of C or better in CS 112.

2 Basics

  • schedule is here.
  • Piazza - announcements and discussion forum
  • Pytania - Class participation tool. (Free - sign up with your GMU email, and join the correct section of CS 211 for this semester).
  • Blackboard - turning in assignments and viewing grades
  • web directory of all shared files (projects, class examples, textbook, etc)
  • Resources → Staff - all teaching assistants, including office hours and email addresses
  • lectures:
    • CS211-003: TR 12:00pm-1:15pm, IN 105
    • CS211-005/H01: TR 3:00pm-4:15pm, DK 1006

2.1 Textbooks

  • Required: CS211 Textbook, free for download.
  • Required: Zyante Java textbook. (Sign up here, then use the code GMUCS211SnyderSpring2018 to join our course edition).
  • Optional: Building Java Programs, 3rd ed. By Reges and Stepp. It comes with useful exercises online, available to anyone (Practice It!).

2.2 Learning 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

  • Readings: We have weekly deadlines for our Zyante online textbook, due the following Monday evening after it's scheduled.
  • Labs: We have weekly 50-minute lab sessions. Each lab is one of the three styles:
    • Exercise: completely open resource and collaboration allowed/encouraged; turn in the work by the following Monday evening. Attendance is optional.
    • Quiz: paper and pencil assessment. Individual work, closed resources. Due at the end of lab. Attendance is required.
    • Task: computer-based assessment. Individual work, closed resources. Due at the end of lab. Attendance is required.
  • Projects: Individual work. Long-term assignments that will take weeks to complete. It is strongly encouraged that you've completed all the readings (Zyante+CS211 Textbook) and lab exercises before attempting them, so that you learn the ideas in small settings and apply them later in these larger settings.
    • Honors Problems: each project has an honors problem that extends the problem; it is required for honors students as part of the grade, and is not considered for other students (it's not extra credit). Honors students' projects will be graded as more than 100-point assignments, often 115 points. (so 115/115 == 100%).
  • Tests There are two tests during lecture, and a cumulative final exam. Each is individual effort, focusing on applying concepts and showing ability to write in particular styles. Refer to the schedule for these dates. Your Mason ID is required for tests and final exams.

4 Grading Policies

4.1 Grade Distribution

Final grades will be determined by scores obtained on the components below according to their associated weight.

Component Weight Policy
Pytania (class part.) 2% answer for credit; correct for bonus
Zyante Reading 3% drop three subsections
Labs 10% drop two
Programming Projects (5-7) 40% no drops, averaged equally
Midterm Exams (2) 20% 10% each. higher final exam replaces.
Final Exam 25% must pass final (D) to pass class.

If circumstances require it, the grading scale may be adjusted, generally in the students' favor.

Curves are not common in this course - an individual poor test might get one when grades are released, but your grade throughout the course is always what it is - no guesswork.

4.2 Grade Scale

Percent Grade Percent Grade Percent Grade Percent Grade
>= 98 A+ 89-88 B+ 79-78 C+ 69-60 D
97-92 A 87-82 B 77-72 C <60 F
91-90 A- 81-80 B- 71-70 C-    

4.3 Zyante Readings

  • look at the schedule for each chapter deadline.
  • all interactions and coding challenges are part of the grade for each subsection.
  • Grades for reading will be posted at the end of the semester. You can complete readings after the deadline for no additional credit: if you keep missing deadlines, you will still get a zero even though you finished the work!

4.4 Pytania: Class Participation

  • we will regularly have questions to answer during lecture. Whatever fraction of questions you answer at all, you'll get participation points for.
  • any questions you get correct are worth half again as a bonus (up to 1% of the semester grade!)
  • roughly one day's worth of questions will be dropped from the denominator when calculating your participation:
    participation = ( #answered + 0.5 * #correct ) / (num_asked - avg_day)

4.5 Lab Grades

  • exercises are entirely based on tester output, whether your code fails to compile (zero grade), passes everything (100%), or anywhere in between.
  • quizzes are graded by hand, allowing partial credit.
  • tasks are graded by hand and test cases, allowing partial credit.
  • you must attend your registered lab section for all quizzes and tasks.

4.6 Project Grades

  • all projects are individual work. The only humans you can interact with on them in regards to your code or any planning stages (your algorithm) are UTAs, GTAs, and professors of our CS211 course. (That's actually a lot of support!)
  • Grading is usually split into automatic testing and manual inspection, roughly 50-50. You'll have both the test cases used for automated testing as well as the criteria for manual testing, so you should still be able to anticipate your grade with some precision.

4.7 Emergency Tokens, Late Work

  • Emergencies happen - that's life. Each student starts with three Emergency Tokens. They may be used on projects and lab exercises. Each one gives you an additional 24 hours in which to turn in the assignment.
  • no work may be turned in more than 48 hours after the posted deadline. (You can't use all three Emergency Tokens on one assignment).
  • you can still turn in work up to 48 hours late if you've spent all your Emergency Tokens. Each 24-hour period entered without a token to spend lowers the maximum grade by 25%. One "penalty" day late: score = min(raw_score, 75%). Two "penalty" days late: score = min(raw_score, 50%).
  • submissions turned in >=48 hours late are ignored.
  • unspent Emergency Tokens are worth 0.25% semester grade each.

4.8 Blackboard Submissions

  • Turn in work to Blackboard as many times as your want - only the last one is graded.
  • tokens are automatically applied based on submissions - you can't request to not use them when work is turned in late.
  • grades will be available one week from the latest possible submissions. Don't worry if one section gets their grades sooner than yours.
  • 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.
  • "saved" submissions in Blackboard are useless. You need to "Submit" your solution, or else we can't see it, and can't accept it later.
  • 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.9 Grading Disputes

Address grading issues with the grader first via a direct email or in person within one week of the grade being made available. Email address for staff are at the top of the syllabus and on Piazza under Resources → 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. Don't go to the professor first for project/lab grades.

  • Honor Code: All graded work must be your own. Any attempts at cheating will not be tolerated, and will be turned in to the Honor Court with significant penalties recommended (usually F in the course and attendance in an Academic Integrity seminar for a first offense). By this point you should be familiar with both the honor code at GMU and the further details of the CS Honor Code Policies but in short you should never see, share, or discuss any part of the solution to any graded work, from algorithm development to implementation to debugging to test cases. When in doubt, ask your instructor instead of another student. Lastly, here are my own thoughts on the honor code.

5 Accommodations

Students with a learning disability or other condition (documented with GMU's Office of Disability Services) that may impact academic performance should speak with the professor ASAP to discuss appropriate accommodations. We are quite happy to provide any and all accommodations recommended by ODS, but that process always begins with the student initiating the request. Keep in mind that accommodations must be approved prior to the test/assessment.