CS130R Programming in Python, Spring 2014

Course Syllabus

Lecture: Wed 11:45am-12:35pm, MSC W306

Lab: Fri 11:45am-12:35pm, MSC E308A, more information about Lab

Instructor: Yonghui Xiao [jɔŋhui ʃ i:ɔ]

Contact : yonghui.xiao AT emory.edu

Office Hours(updated): Monday 1:10~2:10PM; Friday 12:45~1:45PM

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


Exam and Project

We will have one midterm exam and one final project that will test your understanding of the contents covered in the lectures and lab sessions. There would be a review session prior to the exam.

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

Homework 48%
Midterm 24%
Final 28%
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: I do not take attendance. However, lab sessions will have some hands-on exercises which are due in class, and can not be "made-up" if you do not attend the class.

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

  • Final Project: Students should work in groups for their final projects. A group can consist of 1~2 students. It is fine if you would like to work on your own. The final project will include a proposal, code submission and a presentation of 15 minutes (10 mins presentation and 5 mins question).

  • 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-Name-issue" as the subject of your email. For example, if I would like to apply the late policy, the title should be like "CS130R-Yonghui Xiao-Late Homework1".

  • Homework Submission: All homework should be submitted in your CS130R directory. How to find your CS130R directory and how to submit homework will be shown in the first class (01/15) and the first lab class (01/24). Please create subdirectories, like hw1,hw2,hw3,hw4 and final, in your directory. For each homework (including final project), 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.