CS 202 : Introduction to Computation
URL: http://www.cs.wisc.edu/~dusseau/Classes/CS202
Fall 2009
Instructor: Professor Andrea C. Arpaci-Dusseau
When: MWF 1:20 - 2:10
Where: 2345 Engr Hall
Final Exam: 10:05 December 22
Timetable listing
Instructor Office Hours Changed! Tuesday 4:00-5:00,
Thursday 2:00-3:00
Office: 7375 Computer Sciences
Email: dusseau "at" cs.wisc.edu.
TA: David Guild
Office Hours: Tuesday and Thursday 1:00 - 2:0-00
Office: 1302 Computer Sciences
Email: guild "at" wisc.edu
Mailing
list archive
News
- Deadline for Proejct 2 has been extended to Tuesday...
- Solutions to Homework 6 are available.
- Project 2 is a available
- Solutions to Homework 5 are available.
- Homework 6 is due before class on
Wednesday, Nov 3. It is a pencil and paper assignment.
- Sign up for
a time slot with the TA to discuss Project 1.
- Homework 5 is due before class on
Wednesday, Oct 28. It is a pencil and paper assignment.
- Here is a copy of the practice exam 1. The real exam on Monday
will be very similar!
- Project 1 is due Friday Oct
16th. Everyone will demo their projects in Room 3283 Computer
Sciences; please arrive a few minutes early to set up your laptop
with your Scratch project. Everyone will play everyone else's games,
give feedback, and vote on their favorites!
- Homework 4 is due Wednesday, Oct
14.
- Exam 1 will take place in class on Monday Oct 12.
- Homework 3 is due Monday,
September 28th. (Note that the deadline has been slightly extended.)
- Homework 2 is due Friday,
September 18th.
- The animated story code is posted on the Scratch website
- Homework 1 is due Friday, September 11th.
- Lecture notes are available from the Schedule page; the link is
under the "Topic" for each lecture.
Overview
The purpose of computing is insight, not numbers. -- Richard Wesley Hamming
Designed for a diverse audience, this course examines some of
the fundamental ideas behind the science of computing. This course,
like the field of Computer Science in general, is more than just the
study of how computers work, of how to program computers, or of
how to use computers. At the highest level, this course focuses on
studying algorithms which are step-by-step methods for
accomplishing a complex task.
Algorithms are useful in more places than you might imagine.
Algorithms specify the work that must be done for large, complex tasks
like sequencing the human genome and indexing and searching for web
pages. But, algorithms can also describe how people can approach
problems like finding a path out of a maze or solving a rubix cube.
Understanding how to solve problems in a step-by-step fashion is
useful for more than just computer scientists.
In this course, we will investigate the types of problems we currently
know how to solve with computation. We will compare different
algorithms that solve the same problem and determine which are the
most efficient. We will learn how modern computers perform
computation by covering hardware and software topics on how data is
stored and how instructions are executed. We will also survey the
wide range of areas within computer science, including robotics,
human-computer interaction, and artificial intelligence.
To obtain hands-on experience with algorithms, we will be using a new
programming environment called Scratch.
Scratch enables beginners to
create sophisticated programs by simply dragging and dropping
predefined instruction blocks. Thus, we will acquire experience
decomposing problems into well-defined steps without the fear of
frustrating ``syntax'' errors.
Grading
To help you learn the material in this course, we will have weekly
homework, programming projects, and exams.
The weekly homework is meant to be fairly straight-forward and allows
you (and the instructor!) to check that you are following the basic
material covered in class and the reading. Some of the homework will
be pencil and paper analysis, a few will be short essays, and some
will be relatively simple programming assignments. The weekly
homework will comprise 30% of your final grade.
The programming projects will all be in Scratch. These projects will
be slightly open-ended and will allow you to show some creativity and
original thought. The projects will allow you to create your own
animations, simulations, and games. You are expected to devote more time to a
programming project than to one of the weekly homeworks. The
programming projects will be worth 35% of your final grade.
Finally, we will have two in-class exams as well as a final exam.
These exams will form 30% of your final grade.
This course does not have a textbook, so we will handout reading
throughout the semester. Class attendence is expected and strongly
encouraged.
Other Info
The frame on the left side of this web page contains links to a number
of related useful pages. You will find the schedule page particularly useful.
|