CS 112 Syllabus - Summer 2015
1 Course Basics
1.1 Schedule
1.2 Course Outcomes
- An ability to use procedural programming language concepts including expressions, decision statements, simple data types, Boolean logic, input/output, loop constructs, and procedures.
- An ability to combine programming techniques to solve problems of varying degrees of difficulty.
- An ability to refine computer programs through testing and debugging to ensure proper operation.
- An ability to find and understand programming language documentation to learn new information needed to solve programming problems.
1.3 Prerequisite:
C or better in MATH 104, 105, or 113 (or sufficient score on the math placement test). Corequisite: CS Majors must also be enrolled in CS 101 this semester.
1.4 Contact Information
Professor | office |
---|---|
Mark Snyder | ENGR 5346 |
msnyde14@gmu.edu | 703-993-5624 |
1.5 Text: Zyante
- Required - Zyante online text.
- Sign up at Zyante.
- Enter zyBook code: GMUCS112Summer2015
- Subscribe
1.6 Participation: Top Hat
- Required - Top Hat registration. register here with the
corresponding Join code:
- Section B01: 963600
- Section B02: 455582
1.7 Optional Reading
- Quite Optional - The Practice of Computing Using Python, second edition. William Punch and Richard Enbody. This is for students who want extra reading resources. You might be able to view a copy at Fenwick Library.
- An eText version is available.
- readings will be suggested, but there will not be required problems from the book.
- an older version of the text uses Python 2.7.x, instead of Python 3.x. There are a few significant differences in syntax, but if you can keep track of these (and different page numbers), you might be able to use an old version of the book if you've already got access to it.
1.8 Blackboard
- Grades will be posted to Blackboard.
- All assignments will be submitted (per published deadlines) via Blackboard.
1.9 Piazza
- All correspondence will go through Piazza. You can send private messages to the instructors (professors, GTAs, UTAs all) as well as post public questions visible to all students, collaborate on responses, and tag everything by topic.
- Course discussions will take place on Piazza. Go sign up now so you don't miss announcements.
- Documents such as GTA/UTA contacts, schedules, and lecture slides will be on piazza only.
2 Grading
The course will have two tests and a final. Much of the work during the semester will be completing projects, as well as regular assessments in lab (quizzes and programming tasks).
In general, all grades should be available about one week after turning it in.
Category | Percent Final Grade | Notes |
---|---|---|
Projects | 40 | drop 1 lowest |
Labs | 10 | drop 2 lowest |
Top Hat participation | 2 | (+1% extra credit, correctness) |
Zyante readings | 3 | (drop 3 lowest-completion subsections) |
Tests (10% each) | 20 | |
Final Exam | 25 |
2.1 Projects
Programming projects will be a primary focus of your experience, progress, and grade - each one should take multiple sessions of coding, with questions asked in between. This is the practice you need to learn, master, and internalize various concepts of the course.
All project grades will be averaged together evenly.
2.1.1 Deadlines, Tokens
- projects can be turned in at most 48 hours late, no exceptions
- each 24-hour period entered after the deadline lowers the maximum score by 25% (not quite the same as a 25% penalty)
- each student gets three One-Late-Day tokens, which are automatically used by late submissions to avoid the 25% penalty; you still must turn in work within 48 hours of the original deadline, even if you use tokens! (you can't use three tokens on a single project, for instance)
- the last project might not be allowed to be turned in late, to facilitate end-of-semester grading.
- unused late-tokens will be worth a small bounty at the semester's end (0.25% of the semester grade).
2.1.2 Broken Code == Bad Scores
After the first two projects, any code turned in that does not run (immediately crashes due to errors), specifically on Python 3.4, will receive at most 50%. No exceptions. At this point, if the grader is able to quickly fix your code, you might get some points back. If the grader cannot immediately spot and fix the issue, you'll be fortunate to get any points at all.
- Turning in code that runs is a big deal!
2.1.3 Turning it in on BlackBoard
You can submit your work an unlimited number of times to BlackBoard, and by default only the last version will be graded. You can also download your submitted attempts, and verify that you turned in a working copy.
- Turning in the wrong files will likely result in a zero.
- Catastrophic computer failure will not be cause for an extension. Use a backup service such as DropBox (or any cloud service), emailing yourself, storing to a USB drive, whatever it takes. Every semester multiple students' computers die, are stolen, or otherwise 'lose' projects. Don't be the student who forgot to (frequently) back up your work!
2.2 Lab Assessments
All lab assessment grades will be averaged together. Lab assessments will be weekly exercises, tasks, or quizzes, to be completed during lab. Time in lab will often be available to seek assistance on projects when you've completed the lab task.
Any missed lab assessment is simply missed, regardless of the reason why (travel, illness, work, traffic, receiving a major award, getting married, saving the universe, etc.)
We will drop the lowest two grades from this category.
If you choose to miss some early on, and later on have to miss for some understandable reason, that is too bad. Try to save the drops so you can actually throw out a bad grade, and not just hide a lazy zero.
2.3 Tests and Final Exam
- these tests will focus on performing programming.
- all students must have their GMU identification available on testing days
- if you miss a test, and a valid reason is verified with documentation (ER visit, traffic accident on the way to the test, etc.), we may elect to allow the final exam to count the extra amount to give you a sort of do-over. This policy is not automatic, however.
- the final exam is cumulative. If you perform better on the final exam than a previous test, we will replace the test grade with the final grade.
- if you miss the final, there is nothing we can do for you. Don't miss the final!
- the final will not be given early. You are starting the course with knowledge of the schedule.
- You must pass the final exam to pass the course. You also need to have a passing percentage grade of course, but failure on the final exam indicates a systemic lack of true progress. Generally, students who fail the final exam do not have a passing grade in the course anyways.
- there will only be a curve if specific questions end up being too ambiguous or otherwise obviously unfair.
2.4 Calculating Semester Grades
- Given the percentages above, the allowed dropped lowest grades, you should always be able to calculate your semester grade at any point in the semester.
- There will be no make-up or extra-credit assignments at the end of the semester; your grade should be a measure of your semester-long progress.
Grades will be assessed on the following scale:
Grade | Cut-off Score |
---|---|
A+ | 98 % |
A | 92 % |
A- | 90 % |
B+ | 88 % |
B | 82 % |
B- | 80 % |
C+ | 78 % |
C | 72 % |
C- | 70 % |
D | 60 % |
F | --- |
2.5 Contested Grades
If you feel points have been incorrectly deducted, contact the grader. For all projects and lab work, that is your GTA who leads the lab section (never a UTA). For the tests and final exam, that is your professor.
If you have not initiated contact within a week of receiving the grade (on BlackBoard), it is too late. We cannot entertain a swarm of contested grades at the eleventh hour to try to maximize end-of-semester grades. Keep up with your grades throughout the semester.
We strive to grade each student's work fairly and uniformly, often through specific test cases, which might even be automated as part of the grading process. All GTAs coordinate together with a shared scoring breakdown and regularly communicate with each other before, during, and after the grading process to keep it fair.
3 The Honor Code
The honor code at George Mason is an important part of our academic culture. A degree from this institution should be a direct measure of your own progress and abilities, and as such at all times we must ensure that all work that should be your own is your own.
We take the honor code quite seriously. Any attempts at copying or sharing code, algorithms, or other violations of the honor code simply will not be tolerated.
As seductively simple as it may seem to just copy and paste work from a friend, or even to just work on the project on your own machines next to each other, remember that it is just as easy to compare your work electronically, and discover the similarities in text and structure. We use automated software to flag suspicious cases, and then review them by hand to find the cases that must be submitted to the Office of Academic Integrity. Repeat to yourself: it's not worth trying to cheat. We will catch it, and sadly but surely, we will turn it in.
The penalty for cheating will always be far worse than a zero grade, to ensure it's not worth taking the chance. Confirmed cases of cheating almost always translate into course failure.
3.1 Some Specifics and Links
- All students will abide by GMU's Honor Code.
- All work must be your own. If you are caught cheating, you and every other involved student will be turned in to the honor court.
- See the CS Honor Code Policies to understand better what constitutes cheating in the CS setting. It clarifies some scenarios that are unique to our sorts of assignments.
- See the CS Statement on Academic Integrity for more information.
- Understanding the Honor Code: here are my own thoughts about the purpose of the honor code in a computer science course.
4 Learning Disabilities
- 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 assist as is appropriate, but it must be documented ahead of time. Bringing the paperwork with you to a scheduled assessment is far too late! Even if you don't know if you plan on utilizing the accommodations ahead of time, it's in your best interest to prepare ahead of time.