Computer Science Department

Loyola College

 

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 9:25-10:40 (in DS121)

 

Office Hours:      Monday, Wednesday, Friday:   11-11:50

                                                                Thursday:  10:50-12:15  

            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.

                                                                                                                                                                                                            --Ada Auguata Byron, 1843

 

 

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 files

Quiz 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