The class meets five days a week: three times for lectures, and twice in
quiz sections. On your own time, you
have homework to do, mostly computer programs to design and debug.
Students almost universally report that CSE143 is time-consuming (but many of them also find it interesting!).
Schedule
Lectures: 2:30-3:20 pm MWF, GUG 224 Sections: 8:30 or 9:30 am, Tuesday & Thursday. Section
AA is intended for students who feel they have relatively less background. Exams and assignments are the same for all
sections. Topics, assignments, & exams: A day-by-day
schedule is online.
Staff: Check the online staff
schedule for instructor and TA office hours and e-mail addresses, as well as lab consultants' hours.
Please feel free to visit any of the staff in office hours, not just your own TA or
the instructor. You can reach the entire teaching staff at once by sending
electronic mail to cse143-ta@cs.washington.edu
.
Communication
The course web site is the primary source of information about CSE
143. You are
also required to have a UWNetID, and you must read email
at that address (or another that you tell us about). We will send email to that
address if we need to broadcast a message to everyone in the class.
Broadcast messages are also archived
on the course web site. In addition, everyone should read the newsgroup
uwash.class.cse143.bboard. This is a forum for discussions about the
class, and the course staff will monitor it and contribute.
Course Goals
CSE 143 is
a continuation of CSE 142. Its goals are similar, namely to teach the foundations of
problem-solving through programming. We will cover concepts of object-oriented
programming; software engineering principles and practice,
particularly abstraction and modularization; elementary data structures
(lists, queues, stacks, tree) and their associated algorithms; and an
introduction to the performance analysis of algorithms. To make the principles concrete,
we will study and use the C++ programming language.
Successful completion of the course will give you the tools needed to
construct substantial computer programs and the concepts needed to better understand computers and software in a
variety of situations. In particular, the material provides a good foundation to
students who continue in more advanced computer science and computer engineering courses.
Texts
Frank Carrano, Paul Helman, and Robert Veroff, Data Abstraction and
Problem Solving with C++: Walls and Mirrors, 2nd ed, Addison-Wesley, 1998.
Many past students have found the discussions and examples in this book to
be a valuable supplement to the course slides, assignments, and other
material. Appendix A is a brief C++ reference manual, which can be very
helpful as you are adjusting to C++.
[Recommended] CSE 143 Course Packet, available at Professional Copy and Print,
4200 University Way N.E. This packet contains all of the lecture slides from
last spring, and most of this quarter's slides will be similar. The packet does not contain old exams or other
supplementary information.
[Optional] At practically any bookstore you can find books about C++ aimed at all sorts of readers.
You might find that one or more of these books appeals to your unique learning style and
background.
Quizzes and Exams
There will be several quizzes, two midterm exams, and a comprehensive final exam. All tests are
closed book, closed notes, and calculators are not permitted, unless otherwise announced.
Tests
cannot be made up. Please be careful not to schedule travel or other activities that conflict with
the exams. Tests may include a variety of multiple-choice questions, short
answers, short essays, and programming problems. You should bring a #2 pencil to each
exam (we'll supply the blank Scantron forms if any are needed).
Quizzes will be held in sections and, occasionally in lecture. Midterm exams will be held in sections. The tentative dates
are Thursday, April 19, and Thursday, May 10. Midterm exams are 45 minutes long, to allow time to hand
out material before and collect it at the end of the exam. Final exam:2:30-4:20 pm
on Tuesday, June 5.It will not be possible to
take the final at any other time. The final exam may be held in a
room different from the normal lecture room.
Attendance
Attendance is expected at all quiz section meetings. You should also plan to attend
every lecture. Students who do not attend regularly should not expect
to as well as students who do. If you miss a lecture, talk to a friend who was present, and be sure to
check the Web for class messages or handouts that you may have missed.
Homework
Programming is one of those things you learn by doing. About five or six programming exercises
will be assigned throughout the course. Programming assignments must be done individually,
unless explicitly directed otherwise (see Academic Misconduct
below).
Homework Turn-In
Most programming assignments will be turned in via the Web. Electronic submission forms
will be available a few days before the due date of the assignment. You must print
out and hand in (on time) the receipt generated after your electronic submission in order
to get credit for the assignment. Parts of some assignments may be turned in by other
methods. Specific instructions will be available with each homework.
Generally, the deadline for electronic submission of assignments will be
Wednesdays at 10 pm. The paper receipt will be due at the beginning
of your quiz section
the following day.
Late Policy
Except in
truly exceptional circumstances, late homework will not be accepted.
Grading
Approximate breakdown of the course grade is as follows:
Programming Projects
30%
2 midterm exams
15%+15%
Final exam
30%
Quizzes & other
10%
If you find an error in our grading, you must bring it to your TA's attention within one
week of that item being returned in sections.
Computing Facilities
The Introductory Programming Laboratory (IPL) for CSE 142 and CSE 143 is
Mary Gates Hall, room 334.
Computers in the labs run Windows and Microsoft Visual C++ 6.0 plus the
usual browsers, mail, and other web tools. Visual C++ is also
installed in all public UW computing facilities, including the main lab on
the ground floor of MGH. The IPL is our home base, and we provide
consulting support there at certain times, but you
can work in any of the other labs. Please read the consulting
guidelines, which describe the services consultants provide, and what
you need to do to use their help effectively.
It is also possible to work
at
home. Any recent version of Windows and of Microsoft Visual C++ (even
the least expensive one) will be compatible with what is in the IPL.
You can use other hardware and software platforms at home, but it may not be
quite as easy to get help with them from us.
Materials
If you use the public labs, you will need a few 3.5" high-density (1.4 Megabyte) floppy diskettes
for your course files. They can be purchased at the computer section of the
University Bookstore and at many retail outlets. Back up your files
frequently!
Computer Use Policy
Some excerpts from the campus policies
follow. Take them 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 work turned in is expected to be your own. Although students are encouraged to study
together to understand general course content, each student is expected to produce his or
her own solution to the homework problems. Copying or using sections of someone else's
program, even if it has been modified by you, is plagiarism and is not acceptable. If a
tutor or someone outside the course is helping you, that person may not write any part of
any program for you, even if that tutor is provided by the University.
The University has very clear guidelines for academic misconduct and the staff of CSE
143 will be vigorous in enforcing them. Here is some further clarification: You may
not copy code from someone else; that is considered cheating. If caught cheating in this
or any other way, full disciplinary measures may be invoked, including a failing grade and
initiation of a cheating case in the university system. To avoid creating situations where
copying can arise, you should not mail or post or otherwise make your code available
electronically to anyone. You can post general questions about programming problems and
even pseudo-code snippets, but no actual C++ code taken from an assignment.
Now for the good news. It is educationally valuable to work with others on general ideas
for how to go about solving some problem, and to help others in general terms when they
are stuck. You may occasionally look at (but not copy down) others' code on screens, but
only to give them help in debugging. If in doubt about collaboration vs. cheating,
talk to the instructor.