Instructor: Dr. Shyamal Mitra
E-mail: mitra@cs.utexas.edu
Office Hours: MWF 2:00 PM - 3:00 PM
Location: GDC 6.816
Teaching Assistant: Jospeh Perez
E-mail: jdperez@utexas.edu
Discussion Session: TH 7:00 PM - 9:00 PM
Location: PAI 3.14
Office Hours: Wed 4:00 - 6:00 PM
Location: GDC 1.302
Teaching Assistant: Riddhi Shah
E-mail: riddhi.j.shah@utexas.edu
Discussion Session: M 7:00 PM - 9:00 PM
Location: PAI 3.14
Office Hours: F 11:00 AM - 12:00 Noon
Location: GDC 1.302
Proctor: Anwar Merani
E-mail: alek.anwar@utexas.edu
Office Hours: Tues 2:00 - 4:00 PM, Fri 3:00 - 5:00 PM
Location: GDC 1.310
Required Text: Introduction to Programming Using Python
by Y. Daniel Liang
Publisher: Pearson. ISBN: 9780132747189.
Additional Text: Think Complexity by Allen Downey
Publisher: O'Reilly. ISBN: 9781449314637. PDF version of the book
available on author's website.
We will learn how to analyze and design software. We will learn how to create reusable software components and to compose programs from already available components. We will learn about some basic data structures and algorithms and how to match the data structures and algorithms to problems. We will test and evaluate programs for their functionality and their performance.
We will be following the text quite closely for the section on object-oriented software development. Supplemental notes on data structures and algorithms will be available on the web. Unlike the traditional lecture format, our classes will be a venue for solving problems, writing programs, and exchanging, ideas. Attendance to the lectures is mandatory. If you are not there for any lecture you need to send me an e-mail explaining why.
There will be programming assignments that you can complete in the CS Lab. You may choose to use your own computer to work on these assignments. If you work on your home computer, you will have to download and install Python. There is a graphical development environment (IDLE) that comes with Python that you can also install.
The only way to learn programming is to program. Doing the programming assignments is crucial to performing well in class. Assignments will be given almost every week. Each assignment will have a clearly stated due date and time. Assignments start out being easy but get harder over the semester. If you are having considerable difficulty with Assignments 2 and/or 3, please see the Instructor immediately.
The assignments will require a substantial time commitment over several days (an average of 8 hours per week should be expected). Be sure to budget sufficient time to complete assignments before the deadline.
Turn in your assignments on time. This permits grading to start promptly after the submission deadline so that assignments maybe returned promptly. If you do not finish an assignment by the deadline you have a maximum of two days to turn your assignment in. However, there is a penalty of 10 points (out of a 100 points) per day. Your assignment is one day late until the midnight of the day after it is due, two days late from then until midnight of the second day. We will accept your assignment after two days if there is a compelling reason. If you turn your assignment in late you must notify the proctor, that you have done so. The turnin system that we use does not automatically inform us of your submission.
Specific grading criteria vary on each assignment. However, in general, programs that do not compile correctly on the Elements Lab configuration will receive no more than 80% of the possible points. Other point deductions are given for such things as: incorrect results, missing features, bad solution logic, no documentation etc. No matter what configuration of software that you have on your home computer, the assignment that is turned in must run successfully on the Elements Lab configuration in order to be graded. Here is the general grading criteria for programming assignments.
All assignments must be submitted using the web based turnin program. But whether you can use the turnin program or not, you must make a backup copy of the Python source code (i.e. the .py file) on your removable secondary storage device (e.g. flash drive). This will be necessary in cases where your program gets lost, is corrupted, or if there is some dispute over what was turned in when.
If you cannot get the turnin program to work for you in the Elements Lab, then have a TA or proctor in the lab email the assignment for you to your TA, with a copy to you or another TA or proctor for proof of mailing. For assigned programs, the source code (.py file) must be turned in; no credit will be given for turning in a compiled, executable, or other file. The source code must be a text file that can be compiled and run; word processing files will not be accepted.
If you want us to help you debug your program, upload your program to UT Webspace or bring your program (on a portable storage device like USB Flash Drive) to us during office hours and we will go through the program with you. Do NOT just e-mail the program to us for debugging.
Graded Assignments: Assignments submitted via the turnin program are placed in your directory on the turnin server. Graded assignments will be returned by placing a copy of the graded assignment in the same directory. The copy will contain comments and your grade and will have a file name similar to the name of the file turned in. These files can be viewed with any text editor such as Notepad. Once you have submitted an assignment for a grade, do not delete the submitted file or the returned file from the server. These files are part of your record for the course and must be saved by you in case of a lost file or grade dispute.
Grade Dispute: You have one week from the date the assignment grade is posted to dispute your grade. The proctor will be grading the assignments. Send the proctor for your section an e-mail and copy the TA in charge of the assignment and see if you can resolve your differences. If you cannot resolve your differences, you may send me an e-mail explaining the situation. We will not entertain any grade disputes after one week.
Assignment Identification: All assignments must be submitted with the proper header, containing your name (as registered), your unique section number, and the assignment number at the top of the assignment. The format for the header will be specified in the assignment. That specification will over ride any other header specification (e.g. the header description in the documentation for the turnin program).
In addition, because assignments are submitted as files by the turnin program, they must have the correct file name, which will be specified in the assignment handout. You must also ensure that you turn in the assignment to the correct unique section folder - that is, the section you are currently registered in. Lost assignments are typically caused by turning in an incorrect file name and/or turning a file into the wrong section folder. Assignments, which omit the header or are incorrect in any one or more of these requirements, will have the grade reduced by 5% of the maximum grade.
We will be having quizzes regularly throughout the semester. The quizzes will be held on Fridays. There are no make-up quizzes. You may miss one of the quizzes during the semester.
There will be three tests and no final examination. The three tests will be on Wednesdays from 6:00 pm to 8:00 pm.
Test | Date | Time | Room |
---|---|---|---|
Test 1 | Wed, 20 Feb | 6:00 PM - 8:00 PM | CLA 0.130 |
Makeup 1 | Thurs, 21 Feb | 6:00 PM - 8:00 PM | CLA 0.102 |
Test 2 | Wed, 03 Apr | 6:00 PM - 8:00 PM | CLA 0.130 |
Makeup 2 | Thurs, 04 Apr | 6:00 PM - 8:00 PM | CLA 0.102 |
Test 3 | Wed, 01 May | 6:00 PM - 8:00 PM | CLA 0.130 |
Makeup 3 | Thurs, 02 May | 6:00 PM - 8:00 PM | CLA 0.102 |
Make-up tests will be given only for the following reasons. In all cases you must provide some form of documentation.
Questions concerning test grades should be given to me in writing along with your test within the next class day that the test is handed back. We will not entertain any disputes after that time.
If you have more than 6 absences during the semester you will forfeit all the points alloted to class participation, i.e. 5% of your final grade.
Helping a friend understand the intent of a homework or programming assignment specification is permitted. Students who work together too closely (e.g. design their solution together) should be aware that this is a form of cheating called COLLUSION and is subject to academic penalties. Penalties for academic misconduct include a failing grade in this course.
The homework, programs, and exams must be the work of students turning them in. University policy (see Dean of Students' policies on academic integrity) will be followed strictly.
Acts that exceed the bounds defined by the approved collaboration practices will be considered cheating. Such acts include:
Students with disabilities who need special accommodations should contact the Services for Students with Disabilities (SSD) Office (471-6259 or 471-4641 TTY).