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