Foundations of Computing through Digital Media
Spring 2012
Professor: | Thomas C. Bressoud | Phone: | 587-5630 |
Office: | Olin 207 | E-mail: | bressoud@denison.edu |
Office Hours: | See Bressoud Spring Schedule | Mailbox: | Olin 201 |
Meeting Times: |
MWRF in Olin 217, 220 |
||
Final Exam: | B -- Thurs. May. 3, 9-11am |
Description
CS 110 is a one semester introduction to computational problem solving and computer science. Students will develop their abilities to abstract (or model) complex real-world problems and generate elegant, efficient solutions. Students will practice these skills by learning a programming language and creating programs that generate and manipulate digital images and sounds.
The Denison computer science curriculum begins with a fundamental assumption that, to be a successful computer scientist, you must begin with a foundation that includes good programming skills. Thus, one of the first goals of this course is for you to learn a new programming language. Python has been selected as the introductory computer language of choice for the reasons of cross-platform ubiquity, simplicity, and strong object orientation as the principal programming model. So you will learn the syntax and semantics of Python. This is much like learning to speak a foreign language with very restrictive syntax and vocabulary. The key to learning the language is by practicing as much as possible.
The other reason to focus on a programming language in the introductory computer science curriculum is to use it as a means to develop problem solving skills. At its core, computer science is about the algorithms used to solve problems. And learning to translate a real-world problem into a precise, specific, realizable set of steps (an algorithm) is exactly the type of skill that extensive practice with a programming language will allow us to develop.
The course design will use the application area of Computation applied to Digital Media as the primary vehicle for motivating students and introducing topics central to Computer Science. CS-110 will introduce programming and computing ideas through students programming image filters in the manipulation of digital images, splicing and reversing sounds, creating visualizations of sounds, and implementing digital special effects.
This thematic version of the course should appeal to a broader range of students, including both majors and non-majors, providing additional relevance and creativity with this new design center. Further, the use of digital media and media computation will provide concrete experiences for the the students that will allow them to develop and learn abstractions based on those experiences.
Beyond programming and algorithms, computer science entails aspects of computer organization and architecture and representation of information, a foundation in discrete mathematics, including graph theory, how languages are desgined, networking and distributed systems, and computability. Although we cannot give depth to all of these aspects of computer science, this course will introduce you to a few of these topics through the semester.
Textbook
The following textbook is required for the course, and is available in the bookstore:
Python For Software Design, by Allen Downey. 2009, Cambidge Press, ISBN 978-0-521-72596-5. An earlier version of this book is available as an open source manuscript from Green Tree Press. Since it is open source, I am allowed to post the pdf here.
If looking for additional resources on Python, from within the Denison network, we can access many books online. Go to the following URL: http://proquest.safaribooksonline.com/?uicode=ohlink
and perform a search for the following book:
Python Programming for the absolute beginner Third Edition, by Michael Dawson. 2010, Premier Press. ISBN 978-1-4354-5500-9. This book gives an even gentler introduction to the Python language and can give you additional practice with the topics covered in our primary text and in class. We have placed a few hard copies of this book in the Math/CS Seminar room (across from the dept. office) for your use in that room.
In addition to the textbook, we will be utilizing a web site that provides practice exercises in Python. The website is http://www.turingscraft.com. The site requires registration and costs $25. The advantage of this practice web site is that it gives you immediate feedback on what is correct or not, and can give some hints on how to proceed.
Grade Determination
Midterm Tests (~4): |
40%
|
Homework/Projects (~10): |
30%
|
Online Exercises and Class Participation: |
10%
|
Final Exam: |
20%
|
Course Web Page and Discussion Forum
A web page will be maintained for this course. The web page will include the schedule for the course, all reading assignments, programming assignments, example programs, and other useful information, including announcements to the class. I expect you to check the web page regularly.http://www.denison.edu/~bressoud/cs110-f10/
Because of the nature of the set of project-oriented homeworks in this class, it is advantageous to have a forum where students can ask clarifying questions and seek guidance in a way that allows all students in the class to benefit from both the questions and the answers. To serve this need, we have created a class forum on http://piazza.com. The instructor will receive notice whenever a student posts a question, and we encourage you to use this means for questions and answers rather than email. On receipt of an email question, we will ask you to repost the question on Piazza and will then answer it there.
Course Work
- Midterm Tests:
-
In order to provide frequent feedback on how well you are progressing and mastering the material in this course, we will hold tests approximately every three weeks. These are explicitly intended to not be high-pressure exams, but to serve to keep everyone on track with frequent assessment opportunities. There will also be a cumulative final exam. All exams are closed book, closed notes, and may not be made up.
- Homework/Projects:
-
The bulk of the work you hand in will be in the form of homework/project assignments. The majority of each Thursday class will be lab/programming time; the course meets at the same time and place, but instead of lecture, you'll be working on assignments while we deal with your questions on an individual basis. The homework projects are meant to expose you a variety of interesting problems, give you a chance to be creative, and be fun!
Homeworks will usually contain both short coding tasks meant to reinforce concepts from class as well as larger problems, often with a focus on media computation (such as animation and image manipulation). Homeworks are typically due one week following their initial assignment, and require a substantial amount of time. You are not expected to complete the lab during Thursday's class, but it is in your interest to make as much progress during that time as possible.
Most project work will be done on your own time, and thus it is very important that you allocate sufficient time for them. Late assignments are not accepted, with one exception: each student is allowed a single late submission (but not the final project) over the course of the semester, no questions asked. If you want to hand in an assignment late, you must tell me so on the day it is due, and you will have one additional week to complete it.
The last two weeks of the course will be spent working on a final project, in which you will synthesize the material you have learned throughout the course. The final programming assignment may include more self-definition, and will entail a project design, creation, and a demonstration.
You may discuss programming and homework assignments with other students in the class in terms of how to approach the problem, but the answers must be your own. You may not get help on programs from any students outside the class. You may, however, seek out the help of the Computer Science fellows, who will hold regular hours at Olin Hall. In addition, you are always welcome, and in fact strongly encouraged, to come see me for help. My office hours are there for a reason ... use them to your advantage!
Online Exercises :
In learning to program, you are learning a new language. An extremely important aspect of learning a language is sufficient practice of the lexicon, syntax, and semantics of the language. It is through the mastery of these elements that the ability to write larger programs is born. Thus, an important component of the couse is the set of practice exercises that you will be assigned through the Turingscraft Codelab system. These will be due on a frequent basis, particularly in the first half of the semester.
Policies and Student Responsibilities
Participation and Attendance
In general, we would like everyone to do their part to make this an enjoyable and interactive experience. Hence in addition to attending class, we would like you to actively participate by asking questions, joining in our discussions, etc. Note that there is a significant portion of your grade attributed to class participation. Any day that you do not attend class, you (by definition) do not participate, and so be very careful about missing class, as it will affect your grade.Your attendance is expected at each class meeting. Through the class participation portion of the grade, I will reduce your grade for absences. Up to 3 excused absences will be tolerated without affecting your grade. Such absences should be communicated to me in advance.
Readings and In-class Material
You are responsible for the content of reading assignments, lectures and handouts, as well as announcements and schedule changes made in class, whether or not you are present. If you must miss a class, you are responsible to get what you missed.
It is very important that you keep up with the assigned reading. Read your book on a daily basis. Be especially sure to read the material in the appropriate chapter before coming to class so you will be ready to ask questions. All reading assignments are listed on the class web page. The material in the course is, by necessity, cumulative. Be warned that if you fall behind, you will not be able to catch up easily.
Disability Accomodation
Any student who thinks he or she may need an accommodation based on the impact of a disability should contact me privately as soon as possible to discuss his or her specific needs. I rely on the Academic Support & Enrichment Center in 102 Doane to verify the need for reasonable accommodations based on documentation on file in that office.
Academic Integrity
Proposed and developed by Denison students, passed unanimously by DCGA and Denison’s faculty, the Code of Academic Integrity requires that instructors notify the Associate Provost of cases of academic dishonesty, and it requires that cases be heard by the Academic Integrity Board. Further, the code makes students responsible for promoting a culture of integrity on campus and acting in instances in which integrity is violated. Academic honesty, the cornerstone of teaching and learning, lays the foundation for lifelong integrity. Academic dishonesty is intellectual theft. It includes, but is not limited to, providing or receiving assistance in a manner not authorized by the instructor in the creation of work to be submitted for evaluation. This standard applies to all work ranging from daily homework assignments to major exams. Students must clearly cite any sources consulted—not only for quoted phrases but also for ideas and information that are not common knowledge. Neither ignorance nor carelessness is an acceptable defense in cases of plagiarism. It is the student’s responsibility to follow the appropriate format for citations. Students should ask their instructors for assistance in determining what sorts of materials and assistance are appropriate for assignments and for guidance in citing such materials clearly.
For further information about the Code of Academic Integrity see http://www.denison.edu/about/integrity.html