|
|
4 Credits 4 NS,
Quantitative Proficiency
- Lecture (everyone attends), Section
-01: M-W-F 9:00AM - 9:55 AM, King 243
- Lab, Section -02: Monday 1:30PM - 4:30
PM, King 201
- Lab, Section -03: Tuesday 1:30PM - 4:30
PM, King 201
Instructors:
Stephen
Wong King 223A, x8386 Office Hours: (See the instructor's home page.)
John Karro King 223C,
x8697 Office
Hours: (See the
instructor's home page. )
Antonio GarciaLangston 367,
x5037 Office Hours: TBA
Course Description:
Computer Science comprises a wide range of subfields dealing with
computers and computation, united by common themes of design and
abstraction. This course is the second of a two-course sequence in which
you will become familiar with those concepts that apply universally
throughout computer science. You will also develop skills in
programming, including principles of algorithm and data structure design
and analysis.
The use of object-oriented programming techniques in Java will
continue, with a shift of focus towards the study of common data
structures. Object-oriented architecture and design will still be
stressed. In addition, topics such as concurrency and remote
method invocation will be covered.
Course Textbooks
As there is no required textbook
for this course plus the heavy use of code implementations not found in
standard texts, students will be unable to complete the course without
daily class attendence.
Highly Recommended
:
- Gamma, Erich, Helm, Richard, Johnson, Ralph,
and Vlissides, John, Design Patterns, Elements of Reusable
Object-Oriented Software, Addison Wesley, 1995.
The bible of design patterns, a must-have for anyone serious about
object oriented programming.
- Bailey, Duane, Java Structures: Data Structures for
the Principled Programmer
, WCB/McGraw-Hill, 1999. ISBN
0-07-289179-3 A nice compact book, though our
implementations of the data structures will be considerably different
than those presented by Bailey.
- Budd, Timothy, Understanding Object Oriented Programming
with Java, updated edition, Addison Wesley, 1997. ISBN
0-201-61273-9 A nice book that focuses on OO than Java
syntax.
- Eckel, Bruce, Thinking in Java, 2nd
ed., Prentice Hall PTR, 1998. ISBN
0-13-659723-8 Good OO treatment, with a little more
detail on syntax than Budd's book. The full text is
available as a free download from www.bruceeckel.com.
- Flanagan, David, Java in a Nutshell, 2nd
ed., O'Reilly,
1997. ISBN 1-56592-262-X A great, though terse, Java
reference. This is the one you'll want in your
backpack.
- Arnold, Ken, and Gosling, James,
The Java
Programming Language, 2nd ed.,
Addison Wesley, 1997. ISBN 0-201-31006-6 The
definitive reference for the Java language written by its
creators. The final word on Java.
Also Recommended:
- Fowler, Martin; Scott, Kendall;
and Jacobson, Ivar, UML Distilled: Applying the
Standard Object Modeling Language, Addison Wesley,
1997. ISBN 0-201-32563-2. Useful for learning
how to fully use UML diagrams.
Online Course Information, Syllabus, and
Assignments
Information about this course, including
syllabus and all lab assignments is be placed online as part of
the Third Stream Computing Learning Center. The server is
accessible from any Netscape WWW browser at http://exciton.cs.oberlin.edu/cs151
Attendance:
ATTENDANCE AT ALL MEETINGS IS
MANDATORY! Learning computer science is an
interactive process. There will be much material that is
covered in class that is not explicitly stated in the texts.
Both lectures and labs will involve many activities that cannot
be duplicated by outside of class. Note below that attendance
and participation by the student comprises 10% of the final
grade!
Lecture
Meeting
All students must attend
the thrice weekly lecture meetings held in King 243.
Lectures will introduce all the
topics. JUST READING THE TEXTS AND/OR WEB SITES
WILL NOT BE SUFFICIENT TO COVER THE MATERIAL!!
Student participatory activities
will also be a major components of these meetings and is an integral
component of this course.
Lab Meetings
Each week each
student must participate in a full three hour lab session in
one of the computer labs in King Building. These
lab sessions will introduce new material as well as
reinforce material from the lecture meetings. The process
will be for the instructor to explain something briefly and
have the lab group do it, explain something else briefly and
then have the lab group try to do that. The labs are
designed to exploratory and require careful deductive
thinking and strong communication with your peers. The
labs are not "cookbook" and, at times,
deliberately include parts that "don't
work." Trouble shooting your system is a valuable
skill to develop. The technical matters demonstrated
will be those expected of you in the weekly assignment, for
which the lab is meant to prepare you. In some cases you
will be able to begin work on the assignment already during
lab, as part of the interactive demos and hands-on process
of the lab meetings.
As this is the second half of the introductory computer science
class, the level of detailed instruction in the laboratories will be
significantly less than that of the first semester.
Students will be expected to be able to design and write the
graphical test programs required for the labs.
ALL STUDENTS MUST HAVE A WORKING CAMPUS E-MAIL
THE FIRST DAY OF LAB! SEE THE
COMPUTER CENTER STAFF IMMEDIATELY IF YOU DO NOT HAVE THESE
YET.
Assignments
- There will be approximately one lab
assignment due each week of the course. The lab meetings, as
mentioned above, will introduce new material interactively in
preparation for completing the assignment. Lab assignments are often deliberately too
long for completion during the weekly assigned lab meeting. What
is not finished during the lab session constitutes homework.
There will also be assigned readings in the course
textbooks. Homework is due no later than midnight before
the next lab day.
Grading (subject to change)
|
Attendance and Particpation |
10% |
|
Homework |
40% |
|
In-class Exams |
30% |
|
Milestones |
10% |
|
Final Project |
10% |
-
Late Assignment
Penalty Policy:
5% off per day
late.
Exceptions only if the
instructor is contacted
before the
due date.
ALL ASSIGNMENTS AND EXAMS MUST BE
COMPLETED. ANY MISSED ASSIGNMENT WILL GENERATE AN
AUTOMATIC "NE" FOR THE ENTIRE COURSE.
Getting Help
- If, after attending class, doing assigned readings, and attending labs,
you still are having a problem with some technical part of the course,
you are encouraged to make an appointment with one of the tutors. You can
make such appointments either in person or by
sending an email message and, in the subject
line, marking the message for the specific tutor you want to get in
contact with. If a number of persons ask about the same matter,
the tutors may schedule a group meeting. The tutors will not have time,
however, to lead you carefully through an entire lab assignment each
week. If you need this kind of help, please come to me and we will
discuss it and perhaps get you a tutor from the office of Student
Academic Services. Never underestimate the value of asking your
peers!
-
-
-
Course Tutors:
-
You are encouraged to e-mail
questions of a technical nature to (or otherwise contact)
our course tutors. We will try to arrange it so that one of
the tutors will answer accumulated messages sometime during
the noon hours and another one of the tutors will field
questions in the middle of the evening.
-
-
Jeff Walker and Ken
Lin are the course graders/tutors/lab assistants.
- They can be reached by
sending an email
message.
Computer Disks
- You will probably need to buy one or more boxes of 3
1/2" high density PC-compatible computer data disks. You should
bring at least one disk with you to every lab session just
in case you do not want to store everything you work with
on your Unix Web account or student LOCKER space. You are in
particular need of a data disk at the first several labs of the
semester.
-
|