UW-Madison
Computer Sciences Dept.

CS 202 : Introduction to Computation

URL: http://www.cs.wisc.edu/~dusseau/Classes/CS202

Spring 2009


Instructor: Professor Andrea C. Arpaci-Dusseau
When: MWF 1:20 - 2:10
Where: 113 Psychology
Final Exam:

Instructor Office Hours Tuesday 4:00 - 5:00 and Friday 3:30 - 4:30
Office: 7375 Computer Sciences (7th floor)
Email: dusseau "at" cs.wisc.edu.

TA: David Guild
Office Hours: Tuesday and Thursday 2:30 - 3:30
Lab: 1370 Computer Sciences (1st floor)
Email: guild "at" cs.wisc.edu

TA: Pratima Kolan
Office Hours: Monday and Wednesday 11:00-12.00
Lab: 1370 Computer Sciences (1st floor)
Email: pratimak "at" cs.wisc.edu


Mailing list archive

News

  • All lecture slides and code are available from the Schedule page.
  • The slides from Lecture 5 (decision trees) are posted. You'll discover two slides at the end that we didn't cover: they contain sample exercise questions that you should be able to answer if you understand the lecture.
  • The TAs will now be holding their Office Hours in the Computer Lab! Work on Scratch in the lab (using our Macs or your own laptops) and get your questions answered by the TAs while you work. You'll find the TA in Computer Sciences Room 1370 (1st floor at the end of the long hallway).
  • The animated story we created in Lecture 4 is available from our Schedule page.
  • The second homework in which you create you own Animated Story is due Wed Feb 3 before class.
  • Interested in learning more about careers in Computer Science? The University of Washington has created a collection of videos about different experiences and paths.
  • The first homework is due Wed Jan 27 before class.
  • Welcome to CS 202! We are looking forward to meeting you on the first day of classes: Wednesday January 20th at 1:20 in 113 Psychology.

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 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.

CS 202 can be used to satisfy the Quantitative Reasoning A (QR-A) and Natural Sciences requirements. CS 202 can also be used as part of a certificate in Computer Sciences.

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 35% of your final grade.

In my opinion, Computer Science is about doing. If you are in the field of computer science, you have opportunities to read, analyze, think, reflect, and write, but, in the end, it is mostly about what you can create. In the field of computer science, you have the opportunity to solve problems no one else has been able to solve before; you have the chance to design applications no one has thought of before; you have the opportunity to develop games no one else has played before. This ability to create new things through programming is one of the things I think is most exciting about computer Science.

In CS 202, the programming projects will all be in Scratch. These projects will be somewhat 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 much more time to a programming project than to one of the weekly homeworks. You will be expected to demo each of your projects to a TA as well as do a short demo of one of your three projects to the entire class. 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.

In many ways, I agree with Woody Allen's quote that "80% of success is showing up." If you show up for class and turn in something for every homework and project, you are going to do fine in this class. We cover a lot of material in this course and you will find it is important to keep up.

This is part of the reason that we do not accept late assignments (i.e., homeworks or projects). When the assignment is due, turn in what you've been able to get done and move on with your life. With programming projects, some students can be tempted to try to fix every bug and get everything perfect, but a perfect project is not our goal in this course; instead, get the project as completed as you can by its due date, turn it in, and then start thinking about your next assignment!

Readings

This course does not have a textbook. A Course Pack is available for $17 from Bob's Copy Shop. You will be expected to read the material in the Course Pack, as shown on the class schedule.

In general, the best way to obtain the information for CS 202 is to attend class! In class, you will interactively design (pencil and paper) algorithms with your peers, see Scratch code being developed, and watch a few videos. Class attendence is expected and strongly encouraged.

Computational Resources

You are welcome to use any computing facilities you have access to for the homeworks and projects. For some of the homeworks, you will need to be able to run a web browser, such as Mozilla Firefox or Internet Explorer. For the projects, you will need to be able to run Scratch; Scratch is free and runs on Mac OS X and Windows (2000, XP, and Vista).

One option is to use the Windows machines in the instructional cluster on the first floor of the Computer Sciences department. The hours and room numbers are available here. Everyone in the class has a Computer Sciences account. To activate your CS account, you simply click on "Activate new account" and type in your UW ID number along with a new password of your choosing.

You will be using Learn@UW to turn in your assignments.

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