Learning to Program with Alice
by W. Dann, S. Cooper, and R. Pausch (Pearson/Prentice-Hall).
Nary One Bit O' Magic: How Computers Work by A. Charlesworth (UR Press)
Office Hours: MWF 9:25-10:25am. Other days and times
by appointment.
You are welcome to drop by my office at any time, but
be aware that there will be occasions on which I will be unable to see
students. Also, though I usually keep
my office door open during office hours, at other times I may
keep my door closed for either noise or climate control purposes. You
should be sure to knock before concluding that I am not in my office!
Course Summary:
The purpose of this course is to investigate problem solving via
it computer programming.
You are not expected to have any prior programming experience, nor are you
permitted to take this course if you have completed any course that fulfills
Computer Science major requirements.
Alice is the programming system used in this course, and the problems you will
solve involve animating three-dimensional objects in an on-screen virtual
world.
Essentially, your programming in Alice will be similar to the work done by
animators for computer-generated movies or by programmers for video games.
All programming in Alice is accomplished by a drag-and-drop user interface.
Through the Alice system, you will---by using standard computer programming
techniques---control the actions of the on-screen objects, their interactions
with the user, and various aspects of the virtual world (lighting, camera
position, background content, etc.).
As your animated worlds become more complex, you will learn and apply even
more sophisticated programming techniques.
Furthermore, we will study a basic model of computer organization --- this
will help you to understand what is happening at the lowest level of the
computer while your Alice programs are executing.
Because this course is concerned with problem solving, we will also discuss
the capabilities, and limits, of using computers to solve problems.
By the end of this course, you should have a better appreciation for the type
of work necessary to produce Pixar movies and EA video games.
You also should have developed a basic understanding of programming fundamentals
and computing, and interested students should consider
taking subsequent courses in the Computer Science major.
This course satisfies the Symbolic Reasoning Field of Study (FSSR), as described by
the following statement approved by the University faculty.
Students will solve problems using one or more programming systems. The
problem solving will include translating problems into computer programs from
problem statements that do not make clear the particular solution method to be
used. In addition, the course will cover relevant background information, such
as the rudiments of computer architecture and other aspects of the nature of
computing systems and of computer science. This background will also include
programming language syntax and semantics, so that students can recognize and
correct syntax errors and can precisely predict the output of the kind of
programs they write, given specified inputs. However, the central theme of the
course will be the kind of problem solving by students that expresses a
solution in the form of a computer program.
Pre-requisites: None.
Assignments:
Three in-class exams, limited to the 75-minute class period;
Regular homework assignments, to be collected and graded;
Several substantial programming projects
In-class comprehensive final exam, limited to the 3-hour exam block.
Late assignments will not be accepted for any reason.
Attendance Policy:
If you are absent on the day of an exam, you will not be permitted to
make up the exam.
You are expected to attend each class period for its duration.
If you must miss a class, you are responsible for any associated
material.
When possible, please inform me in advance of any absence.
Any student with an excessive number of absences is subject to a
failing grade of V
You are responsible for checking your email and the course web page frequently for course-related information.
Grades:
Grade Component
Date
Percent of Grade
Exam 1
Monday, February 11
13.3%
Exam 2
Monday , March 17
13.3%
Exam 3
Friday, April 9
13.3%
Homework
N/A
10%
Programming Assignments Avg.
N/A
25%
Final Examination
Thursday, May 1, 9:00am-noon in Jepson G23
25%
Honor Code:
Unless provided to you by the instructor, you are not permitted to view
or use existing assignments, tests, or solutions in any form, whether they
be from a previous offering of this course or Web-available.
Exams and project assignments must be completed by you without
assistance from any other person or source (you are permitted to consult
with me).
Homework assignments may be discussed with others, and are subject to
the empty hands policy:
You may freely discuss ideas with other students, but each student must
leave the discussion without any written or otherwise recorded material.
Any manifestation of copying another student's work for your own (whether
digital, hand-written, aural, etc.) is not permitted.
Failure to comply with these policies will be treated as an Honor Code
violation.
My Grading Philosophy: When it comes to the final course
grade, I am merely the scorekeeper. I feed the value of each
component of your grade into a computer program, and it gives me the
final average that determines your course grade.
If you have turned in (on time), say, three of five programming projects,
and done them well, my grading program will still give you a programming project
average of zero because you failed to turn in two
projects. I'm not
saying this to intimidate you, but to be clear that there are
consequences for failing to complete assignments, and you should be
aware of this up front.
My "Managerial" Philosophy
Some professors will chase you around reminding you that you have
failed to turn in an assignment or asking why you've missed class. This is not my style.
I treat you as the responsible adults that you are.
If you perform poorly on an exam, I
expect that you will come to my office hours (or make an appointment
for another time) to discuss any questions you may have on the material.
If you are having problems with a programming assignment, I expect that
you will bring these problems to my attention far enough in advance of
the
deadline so that you have time to absorb whatever advice or hints I give,
implement them, and still turn the project in on time. And it is not
my responsibility to be available for the entire afternoon before a
project is due because you waited until the last minute to work out
the kinks. So you are aware of this up front, MOST of the time
spent on your projects will be devoted to working out the kinks!
It's just the nature of the beast.
Also, I apologize to
the 99% of you who are responsible enough to know these things
and all of the similar rules on this page without me having to put them
down in writing. Unfortunately, every semester there seems to be
one student who needs this kind of clarification, and it is for them
that I spell things out.
Exams:
The Other Student Criteria : When grading tests and
homework, I use the Other Student Criteria
(OSC). All solutions must meet this. The Other Student Criteria
states that a solution should provide enough written explanation
so that another student in the class (who could not complete the
assignment) could read the submitted material and, without
asking questions, understand a correct answer.
My ``exam discussion policy": Once a student has begun an exam,
I will answer (for that student) only those questions that concern clarification of the intent of a problem. That is,
I will not answer questions that seek to determine whether the problem was done correctly, or whether a particular approach is
wise (or unwise).
Cell phones, iPods, and other electronic toys are not to be used during lectures. Have your cell phones set
to vibrate. Under no circumstances are calls to be answered in the classroom. Students failing to adhere to this policy
will have points deducted from their final course average (with the number of points growing exponentially with the number
of incidents.
Course Outline:
Following is a basic list of topics to be covered this
semester. Additional topics may be added as necessary. The order of these
topics is subject to change.