CS112: Introduction to Computer Programming

Professor Contact Information Dr. Kinga Dobolyi
Office: Engineering (Rm. 4440)
Email: kdobolyi@gmu.edu
Phone: 703–993–4198
Office Hours: Thursdays 1:30pm—2:00pm, 3:00pm—4:30pm, 5:45pm—6:45pm, or by appointment. Please email the professor at least 48 hours in advance when seeking an appointment.
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 or MATH 105 or specified score on math placement test, or MATH 113 with a C or better. Prerequisite enforced by registration system.
GTA Contact Information TBA
You may visit the office hours of any GTA, not just the lab section you're signed up for.
Textbook Required: CS112 class workbook: available on Amazon
Optional: free Python wiki: available wiki (simpler than a python textbook, but contains more syntax than we will cover)
Optional: The Practice of Computing Using Python by William Punch & Richard Enbody © 2011 (an eText version is available). This is optional; we will not refer to any specific chapters or material from the textbook this semester. There are also plenty of free online resources for Python that you can google (like the wiki above).
Email I occasionally send important announcements to your Mason email account, so please read it regularly. I also use Piazza to send important announcements through email.

General class questions that might be useful or interesting to other students should be posted to the discussion board, not sent through email.
  • 5 programming projects (40% together - some assignments will be worth more than others)
  • Quizzes (15%)
  • 2 Exams (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 Take notes — most of the information disseminated during classroom sessions are not delineated on slides.
Quizzes Quizzes will be taken in lab and will be a coding assignment to be completed as individual work and submitted through Marmoset.
Homework Homework will consist of all exercises from the appropriate chapter of each book, as well as sample assessments. It will not be graded or collected.
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 individual's code, pseudocode, or test cases.

The discussion board on Piazza 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.

Programming assignments are significantly more difficult than labs, require more planning, and in general no implementation level details will be given: you are free to use your creativity here, as long as you conform to the inputs and outputs expected of your functions.

All programming project must run on Marmoset to be considered for credit. All projects will be automatically graded on Marmoset. See the Marmoset submission instructions. Under no circumstances will credit be given for a project, except through Marmoset.

You may NOT use any Internet resources to create code or algorithms, besides the required textbook (NOT the optional one), the slides, and Piazza, unless otherwise specified. However, you are free to look up the syntax errors your encounter online, to gain an understanding of what the syntax error means. The projects we're doing this semester can be directly solved using techniques discussed in class, and no outside material is needed unless otherwise noted.
Office Hours Office hours are times that I commit to being in my office, door open, first come, first served. You do not need an appointment, and no appointments are made. If office hours are very busy, I will limit the amount of time I spend with each student to try and see all students for at least a little bit. If you cannot make my office hours, then I will suggest you visit the office hours of any of our TAs (unless it is a specific question a TA would be unable to answer, such as a course policy question not answered on the syllabus).

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 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.

Under no circumstances will the professor or GTA reveal more than three lines of code at a time during office hours. Students must make significant, individual effort on all projects before coming to see a GTA/professor. Waiting until the last minute, in the expectations that the entire project will be explained in one office hours session, is not feasible.

Office hours are often crowded - do not rely on them for last minute help, as we cannot guarantee that we will be able to spend significant time with every student. Use the discussion board instead for posting questions.
Discussion Board Students are encouraged to use the discussion board, Piazza, to ask and answer questions. Responses to questions can be expected within 24 hours, and often times much sooner (within two hours or less during the day).

Students can post questions and code privately, although the instructor reserves the right to make any post public, so that other students can see the responses.

For students wishing to post their code privately to Piazza, the same rules apply as when coming to office hours; if you have code written, you must produce at least one failing test case where you have identified what line number is giving you problems.
Late Submissions All programming projects must be submitted by the deadline to be considered for full credit. Projects that are up to six hours late will be tolerated, but are subject to a penalty of 20%. No assignment will be accepted for credit after last class meeting.
Marmoset 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 Marmoset accepts multiple assignment submissions; we will grade the submission with the highest score. You can also download your previous submissions from Marmoset.
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.

The computer science department has an additional, more restrictive CS Honor Code that you are also subject to. Make sure you read and familiarize yourself with these rules.

It is your responsibility to lock your computers with a password, to not post your code to websites like Pastebin that are publicly accessible, to guard your USB drives and computers, to not upload your files to someone else's computer, etc. You will be liable for any access gained to your code. Stating that "I don't know how he/she got access to my code", or "I left the room and they stole my code" are not an acceptable excuses in an honor code violation.
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.
Other Useful Campus Resources Counseling and Psychological Services (CAPS): (703) 993-2380
Writing Center: A114 Robinson Hall; (703) 993-1200
Ask a Librarian through the University Libraries

Tentative Class schedule

Please see the course homepage for section 003 at http://www.cs.gmu.edu/~kdobolyi/cs112_spring/ for a list of topics and a schedule of assignments.