Syllabus for Computer Science 380 (CSc 380): Building Modern Applications with Python and C/C++ Many modern applications are frequently built with an amalgam of a high-level scripting language and a low-level compiled language. This course covers techniques used for combining these types of languages, in particular Python with C/C++. We will see the basics of Python, modules systems, tools and libraries (GUI, I/O etc.), and issues in linking. No knowledge of either Python or C/C++ is assumed. The course will be mainly Python, but covers enough C/C++ to see the issues in bringing the languages together. Topics we will cover: The 80-20 rule, Python basics, reference counting, Python module system, Python libraries, Tk, Qt and typical Python GUI tools, performance analysis tools, some simple network programming, tools to enable C/C++ and Python co-existance, C/C++ basics, Python/C/C++ linking, Python 3.0 vs Python 2.x Prerequisites: The course will require the completion of the two intro computer science courses (or equivalent), or special permission of the instructor. Instructor: Richard T. Saunders Office: Gould-Simpson 834 Telephone Number: Computer Science Department FAS office, leave message with Margaret at 621-5003 Email: saunders@cs.arizona.edu Office Hours: Monday, Wednesday, Thursday 5:30-6:30 or later By appointment, e-mail me to set-up an appointment for other times Grader: Ajeya Naithani Office: Gould-Simpson 710D, last cubicle on right Telephone Number: 621-4089 Email: naithani@cs.arizona.edu Office Hours: By appointment only Required Text: Core Python Programming (2nd Edition) Optional Text: Python In A Nutshell (2nd Edition) There will be a number of required handouts given in class, but we will provide them for you when necessary Course Objective: To learn Python well (in a UNIX environment) and learn C/C++ well enough to write key pieces. The overall goal is to be able to build a hybrid system from Python and C/C++. Grade Policies: 50% of the course will based on homework/programming assignments (a mix of written homework, Python and C/C++ assignments). There will be about 7 REQUIRED assignments, with later assignments being worth more. 20% of the course will be the REQUIRED Midterm Exam 25% of the course will be the REQUIRED Final Exam 5% Quizzes (will be folded into Midterm if no quizzes) Grading scale: 90%-100% A 80%-89% B 70%-79% C 60%-69% D 0% -59% F If you compute your raw percentage, you should get at least the grade above. The instructor reserves the right to adjust the scale (but always in the students favor: Eg., 89% may become a A). You get one free late programming assignment (i.e., you may turn in one assignment a day late with no penalty). After that, you lose 10% per day. However, once solutions to an assignment are posted, you MAY NOT TURN IN AN ASSIGNMENT---usually solutions will be posted a day after the assignment is due, so don't count on any more time than a single day for a late assignment. This is a 10 week summer class, so the course will be moving quickly. It will be important to stay on top of all assignments. Absence Policies: ---------------- The student is responsible for everything discussed in class, so if you miss a class, it is the student's responsibility to follow up and make sure they didn't miss anything (handouts, homeworks, announcements). If the instructor is absent, he will either get a guest lecturer (the student is still responsible for the material from the guest lecturer) or cancel class. If class is cancelled, assignments and due dates will most likely be pushed back a day. All holidays or special events observed by organized religions will be honored for those students who show affiliation with that particular religion. Absences pre-approved by the UA Dean of Students (or Dean's designee) will be honored. Policies Regarding Expected Classroom Behavior: ----------------------------------------------- Please turn off all cell phones and pagers and beepers. I RESERVE TO RIGHT TO HAVE A POP QUIZ IF CELL PHONES OR PAGERS OR BEEPERS ARE NOT TURNED OFF or kick you out of class. Policies against cheating and plagarism: --------------------------------------- Do all your work yourself. Don't cheat, don't plagarize. I will come down hard and reserve the right to fail a student on an assignment or for the course. See the official Code of Academic Integrity below. http://dos.web.arizona.edu/uapolicies/UACAIpolicies.pdf http://dos.web.arizona.edu/uapolicies/ Policies against threatening behavior by students: ------------------------------------------------- http://web.arizona.edu/~policy/threatening.pdf Notice to students with disability. ----------------------------------- Accommodation Students with disabilities, who may require academic adjustments or reasonable accommodations in order to participate fully in course activities or to meet course requirements, must first register with the Disability Resource Center, 1540 E 2nd St, 621-3268, email drc@w3.arizona.edu, URL http://drc.arizona.edu. DRC staff will qualify students for services, and provide a letter to the instructor listing accommodations to be made. This letter should be submitted by the student directly to the instructor as soon as possible during the first week of classes. The student should meet as soon as possible with the instructor by appointment or during office hours to discuss accommodations and how course requirements and activities may impact your ability to fully participate. Reminder to students with special needs who are registered with the S.A.L.T. Center (http://www.salt.arizona.edu/) There are no informal agreements: the student must register with RDC or SALT to accommodate special needs. Required extracurricular activities: None Required or Special Materials: None Notice of Potentially Offensive Material: None Course Methodology: A combination of lecture-only, Socratic dialogue and lab interaction. (Sometimes shut-up, sometimes speak-up, sometimes log-up) The information contained in this course syllabus, other than the grade and absence policies, may be subject to change with reasonable advance notice, as deemed appropriate by the instructor.