
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 Beginners Guide to C++, WROX press.
The Beginners 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% Total100%
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 cant figure out how to get started on a program, or if you are unclear about some topic in class: ask questions!
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 cant 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.
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 URLs 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%