Shereen Khoja

Assistant Professor of Computer Science

Email: shereen@pacificu.edu

Phone: (503) 352-2008

Office: Strain 203C


CS360 - Client/Server Programming Using Java

 

Class Times: TTh 9:25 AM - 10.40 AM

Location: Strain 322

 

This course will introduce you to the basics of client/server programming using the Java programming language. You will be introduced to the basics and fundamentals of networks. You will learn how information travels across networks using TCP and UDP. As part of this course you will also learn how to set up and use the Apache Tomcat web server and the MySQL database management system. Since this course uses Java as the primary programming language, you will gain more experience in object-oriented programming.

 

Course Goals:

 

  • Gain experience in object-oriented programming.
  • Learn to mix and work with different technologies such as web servers, databases and XML.
  • Understand the concepts of client/server programming.
  • Learn the importance of automated testing.

 

Prerequisite:

 

  • CS250. You should understand the basics of object-oriented programming and be familiar with simple programming concepts such as loops, selection structures and arrays.

 

Textbooks:

 

  • Primary:
    • Java How to Program (Fifth Edition) by Deitel & Deitel Prentice Hall
  • Recommended:
    • Java Network Programming by Elliotte Rusty Harold O'Reilly

 

Tentative Grading:

 

  • 6 to 7 Programming Assignments: 30%.
  • Final Project: 10%.
  • 2 Exams: 35%.
  • 1 Final: 25%.

 

Percent Breakdown:

 

92-100 A   90-92 A-      
88-90 B+   82-88 B   80-82 B-
78-80 C+   72-78 C   70-72 C-
68-70 D+   60-68 D      
0-60 F            

 

Dates of Exams:

 

  • Midterm 1: Thursday, March 14, 2004.
  • Midterm 2: Thursday, April 15, 2004.
  • Final Exam: Thursday, May 13, 2004.

 

Course Notes and Assignments:

 

WEEK 1
 
Tuesday
February 3, 2004
Introduction to Java: html - pdf - ppt
  • History of Java
  • Java Runtime Environment (JRE)
  • Your first Java application
  • Java API
Chapter 2
 
Thursday
February 5, 2004
Java Applets: html - pdf - ppt
  • Examples of applets
  • Difference between applets and applications
  • Simple HTML
  • Your first applet
Chapter 3
Assign. 1
html - pdf - doc
WEEK 2
 
Tuesday
February 10, 2004
Methods: html - pdf - ppt
  • Using API methods
  • Defining and calling your own methods
  • A note on scope
  • Overloading methods
Chapter 6
 
Thursday
February 12, 2004
Object Based Programming: html - pdf - ppt
  • Abstract Data Types
  • Writing your own ADTs or objects
  • Member access (private, public)
Chapter 8
 
WEEK 3
 
Tuesday
February 17, 2004
Object Based Programming:html - pdf - doc
  • Composition
  • Garbage collection
  • Static and final
Chapter 8
Assign. 1 Due
Assign. 2
html - pdf - doc
Thursday
February 19, 2004
Inheritance: html - pdf - doc
  • Subclasses and superclasses
  • super and protected
  • Cloning
Chapter 9
 
WEEK 4
 
Tuesday
February 24, 2004
Polymorphism: html - pdf - doc
  • Understand polymorphism
  • Abstract classes
  • Nested classes
Chapter 10
Assign. 2 Due
Assign. 3
html - pdf - doc
Thursday
February 26, 2004
Review and more examples html - pdf - doc  
 
WEEK 5
 
Tuesday
March 2, 2004
Exception Handling: html - pdf - doc
  • Nested classes
  • Using try, throw and catch to handle errors
  • printStackTrace method
Chapter 15
 
Thursday
March 4, 2004
Midterm 1    
WEEK 6
 
Tuesday
March 9, 2004
Multithreading: html - pdf - doc
  • Concurrent programming
  • Life cycle of threads
  • Thread scheduling
  • Thread control
Chapter 16
Assign. 3 Due
Thursday
March 11, 2004
Multithreading: html - pdf - doc
  • Thread control
  • Safety and mutual access
  • Other thread issues
Chapter 16
Chapter 17
 
WEEK 7
 
Tuesday
March 16, 2004
Networking: html - pdf - doc
  • Files and streams
  • Networking with sockets
  • Networking basics (TCP, UDP, IP, ports)
Chapter 18
Assign. 4
html - pdf - doc
Thursday
March 18, 2004
Networking: html - pdf - doc
  • Networking basics (TCP, UDP, IP, ports)
  • Networking with sockets
Chapter 18
 
WEEK 8
 
Tuesday
March 23, 2004
Spring break    
Thursday
March 25, 2004
Spring break    
WEEK 9
 
Tuesday
March 30, 2004
Networking: html - pdf - doc
  • Multithreaded server
Chapter 18
 
Thursday
April 1, 2004
Multicast Java Servers
Chapter 23
Assign.4 Due
Assign. 5
html - pdf - doc
Coding Standards
htm - pdf - doc
WEEK 10
 
Tuesday
April 6, 2004
Writing Java Clients
Chapter 23
 
Thursday
April 8, 2004
Java Database Connectivity: html - pdf - doc
  • Relational databases
  • SQL queries
  • MySQL DBMS
   
WEEK 11
 
Tuesday
April 13, 2004
Java Database Connectivity: html - pdf - doc
  • Connecting Java with MySQL
  • Extracting database metadata
Chapter 24
Assign. 5 Due
Assign. 6
html - pdf - doc
Thursday
April 15, 2004
Midterm 2    
WEEK 12
 
Tuesday
April 20, 2004
   
Thursday
April 22, 2004
   
 
WEEK 13
 
Tuesday
April 27, 2004
Servlets: html - pdf - doc
  • Introduction to servlets
  • Setting up Apache Tomcat
  • Multi-tier applications
Chapter 24
Assign. 6 Due
Final Project
Thursday
April 29, 2004
 
   
WEEK 14
 
Tuesday
May 4, 2004
 
   
Thursday
May 6, 2004
Servlets:
  • Servlets communicating with databases
 
Final Project
html - pdf - doc
WEEK 15
Tuesday
May 11, 2004
Review  
Final Project Due

 

Policies:

 

  • Programs are to be submitted in the course drop box by 9.25 AM on the day in which the assignment is due.
  • Programs can be turned in 24 hours late with a penalty of 20%. Anything later will not be accepted.
  • The coding standards for this course are attached to the syllabus. You must adhere to these coding standards on every assignment to receive full credit.
  • No early or late exams/finals will be given.
  • No incompletes will be given.
  • The cheating policy is defined in Pacific Stuff & the Pacific Catalog as well as the Academic Policy that each of you signed upon entering Pacific University. Be sure you read or reread this policy carefully. All code written for CS360 is to be an original design and an original implementation. The Web, textbooks, and any other references are simply references for you. Copying source code from any source is prohibited. Further, source code is not to exchange hands in any form or by any medium except when sending your solutions to the instructor. It is OK to share high level ideas during the design phase, help someone in the class fix a bug occasionally, share information dealing with OS issues, debugger issues, in general, development issues that do not involve code writing.
  • All code in any form generated from this course becomes the intellectual property of Pacific University. You may not share this code with anyone without obtaining written permission from Pacific University.
  • Neither computer failure, software failure, nor lack of computer access are accepted as excuses for late programs; therefore, start work on the programs as soon as they are assigned, don't put them off until the last minute. Further, corruption of programs due to bad disk media is also not accepted as an excuse for late programs; therefore, always keep a current backup of all programs on a separate disk.
  • The instructor reserves the right to raise or lower a student's grade based on class participation and attendance.
  • I do not want to hear any electronic devices go off during lecture; therefore, make sure you silence these devices before lecture starts.

 

Important Dates:

 

  • February 13: Last day to add and drop courses.
  • March 22-26: Spring Break.
  • April 9: Last day to withdraw from courses.
  • April 15: Final Exam for CS130.
  • May 11: Last day of class for CS230.
  • May 12: Reading Day.
  • May 13: Final Exam, Thursday 12:00 PM - 2.30 PM.