CS112 Syllabus: Introduction to Computer Programming

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.
Prerequisite C or better in MATH 104, MATH 105 or MATH 113, or specified score on math placement test
Co—requisite CS 101 (waived for non-CS majors)
Professor Contact Information Dr. Kinga Dobolyi
Office: Engineering (Rm. 4440)
Email: kdobolyi@gmu.edu
Phone: 703–993–4198
http://www.cs.gmu.edu/~kdobolyi/cs112/
Office Hours: Thursdays (10:30am — 1:30 PM) or by appointment. Please email the professor at least 48 hours in advance when seeking an appointment.
Textbook The Practice of Computing Using Python by William Punch & Richard Enbody © 2011 (An eText version is available). Students often ask if they are required to buy the textbook; we will not refer to any specific chapters or material from the textbook this semester during lecture, although students are encouraged to follow along in the textbook. There are also plenty of online resources for Python that you can google for.
Course Materials BlackBoard — All assignments must be submitted (per published deadlines) via BlackBoard. We will only be using BlackBoard (BB) for assignment submission, discussion boards, and announcements this semester — all other materials (slides, etc) will be available only on this course homepage. Grades (except the final course grade) will also be posted to BB.
Email Students must use the GMU email system for all correspondence with professor (using the following email subject format: CS112_00x — insert your subject, where: x is your lecture section number — failure to adhere to this policy will result in returned emails).
Please note that general project or class questions should NOT be sent to the professor or TAs - in such events, your email will be returned and you will be asked to post your question to the discussion board. In general, the turnaround time for responses to questions will be much quicker on the discussion board.
Students should also avoid emailing their code to the professor or TAs unless permission has been obtained (under no circumstances should code be posted to the discussion board).
Grading
  • 6 programming assignments (42% together - some assignments will be worth more than others, with each being around 7% of your grade)
  • 5 Quizzes (8%)
  • Class Participation (5%): based on lab attendance
  • 2 Exams (25%, 12.5% each)
  • Final Exam (20%)

Final course grades are calculated as follows:

A+ (>= 98.0%) A (>= 92.0%) A– (>= 90.0%)
B+ (>= 88.0%) B (>= 82.0%) B– (>= 80.0%)
C+ (>= 78.0%) C (>= 72.0%) C– (>= 70.0%)
D (>= 60.0%)
F (< 60.0%)

Note: per departmental policy, a failing grade on the final exam (<60.0%) will result in a failing grade (F) for the entire course, regardless of performance on other assignments.
Contesting of grades on any/all submissions must be requested within one week of the item's return. No grade changes will be considered subsequent to that deadline, or after the final exam meeting.
Class Participation Students are expected to attend and actively engage in both lecture and lab sessions. Two absences (total) are excused without question. Additional absences require acceptable documentation. Students must arrive on time to log participation for a lecture or lab session. Take notes — a significant portion of the information disseminated during classroom sessions are not delineated on slides.
Labs Students must attend and participate in the lab section for which they are registered, unless prior permission is granted by lab GTAs. Quizzes will be administered during lab sessions. If you know in advance that you are unable to make a lab, you must notify your lab GTA that you would like to transfer to another lab that week at least 3 days before that lab, in email. If you miss a quiz due to a university-accepted excused absence, you must notify your GTA within 24 hours of your absence to make arrangements for a makeup, and bring documentation with you when you take the make-up quiz. Failure to follow either of these policies will result in a zero. The lowest of the 5 quiz grades will be dropped from the overall class grade calculation.
Programming Assignments Programming projects are considered individual efforts, therefore no sharing of code and/or discussion of problem solutions are allowed with anyone except the lab GTA, UTA or the professor. Test cases must also not be shared. Student projects will be manually and automatically assessed for cheating. You may not look at or otherwise view any other individuals code or pseudocode.
Submit only .py files unless specified otherwise, and do not zip or compress these files into a single folder. Failure to follow these policies will result in a loss of 20 points per programming assignment.
The discussion board on Blackboard is required reading for all projects. Although every effort is made to post complete and consistent project specifications, because projects are designed from scratch every semester, it is inevitable that specs will change slightly throughout the semester. You MUST read the discussion board daily for clarifications and project updates, and you MUST be prepared to implement these small potential changes.
All programming project must run on the Zeus cluster to be considered for credit. All projects will be automatically graded on the Zeus cluster using UNIX diff — failure to pass a test case with diff will result in zero points for that test case.
Office Hours For students seeking help with programming assignments during office hours, students must identify the line number, through debug print statements, where they believe an error to be before seeing the TA or instructor. This implies that you must have your own test cases, at least one of which that fails, to bring to office hours before the TAs or instructor can help you.
For more general programming assignment questions, students must bring their own pseudocode to office hours before the TA or professor can help you.
Late Submissions All programming projects must be submitted by the deadline to be considered for full credit. Projects that are up to one day late will be tolerated, but are subject to a penalty of 20%. No assignment will be accepted for credit after last class meeting.
Blackboard being unavailable is not an excuse for turning in a late assignment; in the rare situation that the website is somehow unavailable or giving the student an error, the student MUST email their submission to their GTA before the deadline, otherwise it will be considered late.
Similarly, having a laptop die or losing source code is not an excuse for turning in a project late — students are responsible for maintaining their own backup copies of code.
Note that the new version of BB accepts multiple assignment submissions; we will grade the last submission made.
Exams Exams are closed book/notes unless specified otherwise by instructor. Appropriate documentation (as determined by instructor) and requisite permissions are required for make-up exam requests. Picture IDs are required to take all exams. Note: A failing grade on the final exam (<60%) will result in a failing grade (F) for the entire course, regardless of performance on other assignments.
If you know in advance that you are unable to make an exam for a valid and unavoidable reason (such as a scheduled surgery, etc), you must notify the professor at least one week before the scheduled exam date to make arrangements for a make-up, and bring documentation with you when you take the make-up. If you miss an exam due to a university-accepted excused absence (such as an illness or car accident the day and time of the exam), you must notify your professor within 24 hours of your absence to make arrangements for a makeup, and bring approved documentation with you when you take the make-up exam. Failure to follow either of these policies will result in a zero.
You must take the final exam for the section that you are registered for.
Honor Code All students are expected to abide by the GMU Honor Code. This policy is rigorously enforced. All class-related assignments are considered individual efforts unless explicitly expressed otherwise (in writing). Review the university honor code and present any questions regarding the policies to instructor.
Cheating on any assignment will be prosecuted and result in a notification of the Honor Committee as outlined in the GMU Honor Code. Sharing, collaboration, or looking at any code related to programming assignments that is not your own is considered cheating.
Learning Disabilities Students with a learning disability or other condition (documented with GMU Office of Disability Services) that may impact academic performance should speak with professor ASAP to discuss accommodations.

Tentative Class schedule
See the course homepage at http://www.cs.gmu.edu/~kdobolyi/cs112/