CS130R Programming in Python, Fall 2014

Lecture: Wed 10:00am-10:50pm, MSC W306

Lab: Fri 10:00am-10:50pm, MSC E308A (starting Sept. 12nd)

Web: http://www.mathcs.emory.edu/~hli57/CS130R/

Instructor: Haoran Li 

Contact : hli57 AT emory.edu

Office Hours: Wednesday 10:55~11:55am; Friday 10:55~11:55am; By appointment

My Office: MSC N426


A general introduction to Python programming language, software construction techniques and some basic data structures. We do not have any prerequisite for this class.

Course Objectives

  1. Students will learn the grammar of Python programming language.
  2. Students will understand and be able to use basic programming principles such as data types, variable, conditionals, loops, recursion and function calls.
  3. Students will learn how to use basic data structures such as List, Dictionary and be able to manipulate text files and images.
  4. Students will understand the process and skills necessary to effectively attempt a programming problem and implement it with a specific programming language -- Python.



We will have one closed-book midterm exams (Oct. 22) and one final (Dec. 17) that will test your conceptual understanding of the material and will require some attention to programming details. Doing well on the exams strongly correlates to reading and understanding the textbook! Questions will be a mix of filling in the blanks, multiple choices, and short answers. They will sometimes require you to write or analyze short bits of code. Old exams and study guides will be made available prior to each exam and solution keys will be provided after the exams.

Final Exam

The final exam will be during the Math Block final. It WILL NOT be during the time scheduled via class period. This semester, the final exam will be Wednesday, Dec. 17, 3:00-5:30pm. DO NOT make plans to leave campus before the final exam. The final exam will not be rescheduled except in emergency cases with documentation provided by the Academic Advising Office in the Office of Undergraduate Education.

Grading Policy

Your grade will be determined by a weighted average of all the graded items. There is no curve in this course. Letter grade assignments are given according to the following cutoffs with no rounding:

Component Weight

Homeworks 25%
Lab assignments 15%
Midterm exam (Oct.22) 30%
Final exam (Dec. 17) 30%
Score Grade

93-100 A
90-92.9 A-
87-89.9 B+
83-86.9 B
80-82.9 B-
77-79.9 C+
73-76.9 C
70-72.9 C-
67-69.9 D+
60-66.9 D
0-59.9 F

Class Policies

  • Attendance & Participation: Attendance to lectures is not required and I do not take attendance. However, it is highly recommended and encouraged. When you miss a lecture, you are responsible for catching up with the material. The instructor will not give you a "catch up lecture" but is happy to answer specific questions on the teaching material during office hours. Attendance in lab is mandatory (because you must turn in the lab assignments).

  • Timely handling of grade disputes: Disputes of grading on assignments, exams, etc must be discussed within one week of their return or posting. Should you find yourself having an issue with a grade, please contact the course instructor (that would be me).

  • Use of Electronic Devices: I don't recommend using any electronic device during the class. But, if you wish to use an electronic device such as a laptop or iPad, etc during class, you should not disturb other students. Use of cell phones is not allowed during the classes.

  • Late Policy and Missed Exam Policy: Homework must be turned in before the date and time indicated to be considered "on-time". However, in case of any unexpected situations, each student is allowed to turn in the homework late TWICE without any punishment (no late than two weeks after the due date). If you want to apply this rule for your homework, please send me an email when you submitted your homework. Homework later than the two weeks after the due date will receive NO credit.

    There are no makeups for missed exams. Any request for exceptions to this policy should be made in advance when at all possible. Requests should be due to incapacitating illness, death in the family, or something similarly serious and be accompanied by supporting documentation. Events such as sleeping through your alarm, alarm malfunction, not being aware of the exam will not be considered excuses.

  • Email Policy for this Course: Please use your official Emory email when sending email to me. I do not reply/discuss grades/academic work via non-Emory email accounts. Please use the format "cs130R-EmoryID-issue" as the subject of your email. For example, if I would like to apply the late policy, the title should be like "CS130R-hli57-Late-hw1".

  • Homework Submission: All homework should be submitted via Emory blackboard. For each homework, a document named "readme" is needed to explain the structure of your code. The format of "readme" files is expected to be pdf or txt. Please do not use "doc" or "docx" (you can print your doc file to pdf). Your grade will be affected if the "readme" file is missing.

  • Homework Problems: Debugging is an indispensable part of programming. Please try to fix all the bugs in your program. Using the online debugger is a good choice. I can help you diagnose the bugs in your program. But I will not write code for you.

Tips for Success

  1. While lecture attendance is not required, you will do best in this course if you attend regularly. You are responsible for all material covered in class whether you are present or not.
  2. If you have any questions, it is highly possible that someone else also has the question. In most cases Google already has the answer. So use it before you come to ask me. To dig into the details, please visit the online Python documentation.
  3. Do your homework! Learning in Computer Science is like learning a sport. It takes actual practice and time to get good. The assignments and exerciseis that are given are opportunities to learn the material that you will be responsible for on exams.
  4. Take responsibility for your course work submissions; it is your job to make sure that you successfully turned in what you meant to turn in. Be sure to verify your submission. This is how you make sure that you get credit for the work you do.
  5. Progress in software engineering is very hard to estimate. So you would be better off by beginning your assignments early. If you think you need help, come prepared. Use the resources that are provided for you, and be determined to succeed from the start.
  6. I encourage you to come see me if you are having problems. However, if you have any questions or concerns that you do not feel comfortable discussing with me, you can contact Dr. Valerie Summet, (valerie at mathcs.emory.edu).

Honor Code

All material in this course is covered by the Emory Academic Honor Code. All students are expected to be familiar with and follow Emory's Honor Code, particularly Article 4: Academic Misconduct. Additionally, all students are expected to read, understand, and follow the Math/CS Department's Statement of Policy on Computer Assignments (SPCA). If you have any questions about what does or does not constitute academic misconduct for this course, you should contact the instructor for an explanation. Academic misconduct will be referred to the Honor Council.

For your convenience, please put the following honor code at the top of your program.