CALIFORNIA STATE UNIVERSITY, CHICO

Department of Computer Science


CSCI 15A Course Requirements

 

CSCI 15A-4,5,7,8 Programming and Algorithms: 1

3.0 Units Fall 1997

 

Instructor: John Zenor zenor@ecst.csuchico.edu

Office: OCNL 230, 898-4414 Department Office: OCNL 215, 898-6442

Office Hours: Tu, W, Th 11:00-11:50; Tu 1:00-1:50; Fr 11:00-12:00, by appt.

 

Lab Instructors: Mark Iakouchev barsik@ecst.csuchico.edu

Wiratchada Kershaw kershaw@ecst.csuchico.edu

Two hours of individual lab help are available, time to be announced

 

1. Course Time Schedule: TR 3:30 PM-4:45 PM AYRS 106

Activity-4: W 2:00 PM –2:50 PM OCNL 119

Activity-5: W 3:00 PM –3:50 PM OCNL 119

Activity-7: Th 1:00 PM –1:50 PM OCNL 120

Activity-8: W 12:00 PM –12:50 PM OCNL 120

 

2. Text: Required: How to Program C++, 1st Edition, by H. M. Deitel, P. J. Deitel

Reference for students without any programming experience:

The Beginner’s Guide to C++, WROX press.

The Beginner’s Guide to Visual C++, WROX press is a very good
reference if you are going to use Visual C++ on your home PC.

Computing Fundamentals, by Mercer, is the text used last semester. It has a very

good introduction to the use of classes and good programming design.

 

3. Costs which might be incurred during the semester:

One required text, optional reference books, occasional copied reference material; optional Visual C++ Compiler System, v4 or later, if you wish to program on your PC at home. A $35 lab fee is required for use of lab equipment in OCNL.

 

4. Prerequisites: One year high school algebra.

 

5. Evaluation Procedures:

 Midterm 1  15%
 Midterm 2  15%
 Final Exam  20%
 6-8 Programs  40%
 Homework & Quizzes  10%
 Total
 100%

 

All but one of the assigned programs must be submitted in working order to pass the course! Quizzes may be unannounced and may not be made up, but the lowest score (or one missing score) will be discarded.

 

Programs will be weighted by difficulty, with a total point value ranging from 20 to 150 points. The program grades will be computed as follows. Design, Style, Documentation 20%, Correctness 80%. Programs may only be turned in during the Activity session in which you are enrolled, withing the first five minutes of the activity session. 10% reduction in grade if the program is submitted after the first five minutes, 20% per week thereafter.

 

6. Additional Comments: You are being graded as individuals; you must do your own work. If you hand in a program containing code written by someone else, you and the other person will receive an 'F' in the course. If you have an illness or emergency resulting in missing a due date, quiz, or exam, you must present verifying documentation.

 

7. Additional Recommendations: Attend every class session, read ahead, get an early start on every program. If you can’t figure out how to get started on a program, or if you are unclear about some topic in class: ask questions!

 


CALIFORNIA STATE UNIVERSITY, CHICO

Department of Computer Science

CSCI 152 Course Requirements

 

 

CSCI 51A 1,2 Operating Systems Programming 3.0 Units Fall 1997

 

Instructor: John Zenor, zenor@ecst.csuchico.edu

Office: OCNL 230, 898-4414 Department Office: OCNL 215, 898-6442

Office Hours: Tu, W, Th 11:00-11:50; Tu 1:00-1:50; Fr 11:00-12:00, by appt.

 

Lab Instructor: Jake Chandler, jake@ecst.csuchico.edu

Two hours of individual lab help are available, time to be announced.

 

1. Course Time Schedule: TR 9:30 AM-10:45 AM OCNL 241

Activity-1: W 3:00 PM –3:50 PM OCNL 123

Activity-2: W 4:00 PM –4:50 PM OCNL 123

 

2. Required text: Operating Systems, 3rd Edition, by Silbershatz

Optional Reference: Operating System Fundamentals, by A. M. Lister, is a very good thin book covering operating system concepts from a data structures/implementation viewpoint.

 

3. Costs which might be incurred during the semester:

One required text, optional reference books, occasional copied reference material; optional Visual C++ Compiler System, v4 or later, if you wish to program on your PC at home. A $35 lab fee is required for use of lab equipment in OCNL.

 

4. Prerequisites: CSCI 51A, Assembly Language, CSCI 151, Data Structures

 

5. Evaluation Procedures:

 Midterm 1  15%
 Midterm 2  15%
 Final Exam  20%
 3 Programming Assignments  50%
 Total
 100%

 

All of the assigned programs must be submitted in working order to pass the course!  There may be minor errors in the programs, but they must at least work sufficiently well to demonstrate the point of the assignment.

Programs will be weighted by difficulty. The program grades will be computed as follows. Design 10%, Style and Documentation 20%, Correctness 70%. Programs may only be turned in during the Activity session in which you are enrolled, within the first five minutes of the activity session. 10% reduction in grade if the program is submitted after the first five minutes, 20% per week thereafter. No program will be accepted after the last lab session, which will be held the week before finals.

There will be four programming assignments. The first three will consist of 1-3 short programs. These assignments will exercise the UNIX system interfaces in a) File I/O, b) Processes and Threads, and c) TCP/IP Networking. The fourth program will be a longer program that will use simulation to show the effects of scheduling algorithms on the scheduling of periodic, real time processes.

 

6. Additional Comments: You are being graded as individuals; you must do your own work. If you hand in a program containing code written by someone else, you and the other person will receive an 'F' in the course. If you have an illness or emergency resulting in missing a due date, or an exam, you must present verifying documentation.

 

7. Additional Recommendations: Attend every class session, read ahead, get an early start on every program. If you can’t figure out how to get started on a program, or if you are unclear about some topic in class: ask questions!

 

Socket Programming examples: client.txt, server.txt, makeSocket.txt.


CALIFORNIA STATE UNIVERSITY, CHICO

Department of Computer Science

CSCI 397C Course Requirements

 

 

 

Course Number: CSCI 397C

Course Name: Object Oriented Programming and Implementations

Prerequisite: CSCI 152 or Permission on the instructor.

Class Dates and Times: Tues., Thurs., 2:00 - 3:15

 

Instructor: John Zenor

Message Phone: (Department Office) (916) 898-6442

Office Phone: (916) 898-4414

Fax Phone: (916) 898-5995

WWW Homepage: http://www.ecst.csuchico.edu/~zenor

E-mail Address: zenor@ecst.csuchico.edu

 

Required Texts:SMALLTALK, An Introduction To Application Development Using Visualworks, Prentice Hall, 1995, ISBN 013318387-4

Core Java, Gary Cornell and Cay S. Horstmann, Sun Soft Press (Prentice Hall) Second Edition, 1997, ISBN 0-13-596891-7

 

Required Software/Hardware: Small talk, available for almost all platforms. In class, we will use the Metrowerks Java development environment, but the Sun environment is available free of charge from www.sun.com. The Metrowerks environment is available at a considerable educational discount.

 

Course Description: Programming in Smalltalk and Java, focusing on the object-oriented paradigm, large class libraries, and the interactive programming environment. Knowledge of object-oriented concepts is covered, then the class will focus on programming in these two "pure" object-oriented languages. Beginning with Smalltalk, we will provide a survey of its environment, the language and the library. This is followed by Java, which is described as a simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, dynamic language. Java has an extensive library of routines for coping easily with TCP/IP protocols like HTTP and FTP. Java applications can open and access objects across the net via URL’s with the same ease that programmers are used to when accessing a local file system. Thus, the course covers programming for both single system and for distribution across networks. Comparisons will be made with C++.

 

Topics:

1. Object-Oriented Programming - an overview.

2. Smalltalk

a. Fundamentals

b. The Environment

c. Programming

3. Java

a. Fundamentals

b. The Environment

c. Programming

i. Distributed Programming

ii. Multithreading

4. Comparison to C++

 

Goals: Give a thorough coverage of the design, analysis, implementation and application of object-oriented techniques, both for single processor systems and for distributed networks.

 

Laboratory Projects: Four or five substantial program design and implementation assignments.

 

Evaluation Procedures: Programs 70%, Final 30%