Note: If you are reading this during the current semester, use the syllabus from my website

Contact Information(top)
Instructor: Dan Fleck

   Email:  dfleck (at)
   Phone: 703-993-4198
   AOL IM: danpf1

   Office: ST-II 405
   Office Hours: Tues 9:30-10:30AM, Wed 6:00-7:00PM, or anytime by appointment

Graduate TAs:

   Gautam Singh
   Email:  gsinghc (at)
Office Hours: Thurs 3:30-5:30pm, Mon: 3:30-5:30pm
   Office: STII - 365
   Lab Section: Monday, 2:30 and Wednesday 2:30, 3:30

   Cody Narber   
   Email:  cgnarber (at)
Office Hours: Tues 3:30-4:30pm, Tues 7:30-8:30pm, Fri 11:30-12:30am
   Office: STII - 365
   Lab Section: Monday, 9:30 and Friday 9:30, 10:30

   Paul Seymer
   Email:  pseymer (at)
Office Hours: Tues 2:30-3:30pm, Wed 1:00-3:00pm
   Office: STII - 365
   Lab Section: Monday, 10:30, 11:30, 1:30

All labs are held in ST1-124 except Wed 2:30 which meets in ST1-128.

Undergraduate TAs:

Muneeb Akhter    makhter (at),
Brian Bowden      bbowden1 (at),
Jonathan Crowe  jcrowe3 (at), Office Hours: ST2 Rm. 365, Fri: 1:30 – 3:00 PM
Ryan Garrett         rgarret1 (at),
Tarek Lahlou        tlahlou (at), Office Hours: ST2 Rm. 365, Fri: 1:00 – 3:00 PM
Gabriel Tipton      gtipton (at),
Quynh Tran          qtran8 (at)

Undergraduate TA Lab Schedule:

Lab 201 (M 9:30-10:20 a.m.): Gabriel Tipton and Muneeb Akhter
Lab 202 (M 10:30-11:20 a.m.): Gabriel Tipton and Jonathan Crowe
Lab 203 (M 11:30 a.m. - 12:20 p.m.): Jonathan Crowe
Lab 204 (M 1:30-2:20 p.m.): Muneeb Akhter
Lab 205 (M 2:30-3:20 p.m.): Tarek Lahlou and Muneeb Akhter
Lab 206 (W 2:30-3:20 p.m.): Gabriel Tipton and Muneeb Akhter
Lab 207 (W 3:30-4:20 p.m.): Ryan Garrett and Brian Bowden
Labs 208-209 (F 9:30-11:20 a.m.): Ryan Garrett and Quynh Tran

Class Location(top)

   CS 112 - 001 - 13968 - 10:30-11:45 - T138

   You must also be registered for a lab section. Attendance at labs is mandatory.


Course Outcomes and Information(top)

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

This course introduces the use of computer programming as a problem-solving tool. Topics in procedural programming include expressions, control structures, simple data types, input/output, graphical interfaces, testing, debugging, and programming environments. During this class we will use the Python programming language.

Students are responsible for reading and understanding the assigned material in the textbook, which may or may not be covered in class. Questions should be presented in class or during instructor/GTAs office hours.

Throughout this course we will use Blackboard ( for assignment submissions, grade distributions, and discussion forums. The first place to ask for help is through the Blackboard forums.

Prerequisite: Qualification for MATH 113 or MATH 108 on the MATH placement test offered through the Testing Center, or a grade of C or better in MATH 105.
 (Essentially if you have taken or are currently in MATH 113 you're okay. If you have passed MATH 105 you're okay. If you placed out of MATH 105 or a higher clas you're okay.)

Textbook (top)


Python Programming, for the absolute beginner (2 ed.) by Michael Dawson

Grading Policy (top)

Item % Points
Programming Projects 24% 120 3 programming projects
Labs 18% 90 10 labs (lowest lab will be dropped)
Quizzes  8% 40 Announced and unannounced quizzes
will be given in the lab. Lowest quiz grade will be dropped.
Class Participation 10% 50
Midterm Exam 15% 75
Final Exam 25% 125 Thurs. 5/7 10:30 a.m.–1:15 p.m. (in our classroom)

GMU ID required to submit the final
Total: 100% 500

Final course grades will be calculated as follows:
A- (≥ 450 pts.), A (≥ 460 pts.), A+ (≥ 490 pts.)            
B- (≥ 400 pts.), B (≥ 410 pts.), B+ (≥ 440 pts.)  
C- (≥ 350 pts.), C (≥ 360 pts.), C+ (≥ 390 pts.)
D  (≥ 300 pts.)
F  (< 300 pts.)

 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 feel you deserve a better grade on an assignment, you can appeal your grade in writing. Written grade appeals will only be accepted within 7 days of you receivng the grade. The appeal should clearly explain why you feel you deserve a higher grade. I will never lower your grade due to an appeal, but I may or may not raise your grade depending on your justification. (Get Well Plan... do this if you're having problems in the class.)

LATE POLICY: All assignments must be submitted by the deadline to be considered for full credit. Late lab assignments will not be accepted. Late projects will be tolerated, but are subject to a penalty of 20% per day. No assignment will be accepted for credit after the last class meeting. You should start early on all assignments. Many problems arise when programming, both in your control and outside your control (hardware problems, computer lab unavailable, etc...).

As with all GMU courses, this course is governed by the GMU Honor Code. In this course, all assignments, exams, and project submissions carry with them an implicit statement that it is the sole work of the author, unless joint work is explicitly authorized. Help may be obtained from the instructor or other students to understand the description of the problem and any technology, but the solution, particularly the design portion, must be the student's own work. If joint work is authorized, all contributing students must be listed on the submission. Any deviation from this is considered an Honor Code violation, and as a minimum, will result in failure of the submission and as a maximum, failure of the class.

Plagiarism is stealing the work of others and presenting it as your own. This includes written papers, but also computer programs, presentations, etc... anything that was not created by you should be referenced. When in doubt, add a reference. If you have any questions about whether you can or cannot use something you've found ask your professor or TA. If another student let you copy their work you are BOTH guilty. Any plagiarism violations will be sent to the Honor Committee. If you are found guilty of plagiarism twice in your university career you will be expelled. This is a very serious offense! More information about plagiarism is on the writing center website and at If you feel the need to do this for any reason, come talk to your professor and we'll work out a better plan. There is ALWAYS a better plan than plagiarising!

This class will use automated tools to detect plagiarism (including written materials and source code).

Labs and Projectstop)

LABs: Lab attendance is required. Students must attend and participate in the lab for which they are registered unless prior permission is granted by lab GTA. Quizzes (unannounced) will be administered during lab sessions. Missed labs result in zero credit for quizzes administered during that session (no make-ups). The lowest grade of the 5 quiz grades will be dropped. Lab assignments are due one week from the start time of the lab in which they were assigned. The lowest grade of the 10 lab grades will be dropped. Lab assignments may be discussed (e.g., algorithms, development strategies, etc.) with other students, but code may not be shared (labs assignment submissions are strictly independent efforts unless specified otherwise by instructor). 

PROJECTs: Programming projects are considered individual efforts, therefore no sharing of code and/or discussion of algorithms or problem solution is allowed with anyone except lab GTA, UTA or instructor.

This class will use automated tools to detect plagiarism (including written materials and source code).

If you are a student with a disability and you need academic accommodations, please see me and contact the Disability Resource Center (DRC) at 703.993.2474. All academic accommodations must be arranged through that office.