UW-Madison
Computer Sciences Dept.

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.

 
Computer Sciences | UW Home