Computer
Science Department
CS 201 - Computer Science I
Instructor: Roberta
E. Sabin
Office: Donnelly
Science 125E
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: 1-3
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 Communicating
what the code is supposed to do is more important than having it work right
because someone is going to have to change it late. --Carl Powell, Analytical
Engine has no pretensions whatever to originate anything. It can do whatever we know how to order it
to perform. -- |
CS
201 Computer Science I 4
credits
SYLLABUS
Catalog Description: Prerequisite:
none
A general survey of the
major areas of computer science including theory of computation, elementary
digital logic, programming languages, artificial intelligence, common
application software, ethical issues in computing, and software design. Introduces elementary structured programming,
including top-down design, functions, loops, and arrays. First course in the major’s sequence.
Texts: Anderson,Julie
and Hervé Franceschi, Java
5 Illuminated, Jones and
Eastman, Roger, Lecture
Notes (unpublished manuscript).
Supplemental Software:
Java documentation (from Sun): http://java.sun.com/j2se/1.3/docs/api/
jGrasp download site and documentation: http://www.eng.auburn.edu/grasp/
Java tutorial: http://chortle.ccsu.ctstateu.edu/CS151/cs151java.html
(slow, methodical, and very comprehensive)
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
the purpose and structure of software and the steps in the software lifecycle
4.
understand
and use top-down design in program development and graphical representations of
that design
5.
understand
and use object-oriented design in software development and represent class relationships with simple
UML diagrams
6.
write,
test, and debug programs that utilize some constructs available in standard Java
7.
have
some understanding of object-oriented programming and the classes of the Java
API
8.
enunciate
and intelligently respond to ethical issues related to computing
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 every 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 classmates.
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. Breadth-First
Topics are denoted in italics. Thursday labs are normally devoted to discussion
of programming assignments and an exercise that will facilitate your completion
of the programming assignments. The Thursday extended period is also used for
testing.
The schedule may be changed as need arises.
|
Class No. |
Date |
Major Topics
|
References[1] |
|
1 |
9/7 W |
Introduction to the
course B: Introduction to computing |
Syllabus E1.1 |
|
L |
9/8 R |
Introduction to Java Lab 1: using jGRASP for
a first application |
|
|
2 |
9/9 F |
Discussion of Lab 1 Introduction to Java |
1.4-1.5 |
|
3 |
9/12 M |
Storing data
and performing operations
|
2.1-2.3 |
|
4 |
9/14 W |
B: The history of computing |
E1.2
|
|
L |
9/15 R |
Discussion of PA1 Lab 1: a math
application |
|
|
5 |
9/16 F |
More on arithmetic
expressions and operations |
2.4 |
|
6 |
9/19 M |
Object-Oriented
Programming: data fileds and methods PA1 due |
3.1-3.4 |
|
7 |
9/21 W |
B: Software development |
E 5.1 |
|
L |
9/22 R |
Lab 2: Using classes |
|
|
8 |
9/23 F |
Using classes
|
The Java API |
3.6-3.7 |
||
|
9 |
9/26 M |
More on Java classes Intro to the JApplet class |
3.7 4.1-4.2 |
|
10 |
9/28 W |
B: How data is stored |
E6.1-6.2
|
|
L |
9/29 R |
Lab 3: Creating a
simple applet |
|
|
11 |
9/30 F |
Using Graphics
methods |
4.3-4.4 |
|
12 |
10/3 M |
Making decisions:
selection |
5.1-5.2 |
|
13 |
10/5 W |
B: Data correction, encryption, and compression PA2 due |
E6.3 |
|
L |
10/6 R |
Lab 4: Random number
generation |
|
|
14 |
10/7 F |
More on if structures |
5.3-5.5 |
|
15 |
10/10 M |
Flowcharting, control
flow, and testing |
5.6-5.9 |
|
16 |
10/12 W |
Discussion of PA3 |
|
|
L |
10/13 R |
TEST 1 |
|
|
no class |
10/14 F |
Mid-Semester Break
|
|
Second Half
Class Schedule
|
17 |
10/17 M |
B: Encoding, Decoding, and Compression Final Discussion of
PA3 |
E 6.3 |
|
18 |
10/19 W |
PA3 due Test review |