|
|
|
CSE 142: Computer Programming I Syllabus -- Spring 2004
Course Website: http://www.cs.washington.edu/142/
Course Instructors
Name
|
Office
|
E-Mail Address
|
Office Hours
|
|
CSE
640 |
cse142-instructors@cs.washington.edu OR
dickey@cs.washington.edu |
|
|
CSE
214 |
cse142-instructors@cs.washington.edu OR
zander@cs.washington.edu |
MWF after class in hallway outside Kane 210,
Th 2:30pm in CSE 214, or by appt
|
Teaching Assistants
|
see web
|
full information on the TAs link; you are welcome to
visit any instructor or TA during scheduled office hours, not just
your own TA.
|
full info. on the
web
|
Class Meetings
Lecture A (Dickey)--- Monday, Wednesday, and Friday from 9:30 to 10:20
in Guggenheim 224
Lecture B (Zander) --- Monday, Wednesday, and Friday from 11:30 to 12:20
in Kane 210
Quiz Section --- Thursdays. Check UW online
time schedule for times and locations.
Course Goals and Objectives
The major goals of this course include:
- To learn the general principles of computer programming
- To develop skills in designing, implementing, documenting, testing,
debugging, and analyzing in the context of computer science
-- these skill are not necessarily technical in the narrow
sense of the word, but encompass a range of abilities often described
as "critical thinking"
- To develop technical communication skills
- To develop an appreciation for the art of computer science
These goals will be accomplished by:
- Completing homework assignments, projects, quizzes, and exams
- Participating in class discussion through regular attendance in
lecture, quiz section, and other activities contributing to the overall
welfare of the class
- Seeking help of course staff and classmates when necessary
- Communicating ideas in a written document accompanying programming
projects
- Communicating ideas orally and in writing with instructional staff
and classmates during class activities
- Providing help rather than giving answers to classmates seeking
help
Course Philosophy
This course is designed to introduce concepts related to computer
programming and computer science. Many concepts are challenging
and take time and practice to master. It is essential to keep up with
the material. It's okay to struggle with the concepts, but
it is your responsibility to seek help when you are confused.
This is a programming course. Students almost universally report
that CSE142 is time-consuming compared to 100-level courses in other
disciplines. Much of the time is consumed by the unpredictable but exhilarating
activity of programming. You can't succeed without a commitment to spend
whatever time it takes to understand and complete the assignments. Students
average 10-15 hours a week outside of class time. And remember, this
is an average, so some of you will spend less time, some more time.
This is not a programming course. After an exam, students sometimes
remark, "I don't feel this exam fairly assesses my skill as a programmer."
And they are right! Programming assignments and exams measure different
skills and knowledge. CSE142 is about much more than just getting a
program to run; it's about fundamental concepts of computer science.
You must master these fundamentals and the accompanying technical vocabulary,
analytical, and design skills, as well as write beautiful and accomplished
programs.
Help and Communication: We expect you to have questions as you are
learning the material. The course instructional staff is here to help
you keep up with the material. You are welcome to attend office hours
of either instructor or any Teaching Assistant (TA). The full office
hour schedule is on the web. You may receive certain types of help from
classmates (see below about Collaborative Learning).
We encourage you to ask questions during lecture meetings and post questions
to the class discussion board. We will communicate ideas with each other
by posting messages to an E-Post bulletin board, which is linked from
the course website. Please use the bulletin board for all technical
questions and discussions, but please do not post more than a snippet
of code. Course staff members will monitor the discussion board and
will normally respond to questions within a day (if they haven't already
been answered by other members of the class). We will send email to
your UWNetID if we need to broadcast a message to everyone in the class.
Email messages are also archived and can be viewed on the web.
Collaborative Learning: CSE142 is a large class with around 400
students enrolled in the two lectures. One advantage of having a large
number of students is having 400 different ways of understanding the
course material and having 400 classmates to help you learn. We encourage
you to discuss freely the requirements and interpretation of homework
and projects, but you should discuss code only with your designated
partner. Any work that you turn in must be your own. Unacknowledged
copying or using parts of someone else's work, even if it has been modified
by you, is plagiarism and is not acceptable. When you work with
others on homework and projects, please acknowledge places where
you received help in your homework submissions.
An acceptable way to collaborate is to discuss problems and potential
solutions and then write/code the solutions on your own.
When giving help to other classmates, please do not
give them the answer. Instead, ask questions to learn of their understanding
and give conceptual explanations - this practice will help you master
the material yourself.
You will be engaged in collaborative learning activities during quiz
section each week as a member of a 4 to 5-person quiz section group.
These groups are designed to give you practice with new concepts and
help you learn how to communicate your ideas. Exceptions to these rules,
such as assigning partners to work together on large programming projects,
will be explicitly announced in the appropriate assignment or project.
Summary: In this course, the instructor's job is to guide you in
learning about computer programming and computer science. In additional
to traditional lecturing, we will have regular discussions and activities
during lectures and quiz sections. We expect your full participation
and readiness to learn at all class meetings. In return, we will do
our best to offer suggestions, activities, and explanations to help
you learn the material.
Assessment of Learning
We will assess your learning based on your submitted work, including
homework assignments, programming projects, project reports, quizzes,
exams, and in-class activities. Generally the assignments, projects,
reports, quizzes, and activities are your chance to learn, while the
exams are the main way we will assess what you have learned. Because
CSE142 has such a large enrollment, all homework, projects, and
project reports have fixed deadlines. No late work will be accepted.
Grading Scheme (subject to change): Course grades will be calculated
as follows, although the exact weights may change somewhat if appropriate.
Individual assignments, programming projects, and reports will be weighted
differently depending on level of difficulty and other factors.
35% - Homework, projects, and written material (such as reports)
15% - Midterm #1
15% - Midterm #2
21% - Final Exam
10% - Quizzes, all weighted equally
4% - Service and Participation
The mean of course grades is typically around 2.9. To get a general
standing in the course, compare your scores with the class mean. There
is no extra credit in this course.
Homework Assignments and Programming Projects: There will be
frequent homework assignments consisting of written questions and short
programming problems, some of which will require use of a computer.
These assignments are intended to help you learn the material. Most
homework assignments should be done individually by each student. Programming
projects will generally be done with a partner. Your partner will be
determined by the course staff and you will have a different partner
for each project. These projects will span up to two weeks and may involve
preparing reports, diagrams, and other written materials as well as
programs.
Each assignment will carry specific instructions about when and how
it is to be turned in. Some assignments and reports may be collected
in class or by email. Programming homework is generally turned in electronically
via the Web. There will be a special page with a form to fill out, and
a "receipt" page is sent back to your computer to verify that we received
the assignment. Work that is not turned in according to instructions
will not be graded.
Pick up graded written homework and exams from your TA in quiz section.
If you find any error in the grading, you must bring it to your TA's
attention within one week of when the item was returned.
Exams: Exams are intended to serve as learning tools in addition
to helping the course staff evaluate your mastery of concepts. Tests
and quizzes may include a mixture of multiple-choice, short-answer,
and programming questions. All tests are cumulative, but emphasize the
more recently covered material. There will be two midterm exams and
one final exam. The midterms will be given in-class during the regular
lecture hours. Midterms and exams are scheduled on the dates given on
the course calendar - any changes will be announced well in advance.
It is your responsibility to be present in class those days. Please
do not make plans which would prevent you from taking the exams.
The final exam will be held on the day set by the University, Wednesday,
June 9. It is highly likely the time of the final exam (but not the
day) will be different from the time currently listed in the UW final
exam schedule. An announcement will be made as soon as arrangements
are finalized. You must take the exams on the days when they are
offered; please do not make plans which would prevent you from doing
so.
Quizzes: Because it is essential to keep up with the material,
quiz sections and/or Friday lecture may include one or more quizzes.
If you keep up with the reading and attend lecture regularly, you should
have no problem with the quizzes. All quizzes will be graded on a simple
system, and all quizzes will count equally, regardless of length or
difficulty. No makeup quizzes will be given, but we will drop the lowest
score (percentage-wise) which could be a missed quiz.
Participation and Service: A small percentage of the course grade
comes from service and participation, defined as something which helps
you learn and helps the staff or potentially benefits the class as a
whole. We may throw out examples and suggestions as we go along. But
don't wait to be asked. Create your own opportunities, too.
More information about service and participation points.
Logistics
Prerequisites: There are no prerequisites listed in the course
catalog. However, we assume that you have met the admission requirements
for UW: three years of mathematics (geometry and advanced algebra),
two years of science, and four years of English. The course is not recommended
for students who are at a remedial level in English or mathematics.
We also assume familiarity with computers, files, folders, email, web
browsing, and the like. Previous experience in programming is not
a prerequisite.
Textbook and Materials: The required textbook for the course
is a special UW-only, spring 2004 edition of An Introduction to Programming
and Object Oriented Design using Java by Jaime Nino and Frederick
A. Hosch (using a previous quarter's edition is not recommended, as
page numbering and contents have changed.) Books are available for purchase
at the University Bookstore only. We ask that you read certain
chapters or sections before attending the accompanying lecture (see
the online course calendar for the latest updates to the readings).
Lectures will not be a replacement for the text; instead, lectures will
complement the presentation in the text.
CSE 142 is not a course built around a particular textbook. Don't be
surprised to find details that differ between the lecture presentations
and the textbook explanations and examples. The order of the topics
covered will also differ and additional material may be added. Linked
from the web you will find a short textbook by Ben Dugan. While not
a complete textbook, this book presents material in a way that is well
suited to CSE142.
Other reading includes:
- reading every message sent to the announcement mailing list
- reading every word of every assignment (and this can be a lot to
read!)
- mastering material on the lecture slides, including those that
are not presented in class
- mastering material presented in lecture which does not exist on
the slides or any printed form
- reading anything else that we might designate as required reading
(e.g., sample solutions, handouts)
Lecture Slides: Copies of lecture slides will be posted to the
course website, generally no later than the afternoon after the lecture.
We encourage you to print copies of the slides, look at them in advance,
and bring them with you to lecture so you can take notes. The slides
are not a substitute for attending lecture - there will be significant
material presented in lecture that is not included on the posted slides.
Course Website: Please familiarize yourself with the course website
as soon as possible. Updates to the schedule, important announcements,
and resources to help you learn will all be posted there. If you should
happen to miss class, be sure to talk to a classmate to find out what
you missed. The course website is not a substitute for attending
class - this is not a distance learning course.
Computer Labs: The Introductory Programming Laboratory (IPL)
for CSE 142 and CSE 143 is on the third floor of Mary Gates Hall (MGH
334). Computers in the labs run Windows and Java tools, plus usual web
browsers, mail, and other web tools. Course software is also installed
in some other public UW computing facilities, including the main lab
on the ground floor of MGH and the Odegaard Undergraduate Library. The
IPL is our home base, and we provide consulting support there. It is
also possible to work at home using the same software found in the IPL.
Instructions for installing the necessary software can be found on the
course web site - click on "computing at home".
Materials: You are responsible for keeping backup copies of your
work, either on your Dante account, floppy disks, or other media. Your
files are not retained on the lab machines. When you use a public
machine, be sure to log out or reboot when finished.
Course Administrator: Pim Lustig, Allen 126; 616-3225, cse142-admin@cs.washington.edu
(pl@cs.washington.edu). See Mr. Lustig for administrative matters related
to the course such as forms for registration, test scheduling conflicts,
picking up your final exam after the course ends, etc.
Computer Use Policy: Take the excerpts from the campus policies
seriously: "You must use all UW [computing] resources in strict accordance
with local, state, and federal laws. These laws cover such areas as
illegal access to computer systems, networks, and files; copyright violations;
and harassment issues... Software and information resources provided
through the university for use by faculty, staff, and students may be
used on computing equipment only as specified in the various software
licenses. Unauthorized use of software, images, or files is regarded
as a serious matter and any such use is without the consent of the University
of Washington... If abuse of computer software, images, or files occurs,
those responsible for such abuse will be held legally accountable."
Academic Misconduct: All worked submitted must be your own or
your team's (for projects completed in pairs). Unacknowledged copying
or using parts of someone else's program, even if it has been modified
by you, is plagiarism and is not acceptable! If you have a tutor or
helper from outside the course, that person cannot write any piece of
the solution for you. These rules are no different than the ones governing
original work and collaboration in an English or History class.
The University has clear guidelines for academic misconduct and the
staff of CSE 142 will be vigorous in enforcing them. We make use of
very effective automated tools for detecting similarities between homework
solutions. It is only fair that students receive credit for work they
do themselves and the assignments and projects are designed to help
students learn. Read the section on Collaborative Learning in the Course
Philosophy section of this document. If you are not clear whether some
form of collaboration is acceptable, please ask a TA or instructor first.
Course Format and Calendar
The class meets four days a week: three lectures on MWF, and
quiz sections on Thursday. On your own, you have homework to do, mostly
computer programs to design and debug. The latest version of the calendar
is on the course website. The course calendar lists the lecture and quiz
section topics, assigned readings, exams, and due dates for homework assignments
and programming projects. The calendar is always subject to change as
the quarter progresses.
|