CPSC 289 Sections 507-512,516-517:
Computer Science Concepts and Programming
Fall 1998


[Syllabus] [Announcements] [Bulletin Board] [Calendar] [Culture Activities] [Programs] [Useful Links]


Syllabus

Instructor: Prof. Jennifer Welch
Office: 415 H.R. Bright Bldg
Office Hours: Monday, Wednesday, 3:00--4:00 PM; Friday 10:00--11:00 AM; other times by appointment
Email: welch@cs.tamu.edu
Office Phone: 845-5076
Home Phone: 774-0680 (please don't call after 9:00 PM)

Teaching Assistants:
Jenny Walter
Office: 419D H.R. Bright Bldg
Office Hours: Tuesday, Wednesday, Thursday 11:00 AM -- 12:00 PM; other times by appointment
Email: jennyw@cs.tamu.edu
Office Phone: 862-4535

Srinivas Hanabe
Office: 335 H.R. Bright Bldg
Office Hours: Tuesday, Wednesday, Thursday 11:00 AM -- 12:00 PM; other times by appointment
Email: srinivas@cs.tamu.edu
Office Phone: 847-8772

Yash Gokhale
Office: 335 H.R. Bright Bldg
Office Hours: Tuesday, Thursday 2:00--3:30 PM; other times by appointment
Email: ygokhale@cs.tamu.edu
Office Phone: 847-8772

Prerequisite: Satisfactory performance on placement test during freshman conference, or CPSC 110 or equivalent.

Lecture: Monday, Wednesday, Friday 1:50--2:40 PM, HRBB 124.

Labs: All sections meet in HRBB 229.
Section 507: Tuesday, Thursday 8:00--8:50 AM (Jenny Walter)
Section 508: Tuesday, Thursday 9:00--9:50 AM (Jenny Walter)
Section 509: Tuesday, Thursday 10:00--10:50 AM (Jenny Walter)
Section 510: Monday, Wednesday 3:00--3:50 PM (Srinivas Hanabe)
Section 511: Monday, Wednesday 4:00--4:50 PM (Srinivas Hanabe)
Section 512: Monday, Wednesday 12:00--12:50 PM (Srinivas Hanabe)
Section 516: Tuesday, Thursday 6:00--6:50 PM (Yash Gokhale)
Section 517: Tuesday, Thursday 7:00--7:50 PM (Yash Gokhale)

Textbooks:

  1. An Introduction to Computer Science Using Java, Samuel N. Kamin, M. Dennis Mickunas, and Edward M. Reingold, McGraw-Hill, 1998.
  2. Computer Science: An Overview, Fifth Edition, J. Glenn Brookshear, Addison-Wesley, 1997.

Course Overview: I prefer to call this course "Introduction to Computer Science for CS and CE Majors." This course is not simply about how to program in Java. The main focus of the course is how to solve problems using computers. This type of problem solving requires understanding and applying the principles of abstraction and modularity. Especially as programs grow in size and complexity, the importance of good software engineering practices cannot be overemphasized. A secondary goal of the course is to introduce you to some of the fundamental problems and issues of computer science as an intellectual discipline, to convince you that computer science does not equal programming, and, I hope, to make you aware of the many fascinating aspects of computer science. These ideas are independent of any particular programming language. However, certain programming languages are more conducive to achieving these goals than others. We will be using Java as a tool to learn about computer science. Java has certain features, which we will learn about, that support my goals in this class. In addition, it is fun!

At the end of the semester you should:

Course Content and Tentative Schedule: The course will cover the following topics. The relevant chapters of the textbooks are indicated; more detailed reading assignments, including possibly supplemental readings, will be given later.

week of topic Kamin Brookshear
8/31 introduction; computer architecture Ch 1 Chs 0, 1, 2
9/7 program translation; basic Java Chs 2, 4 Ch 5
9/14 classes and methods Ch 5 .
9/21 iteration Ch 6 .
9/28 arrays Ch 7 .
10/5 more classes and methods; software engineering Ch 8 Ch 6
10/12 2-D arrays; numerical analysis Ch 9 .
10/19 strings and I/O Ch 10 .
10/26 algorithms . Ch 4
11/2 recursion Ch 11 .
11/9 inheritance Ch 12 .
11/16 interfaces and exceptions Ch 12 .
11/23 operating systems and networking . Ch 3
11/30 applets Ch 3 .
12/7 review . .

Assignments and Grading: All assignments will be announced in class and posted on the course web page. If you miss class for any reason, it is your responsibility to find out what assignments you missed.

Your grade will be based on four components:

No late assignments, including programs, will be accepted and there are no make-up exams. Discuss unusual circumstances in advance with the instructor.

Course grades will be assigned according to this scale:
A for 90% or above of the total points,
B for 80 to 89%,
C for 70 to 79%,
D for 60 to 69%,
and F for less than 60%.

Collaboration: Discussion of concepts with others is encouraged, but all assignments must be done on your own, unless otherwise instructed. If you use any source other than the text, reference it/him/her, whether it be a person, a book, a solution set, a web page or whatever. You MUST write up the solutions in your own words. Copying is strictly forbidden.

University Regulations, Section 42, define scholastic dishonesty to include acquiring answers from any unauthorized source, working with another person when not specifically permitted, observing the work of other students during any exam, providing answers when not specifically authorized to do so, informing any person of the contents of an exam prior to the exam, and failing to credit sources used. Disciplinary actions range from grade penalty to expulsion.

Back to beginning


Announcements

Back to beginning


Bulletin Board

This bulletin board is for communication between class members with questions and answers concerning home computers, etc. Back to beginning

Calendar

This calendar lists all due dates for assignments as they are known for Follow the links to get

Mon Tue Wed Thu Fri
8/31
Introduction
slides 1-5
NO LABS
9/1
NO LABS
9/2
Data Storage
slides 6-10
Read [Br] preface & pp 1-34
Read [KMR] preface
Quiz 1
9/3 9/4
Data Manipulation
slides 11-17
Skim [Br] pp 35-51
Read [Br] pp 58-69

Group Work 1 (not graded)
9/7
Program Translation & Java
slides 18-26
Read [Br] pp 184-218
Read [KMR] Chs 1-2
9/8
Lab 1
9/9
Intro to Java
slides 27-35
Read [KMR] Ch 4 (exc 4.5)
9/10
Lab 2
9/11
Intro to Java
slides 36-40
Quiz 2
9/14
Methods
slides 41-51
Read [KMR] Ch 5 (exc 5.9)
Homework 1 due in MW labs
9/15
Lab 3
Homework 1 due in TR labs
9/16
Objects and Classes
slides 52-61
Culture #1 due in MW labs
9/17
Lab 4 (Group Work 2)
Culture #1 due in TR labs
9/18
More Objects and Classes
slides 62-71
Quiz 3
9/21
Review of Objects and Classes
Group Work 3
Read [KMR] Ch 6 (exc 6.7)
9/22
Lab 5
9/23
Iteration
slides 72-81
9/24 9/25
Arrays
slides 82-86
Quiz 4

Mon Tue Wed Thu Fri
9/28
More Arrays
slides 87-89
Program 1 due
Program 1 solution
Read [KMR] Ch 7 (exc 7.5)
9/29 9/30
Linear Search & Insertion Sort
slides 90-93
10/1 10/2
Static Methods and Variables
slides 94-98
Read [KMR] Ch 8 (exc 8.5)
Quiz 5
10/5
More Static Variables and Methods
slides 99-100
Program 2 due
Program 2 solution
10/6 10/7
Software Engineering
slides 101-108
Read [Br] Ch 6
Culture #2 due in MW labs
10/8
Culture #2 due in TR labs
10/9
Exam 1 (review is here)
10/12
2-D Arrays
slides 109-117
Read [KMR] Ch 9 (exc 9.5)
10/13 10/14
Numerical Analysis
slides 118-125
10/15 10/16
Strings
slides 126-130
Read [KMR] Ch 10 (exc 10.7)
Quiz 6
10/19
Exceptions
slides 131-140
Midterm grades due
10/20 10/21
More Exceptions & Input
slides 141-150
10/22 10/23
Panel discussion on S/W eng w/ Benny Hauk and Chris Wurtz

Mon Tue Wed Thu Fri
10/26
Input and Output
slides 151-159
Program 3 due 9:00 AM (extension)
Program 3 solution
10/27 10/28
Algorithms
slides 160-170
Read [Br] Ch 4
Culture #3 due in MW labs
10/29
Culture #3 due in TR labs
10/30
More Algorithms
(see 10/28 for slides)
Quiz 7
11/2
More Algorithms
slides 171-177
Read [KMR] Ch 11 thru 11.4.4
11/3 11/4
Recursion
slides 178-190
11/5
Program 4 due 12 noon (extension)
Program 4 solution
11/6
Sorting
slides 191-208
Quiz 8
Q-drop deadline
11/9
More Sorting & Review
11/10 11/11
Guest lecture by Prof. Don House, Viz Lab
11/12 11/13
Exam 2 (review is here)
11/16
Inheritance
slides 209-217
Read [KMR] Ch 12 (exc 12.5)
11/17 11/18
More Inheritance
slides 218-226
Program 5 due 9:00 AM
Culture #4 due in MW labs
11/19
Culture #4 due in TR labs
11/20
Abstract Methods and Interfaces
slides 227-238
Quiz 9

Mon Tue Wed Thu Fri
11/23
Multiple Inheritance, O-O Design, Intro to Operating Systems
slides 239-249
Read [Br] Ch 3
11/24 11/25
Operating Systems
slides 250-254
11/26
Holiday
11/27
Holiday
11/30
More Operating Systems
slides 255-259
12/1 12/2
Networks and Intro to Applets
slides 260-271
12/3 12/4
Applets
slides 272-280
Read [KMR] Ch 3, 4.5, 5.9, 6.7, 7.5, 8.5
Quiz 10
12/7
More Applets
slides 281-293
Program 6 due 9:00 AM (extension)
NO LABS
12/8
last day of class
Program 7 cancelled
Culture #5 due
12/9
reading day
12/10
reading day
12/11
finals start
12/14 12/15
FINAL EXAM 3:30-5:30 PM (review is here)
12/16 12/17 12/18

Back to beginning


Culture Activities

There is a lot more to Computer Science than you will be exposed to through your normal coursework. The purpose of the CS culture activities is to give you an opportunity to learn about: some of the various research areas (by attendance at research seminars and reading technical articles), and some of the computer scientists that have made significant contributions to the field (by researching and writing a short biography).

During the course of the semester you must do at least 5 culture activities:

For each activity, you must prepare a one page typed report. Each report will be graded on clarity, organization, grammar and spelling. Report due dates are indicated in the calendar.
Seminar Attendance. To receive credit for this activity, you must attend the seminar. Your report must include

Acceptable seminars will be listed below as information becomes available. If you are interested in receiving credit for a seminar that is not listed, check with the instructor in advance. Acceptable seminars include (these links may be out of date and will be updated as information becomes available):


Technical Paper Report. To receive credit for this activity, you must find and read a technical paper in a computer science journal. Articles in the following two journals are usually at about the right level: Both are in the library.

Your report must include


Famous Computer Scientist Biography. To receive credit for this activity, you must research the biography of a famous computer scientist. Automatically acceptable computer scientists are ACM Turing Award winners. The Turing Award is the most prestigious technical award in computer science. It is given to individuals who have made contributions of lasting and major technical importance to the computer field. Your report must include

If you are interested in researching another computer scientist, check with the instructor in advance.


(Thanks to Nancy Amato for this page)

Back to beginning


Programs

To help you in the lab, we have developed this reference sheet that summarizes how to log on and off, how to edit, compile, run and print files, etc.

There is much more to writing a good program than writing a program that compiles and runs. Thus your programs will be graded equally on four components:

Back to beginning


Useful Links

Java

Computing-Related at TAMU

Visualization and Graphics

Careers and Mentoring

Back to beginning