Computer Science Department

Loyola College

 

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 10:50-12:05 (in DS121)

 

Office Hours:      Monday, Wednesday:   1-3

                                                                Thursday:  12:30-1:30  

            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.

                                                                                                                                                                                                            --Ada Augusta Byron, 1843

 

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 Bartlett Publishers, Sudbury, MA, 2005.

                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