Syllabus
COURSE INFO
- Lecturer: Jay Summet
- Email: summetj [at] gatech.edu
- Office: CCB 135
- Office Hours:
- Click Here for Jay's office Hours.
- ...or by appointment.
Course Objectives
- Students will be able to program Python programs using subset of data types and using assignment, method calls, while loops, for loops, and conditionals.
- Students will learn how to use and manipulate several core data structures: Lists, Dictionaries, Tuples, and Strings.
- Students will be able to construct simple graphical user interfaces that drive their programs.
- Students will understand the process and skills necessary to effectively deal with problem solving in relation to writing programs.
- Students will be able to test and debug programs.
- Students will understand and employ objects, functions and modularity.
- Students will be able to read data from text files, and write formatted text files.
- Student programs will be able to interact with websites and load data from them (web scraping).
- Student programs will be able to read and write data to/from SQL databases.
- Students will be able to manipulate data from one format into another.
Lecture and Recitation
- Lecture: M, W, F :: 3:05pm - 3:55pm :: CULC Room 144
- Recitation(s):
- See TA Helpdesk page for individual recitation times
- Laptops are mandatory during recitations
Course Materials
- Required Text: How to Think Like a Computer Scientist: Learning with Python (3nd edition) by: Peter Wentworth Jeffrey Elkner, Allen B. Downey, and Chris Meyers. Free Online Version: Open Book Project
- Required Text: Dive into Python 3 by Mark Pilgrim. Free online version: DiveIntoPython3.org ISBN: 978-1430224150
- Optional (But highly Recommended) Reference Text: Programming in Python 3 2nd ed (PIP3) : Mark Summerfield - Addison Wesley ISBN: 0-321-68056-1
- Software:
- Python (version 3.2.3) http://www.python.org (If you run on Mac OS X, you will need ActiveTcl as well - read this)
- Pymysql for Python3 Installation Instructions
LETTER GRADES
Letter grade assignments are given according to the following cutoffs with no rounding:
- 90.00 <= A <= 100
- 80.00 <= B < 90.00
- 70.00 <= C < 80.00
- 60.00 <= D < 70.00
- 0 <= F < 60.00
Grading Policies
There is no curve in this course. The grading breakdown is as follows:
- Demo Assessments (on Homeworks): 20%
- Including a project requirement 10%
- Attendance & Participation: 10%
- Exams & Timed-Labs: 45%
- Final Exam: 15%
Exam Replacement Policy You will have 4 exams over the course of the semester followed by a final exam. Each exam score will be recorded in the gradebook as a percentage (0-100). At the end of the semester, your 2nd lowest score from these five exams will be used to replace your lowest score.
This means that if you receive (for example) 90,80,70,60 on your first four exams, you could skip the final exam (receiving a zero) and your 60 (2nd lowest score) would replace the zero on the final exam.
As a more realistic example, if you received a 60, 65, 70, 75 on the first four exams, and received an 80 on the final, the 65 (2nd lowest score) would replace your first score of 60.
If you scored 60, 60, 75, 70, and 85 the 60 would replace the other 60, causing no change, so try not to score the same on your two lowest exams.
Attendance & Participation: Various classes and recitations will have small assignments due in class. These may be submitted via paper, T-Square, or PRS (clicker) devices. The majority of your Attendance & Participation score will be derived from these assignments, which can not be "made-up" if you do not attend the class. It is a violation of the Academic Honor Code to submit work or "sign-in" for other students.
Homeworks:
You will have between 10-14 homeworks in this class. You will have
between 5 to 15 days to complete each homework. The last homework
assignment may be due during the final week of class. These homeworks are
not directly graded, but you will use them to demonstrate your mastery
of the course learning objectives in assessment demos.
Each of the assigned homeworks will demonstrate one or more of the
course learning objectives. You are free to complete a different
program of your own devising (instead of the assigned homeworks) to
demonstrate the learning objectives if you desire. However, final
determination as to your success in meeting the learning objectives
falls upon the course staff and instructors. Only work submitted to
T-Square via the assignments tool will be allowed as the basis for a demo.
Proper Code Style Code clarity is crucial for your demos in this class. For this reason, using good style (good variable names and good commenting practices) is required on all coding homework assignments. Failure to sufficiently comment or use good style will result in a deduction of up to one point on your demo grade.
Assessment Demos It is your responsibility to meet with two TA's in the TA Helpdesk each week to demo your python code. In the demos you will show the TA's your code, using it to explain how you have met the course learning objectives.
The TA's will enter a score for each learning objective you attempted to demo in T-Square after you meet with them. If you are unhappy with the score for any learning objective, you may repeat that learning objective during your demo the next week as long as it's phase has not yet closed.
You may only demo once per week during weeks 1-15. (However, we only have enough demo slots for 1/2 of the students each week, so your average time between demos will be two weeks.) You may demo as frequently as once per day during dead week (subject to demo slot avaliability). You may also demo for the Head TA or course instructor and ask them to update your score for any learning objective.
In return for the ability to re-demo learning objectives until you are happy with the score, the course instructor reserves the right to request that you re-demo (for a new score) any learning objective at any time during the semester.
To ensure that students do not wait until the end of the semester in a foolhearty attempt to learn everything in dead week, assessment demos are categorized into four phases. All demos for each phase must be completed before the closing date for that phase to receive any credit.
Project Requirement As part of your demos, you will be required to demonstrate at least one large scale programming project that integrates a large portion of the course learning objectives into working code. You may create your own project, or use one of our provided project homeworks as your project.
Timely handling of grade disputes: Disputes of grading on demos, assignments, exams, etc must be discussed within one week of their return or posting. Should you find yourself having an issue with a grade, contact your grading TA. After you talk with your TA, if you are not satisfied you may contact the head TA or course instructor.
Late Work and Missed Exam Policy: Assignments must be turned in before the date and time indicated to be considered "on-time". 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 try to use your official Georgia Tech email when sending email to us. Please attach cs2316 to the beginning of the subject of your email! Please also indicate who you are within your email. :)
TA Help Desk
- When? Click on the TA Help Desk Link
- Where? The College of Computing Building Room 107-A
- TAs will be available in this room according to the schedule posted. Take advantage of this useful opportunity for help!
Assignment Submission
Almost all assignments will be submitted electronically via T-Square.
Access T-Square at https://t-square.gatech.edu/
Collaboration
Quizzes and exams are to be completed alone with no outside assistance.
Collaboration with other students in CS 2316 class is an important learning method. However, you are personally responsible for demonstrating that you have fulfilled the course learning objectives in the assessment demos. If the TA's feel that you did not write the code you are demoing, they will ask you to solve a similar problem by writing code in the demo.
- For all homework assignments, you must write comments at the top of each file you turn in detailing the following information:
- Include your name (and partner's name(s) for pair programming assignments)
- Include your gt email address
- Include your collaboration statement - the wording of the collaboration statement should be:
- "I worked on the homework assignment alone, using only this semester's course materials." OR
- "I/We worked on this homework with [give the names of the people you worked with] and referred to [cite any texts, web sites, or other materials not provided as this semester's course materials for CS 2316]."
Jay and the current TA's should be treated as course material and need not be listed in the collaboration statement.
Course Expectations
- Lecture and recitation attendance is required.
- Keep up with the reading. Readings should be completed before class on the date indicated on the Calendar.
- Use the course discussion forums wisely to have discussions about course material with your classmates and the TAs. You are also expected to follow good Internet etiquette.
- Do your homework! Learning to program is like learning a sport. It takes actual practice and time to get good. The assignments that are given are opportunities to learn the material that you will be responsible for on exams. Use collaboration wisely to help you learn.
- 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.
- Be prepared when you go to get help from a TA or your instructor. Bring your work with you.
- Take initiative. Begin your assignments early and if you think you need help, come prepared. Use the resources that are provided for you, and be determined to succeed from the start.
- Read, understand, and follow the Georgia Tech Academic Honor Code