Computer
Science Department
CS 202 - Computer Science II
Instructor: Roberta
E. Sabin
Office: Donnelly
Science 127C
J
Telephone: (410) 617-2562
FAX : (410)
617-2157
E-mail: res@loyola.edu
Black
Board Course Website: http://www.loyola.edu/blackboard/index.html
Visit the CS Department WebSite:
http://www.cs.loyola.edu
Class
Meets: MWF 10-10:50 (in KH006), R
Office
Hours: Monday, Wednesday, Friday: 11-11:50
Thursday:
Others
times by appointment. (I am usually here every weekday except Tuesday.)
|
One
must learn by doing the thing, for though you think you know it, you have no
certainty until you try, --Sophocles, 5th
century B.C. In
programming, it is not enough to be inventive and ingenious. One also needs
to be disciplined and controlled in order not be become entangled in one's
own complexities. --Harlan D. Mills, Forward to Programming Proverbs
by Henry Ledgard The
price to be paid for reliability is simplicity.
-- C. A. R. Hoare ...for
heaven's sake, place as much weight on useful intelligent comments as on the
elegance of the algorithms!...we have some programs of 5-15 million lines of
code that are barely commented and ...are unmaintainable...So
we have to build around them when we upgrade our systems, not knowing what
might break if we change them
--A Bell Systems' Programmer by E-mail Analytical
Engine has no pretensions whatever to originate anything. It can do whatever we know how to order it
to perform.
-- |
CS
202 Computer
Science II 4 credits
SYLLABUS
Catalog Description: Prerequisite:
CS201.
A
continuation of CS201. Emphasizes
structured programming skills and introduces more advanced programming features
such as object design and reuse, recursion, and simple data structures using a
high-level, object-oriented language.
Texts: Koffman and Wolz, Problem Solving with Java, Addiison
Wesley, 2002 (2nd edition).
Eastman, Roger, Lecture
Notes (unpublished manuscript).
Supplemental Software:
On
the CD included with the text and at http://wps.aw.com/wps/media/access/Pearson_Default/483/495288/login.html
Java documentation: http://www.mycore.de/library/jdk1.2.2/docs/api/overview-summary.html
jGrasp documentation: http://www.eng.auburn.edu/grasp/
Course Objectives:
Upon successful completion of this course,
the student should be able to:
1.
understand
to some degree the major theoretical principles underlying computer science
2.
understand
the major hardware and software components of a computer system
3.
understand
and use object-oriented design in software development and represent class relationships with simple
UML diagrams
4.
write,
test, and debug programs that utilize any and all constructs available in
standard Java
5.
have
some understanding of object-oriented programming and the use of classes in
Java
6.
be
able to create a simple GUI using Java constructs
7.
understand
and be able to use sorting, searching and recursive algorithms
8.
have
some understanding of time efficiency issues as they relate to choices of
algorithms
9.
enunciate
and intelligently respond to ethical issues related to computing
10. understand and implement
elementary data structures (list, stack, queue) using Java
What you can expect of me: You can expect that I
will come to class prepared and ready to help you learn. You can expect me to be enthusiastic (easy
since I LOVE computer science and teaching!), be knowledgeable, and keep the
class moving. You can expect me to be
available during my office hours and at other times that you arrange to see
me. Expect me to return graded work
promptly. You can expect me to treat you
respectfully.
What I expect of you:
I
expect you to come to class prepared to contribute to class—computing is an
active sport. You CANNOT learn it in the
passive mode. This means that you should have completed the assignment, done
the reading, and determined what you need help in understanding. You contribute to class by intelligently
questioning the instructor and offering further explanation to me and your
colleagues. I expect you to take responsibility for learning computer
science—you won’t be sorry. Further, I
expect you to treat every other member of the class (including me) with
respect.
Course
Outline of Class Lectures: Notice that each Monday and Friday class will normally concentrate
on programming
in Java. On Wednesday, the lecture will
be largely devoted to a “breadth-first” CS topic and preparation for Thursday’s
lab. CS Topics are denoted in italics. Thursday labs (not shown in the
schedule) are normally devoted to discussion of programming assignments and exercise
that will facilitate your completion of the programming assignments.
|
Class No. |
Date |
Major Topics
|
References[1] |
|
1 |
1/12 M |
Introduction to the
course Arrays (one
dimensional) and sorting |
Syllabus 5.1-5.4 |
|
2 |
1/14W |
Computer codes Discussion of Lab 1: Processing
an integer array |
E6.1 |
|
L |
1/15R |
Lab 1: Processing an
array of integers |
|
|
3 |
1/16 F |
Arrays of objects Multi-dimensional
arrays .
|
5.5-5.6 |
|
4 |
1/21W |
How information is coded
Discussion
of PA1 |
E6.2 |
|
L |
1/22 R |
Lab 2: PA1 work |
|
|
5 |
1/23 F |
Vectors and “wrapping”
|
5.7-5.8 |
|
6 |
1/26 M |
Class hierarchies and
inheritance
PA1
due
|
6.1-6.2 |
|
7 |
1/28 W |
Error-correction, encryption,
and compression
External files
|
E6.3 9.1 |
|
L |
1/27R |
Lab 3: Using external filesQuiz 1
|
|
|
8 |
1/30 F |
Polymorphism UML diagrams |
6.3 |
|
9 |
2/2 M |
Interfaces and sorting revisited |
6.4 |
|
10 |
2/4 W |
Computer Hardware Models |
E7.1 |
|
L |
2/5 R |
Lab 4: PA2 work
|
|
|
11 |
2/6 F |
Exceptions
Files in Java
|
8.1 8.2 |
|
12 |
2/9 M |
Using text files |
8.3 |
|
13 |
2/11 W |
Hardware: CPU
PA2 due
|
E7.2 |
|
L |
2/12 R |
Lab 5: CPU Simulator
and Discussion of PA3 |
|
|
14 |
2/13 F |
Binary files
Quiz
2
|
8.5 |
|
15 |
2/16 M |
GUIs and event-driven
programming Java GUI components |
7.1-7.2 |
|
16 |
2/18 W |
Creating a GUI
|
7.3 |
|
L |
2/19 R |
Lab 6: a baby GUI |
|
|
17 |
2/20 F |
Hardware: Circuits
|
E7.3 |
|
18 |
2/23 M |
Retrofitting a GUI to an application
|
7.4 |
|
19 |
2/25 W |
More GUI components
|
7.5-7.8 |
|
L |
2/26 R |
Test 1
|
|
|
20 |
2/27 F |
GUI wrap-up and final PA questions
|
|