Course website and syllabus: http://cs.union.edu/csc107/
Quick Links: Schedule | Blackboard | Homeworks | Labs | Projects | Tutorials
Introduction to Computing and Programming in Python: A Multimedia Approach, 2nd Edition, Mark Guzdial & Barbara Ericson, Prentice Hall, 2010.
The Practice of Computing Using Python, William Punch & Richard Enbody, Addison-Wesley, 2011.
Available at the bookstore.
There are numerous types of assignments for this course - programming is a very hands-on activity and the more you do, and the different ways you think about it, the better you will become at it. But before I discuss the different assignments, a note on collaboration. Working together is a great way to more fully explore the concepts of the course. At the same time, independent work is also critical so both you and I know that you fully understand the material on your own. Thus assignments are designed to balance opportunities to work together and individually. Please read what forms of collaboration are acceptable for each assignment, and ASK ME when in doubt. Whenever you work with another student, indicate who you worked with on the assignment (eg. in the header comment of the code).
There will be weekly homework exercises. Homework exercises are for you to play with and reinforce the concepts we talk about in class. I encourage you to form study groups to work on the homework exercises. However, study groups should not be more than three people and you need to document on your assignment everybody who contributed to the solution as well as all resources you consulted. Unless otherwise indicated, each person must hand in their own solution. Exercises will be assigned by the end of class on Thursdays, and due by the beginning of class on the following Wednesday.
There will be two programming projects. These projects will combine different programming concepts and multimedia techniques, and provide opportunities for creativity. Each student must complete his or her own programming project. You may discuss algorithms with each other, but you may NOT look at each other's code. To complete these projects on time, it is critical that you start each as early as possible and get help as soon as possible when needed. Programming projects are due at the beginning of class on the specified date.
There will be labs where you will work on exercises in-class and receive help from myself, the lab assistant and your peers.
There will be one in-class midterm exam, and a final exam that must be completed individually (you can study with whomever you choose). There may be "pop quizzes" and independent in-class exercises. The intent is not that these be "punitive" in any way, but rather motivate you to keep up and provide feedback on your progress. Learning to program is like learning a foreign language: if you do not speak it during some part of every day your progress will be quite slow.
Finally, class attendance and participation is a critical component of the course. Please discuss any necessary absences with me (see below).
Handing in assignments: For both homweork exercises and programming projects, you will turn in a hard copy of the source code and submit the program electronically on blackboard through the "Send File" option of the "Digital Drop Box" (on the "Control Panel"). Files must be sent on blackboard PRIOR to class on the day they are due, and hard copies handed in at the START of class (there is no formal collection process - YOU are responsible for turning in your assignments). You will also upload "results" of your programming projects (an image, sound or web page) to your own website that you will create and maintain as part of the course. Whether you work on your own computer or on the system at Union, ultimately your programming projects and homework exercises must run on the Mac version of JES - so be sure to test it before handing it in. Labs and in-class exercises will also be submitted on blackboard.
Grade Allocation
Basic Course Requirement
In order to pass the class you must earn a passing grade. In addition, however, you must meet the following basic requirement. Before the final exam time for the course, you must submit a solution to each of the course projects that earns at least 50% of the possible points (prior to removal of late points, see below) and take both the midterm and final exams. In other words, you cannot blow off an entire project or exam and pass the class! Note that this basic requirement is necessary but not sufficient to pass the class.
Attendance
Class participation is a critical component of the course and attendance is mandatory. In addition, there are numerous hands-on activities and in-class exercises. Please discuss any necessary absences (eg. athletics, religious holidays, emergency, illness) with me PRIOR to class. You may be asked to make up for missed material. You will not receive credit for make-up material if you did not discuss your absence with me prior to class.
Late Assignments
Late "homework" exercises will not be accepted. Programming projects turned in late will drop your grade for the assignment 10% per day. For example, projects worth 100 points handed in after 3:05 (10:55 on Thursdays) on the due date, but before 3:05 the next day have a max grade of 90 points.
Students with Disabilities
It is the policy of Union College to make reasonable accommodations for qualified individuals with disabilities. I encourage students with disabilities to make an appointment to meet with me as soon as possible to discuss accommodations that might help facilitate your learning. You will need appropriate documentation from the Student Support Office. All discussions will remain confidential.
Academic Integrity
Scholastic dishonesty is misrepresenting someone else's work as your own, which is a form of stealing, and will not be tolerated. You are responsible for reading and understanding Union's policies regarding Academic Conduct in the student handbook (http://www.union.edu/offices/dean/handbook/index.php). If you need help understanding how and when to cite sources, please see me.
In addition, each assignment indicates whether you may work on the assigment with others in the class, and what kinds of collaboration are acceptable. When in doubt please ask. Always indicate who you worked with on an assignments.
How to succeed in this course
Note: Subject to change. Be sure to check for updates at: http://cs.union.edu/csc107/
Dates | Topic | Reading | Assignments due |
Week 1 |
Introduction Concept & properties of algorithms; Variables & constants; Basic assignment statements; Arithmetic operators; Sequential code; Intro to functions and parameter passing; HTML |
Guzdial: Chapters 1 & 2, Section 12.1 | |
Week 2 |
Data representation & Basic picture manipulation Numeric & non-numeric data (text, pictures, sound); Iterative control structures |
Guzdial: Chapter 3 | Wednesday: HW 1 |
Week 3 |
Intermediate picture manipulation |
Guzdial: Chapter 4, Section 15.4 | |
Week 4 Jan 24, 26, 27 |
Advanced picture manipulation Debugging; Implementation of algorithms |
Guzdial: Chapter 5, 9 | |
Week 5 Jan 31, Feb 2, 3 |
Introduction to Sound | Guzdial: Chapter 6 | Wednesday, 2/2: Project 1 due |
Week 6 Feb 7, 9, 10 |
Intermediate Sound | Guzdial: Chapter 7 | Wednesday, 2/9: MIDTERM |
Week 7 Feb 14, 16, 17 |
Advanced Sound | Guzdial: Chapter 8 | |
Week 8 Feb 21, 23, 24 |
Text as Medium Lists and dictionaries |
Guzdial: Chapter 10 | |
Week 9 Feb 28, Mar 2, 3 |
Advanced Text Techniques |
Guzdial: Chapter 11, 12 | Wednesday, 3/2: Project 2 due |
Week 10 Mar 7, 9, 10 |
A Bigger Picture & Special Topics |
Guzdial: Chapter 14; Friedman & Kahn (1997). Human Agency and Responsible Computing (on Blackboard) Sharkey & Sharkey (in press). The Crying Shame of Robot Nannies |
|
Monday, March 14, 2:30-4:30 |
FINAL | Olin 107 | Final |