Instructor | Announcements | Course Info | Class Material | Homework Project | Grade | Related Links


Comp Sci 151

Object-Oriented Programming

Spring 2001

Department of Mathematics and Computer Science San Jose State University




Richard Sinn
Office Hours:
After class, by appointment or email only
SCI 311



Dec 19, 2000: Complete Misc course information

Oct 25, 2000: Initial Creation.

Course Information

In this course, we are going to cover concepts and techniques of object-oriented programming. "Classic" Object-Oriented concepts such as objects, classes, methods, inheritance, polymorphism, etc will be covered. The stress of this course will be exploring ways of using object-oriented programming in Internet and Web programming. We will cover client-side Java web programming and server-side Java web programming. Comparison of object-oriented languages such C++ vs Java and Java vs JavaScript will also be covered..

Official Course Position: "The prerequisites to this course will be monitored, and instructors are authorized to drop students at any time should it be determined that all prerequisites has not been met." "As a condition for enrollment, students are required to sign a statement that they have met all prerequisites and accept the condition that violation will subject them to instructor drop and to disciplinary action." The statement in this course will be homework 0 sent my the student. 

Also, Math and CS department staff will prepare a database of all students who have completed CS 146 with a grade of C- or better. After Census day (4 weeks into the semester) the staff will inform instructors which students in their classes have not met the CS146 prerequisite. All students that do not meet the CS146 prerequisite will then be dropped from the course. 

In other words, if you DO not meet CS146 prerequisite ... DROP THE CLASS yourself.


Approach Of the Class

This class will be a survey of Object-Oriented Programming in the Internet. We assume that students will have a C++ or Java background. In other words, students do know some programming before they start. OOP topics will be covered in the beginning of the class. Then, more advanced Object-Oriented Web Programming will be covered. Advanced topics included Java Swing, Java Applet, Java Servlet and Java JSP programming.  Students will be working on four homework projects in groups of two through out the semester. The homeworks will range from simple OO "Hello World" program to complex Java web application/applet. Forming student groups is the responsbility of the students. At the end of the semester, students have to do a group presentation on selected topics. Topics will be announced in class.

At the end of the course, students will learn the best practice of Object-Oriented programming and how to apply OOP in web programming.

Grading: Apart from the four homework projects, there are a mid-term exam and a final exam. Exams might be take-home. The weightings for grading are: Hw1: 10%, Hw2: 15%, Hw3: 15%, Hw4: 15%, Presentation: 15%, Midterm: 15% and Final Exam: 15%.

No Late Assignment Submission


Class Material

Lecture Notes

Reading material will be online on this web site before every lecture. Please email or if you experience any download problem.






Object Oriented Programming in the Web

Java Block

Jump Start with Java

Jan 25: Thu:    Introduction (Homework 0 and For people who want to add)

Jan 30: Tue:    Java overview


Object-Oriented Programming Concept

Feb 1: Thu:     Java fundamentals

Feb 6: Tue:     OOP and Basic Data Structure

Feb 8: Thu:     Objects and classes

Feb 12: Mon: Last Day to Drop Courses w/o an Entry on Student's Permanent Record.


Java and Web Server

Feb 13: Tue:   Inheritance and interfaces

Feb 15: Thu:   Basic Java Networking

Feb 19: Mon:  Last Day to Add Courses & Late Register.


Java Client Programming

Feb 20: Tue:   Java Client and Server Using Sockets  (Homework 1)

Feb 22: Thu:    Swing Part I

Feb 27: Tue:    Swing Part II (Homework 1 Due

Mar 1: Thu:      Java GUI Part I, Java GUI Part II (Homework 2)

Mar 6: Tue:      Java GUI Introduction,

Mar 8: Thu:      Take Home Mid-term (No Class)

Mar 13: Tue:    Events and Listensers

Mar 15: Thu:    Applet


Java Server Programming

Mar 20: Tue:    Thread Example, JDBC

Mar 22: Thu:    Java Topics (Homework 2 Due) (Homework 3)

Mar 27: Tue:    Spring Break

Mar 29: Thu:    Spring Break


C++ Block

A Spin with C++

Apr 3: Tue:       Getting Started and Overview


C++ Basic

Apr 5: Thu:       Loops, Branches, File Input/Output

Apr 10: Tue:     Richard out of town at RSA conference (No Class Today)

Apr 12: Thu:     Data Structure, Functions and Programming Modules (Homework 3 Due)

Apr 17: Tue:     Pointers, Objects and Classes



Apr 19: Thu:     Friends, Operator Overloading  
                        (Last day deadline for submitting presentation topics, no credit after this)
                        (Homework 4)

Apr 24: Tue:     Inheritance - The Is-A Relationship
                        Inheritance with Virtual Functions, Inline Functions

Apr 26: Thu:     No Class

May 1: Tue:      No Class

May 3: Thu:      JNI Programming
                        (Submit your presentation soft copy by the end of today)

May 8: Tue:      Classroom equipment blew ... No class.

May 10: Thu:    Student Presentation (Attendance is required) (Homework 4 Due)

Group Name


Li Lu, Sammy Chu Java / C++ Comparison
Laurindo Veras, Am khan C-sharp (C#)
Siu and Carl Ruby (a true OO language (where every thing is an object) created by Yukihiro Matsumoto in Japan, released to public in 1995)
Namon Nuttayasakul, Myat Min Visual Basic vs Java
Brian Oh, Ann Win Sather vs Java (Sather is an OOP language)
Elisa Chong Why J++ Failed?
Frankie Ma and Karen Chow Java Applets
Peter Nysen Object Oriented Design (Good and Bad Programming Practices)
Kai Tai Pang and William Sze Objective C


May 15: Tue:    Student Presentation (Attendance is required

Group Name


Siu and Carl Second Part of Ruby (Demo)
Jennifier, Ching-Ching SmallTalk
Andy Zhao and Carlos Taina Ada and Java
Christine Liu and HsiuLing Hsieh Java Servlet
Liem Do and Jesslyn Bui Object Oriented Databases (The presentation will be about OODBMS systems in general but will also give examples of some that are currently being used in industry at the moment.)
Alex Ivanov, Ananth Prasad JSP
Norman Wong EIFFEL
Afshin Tiraie, Hienvinh Nguyen JavaScript
Jimmy Wu-hsun Chan Delphi
Svia Natarajan Object-Relational Mapping Tools


No Final



Homework Project

There are four to five homework projects in this class. Students will have to work in a group of two in doing these homework projects. The homework project will range from OO "Hello World" program to fairly complex Java applet or Java application.



Email to check your grade if necessary.



Cheating Policy

In short, if you cheat in any form in any assignment ... you get an F. The department consider cheating to be a serious violation. You must do your own work on all assignments. That is, do your own homeworks, mid-term and final exam. For group project, all the work has to be done by your OWN group. Do not try to download "free code" from the Internet and hand in as a project. WE WILL FIND OUT. Do not share your work with others. Any student who receive an F for cheating will be reported to the Office of Student Affairs for Academic Dishonesty. In other words, there will be a permanent record staying that you cheated. No, I do not want to do that. So DO YOUR OWN WORK and EARN your grade.



Related Links

Richard's Recent Articles

Instructor | Announcements | Course Info | Class Material | Homework Projects | Grade | Related Links


Copyright 1996-2001 OpenLoop Computing. All rights reserved.