Dr. Eric Berkowitz

 

Eric Berkowitz

Associate Professor

Assistant Chair, Department of Computer Science
and Information Technology

Director, Network Computing


Roosevelt University

Department of Computer Science and Information Technology

ROOSEVELT UNIVERSITY

COLLEGE OF ARTS AND SCIENCES

DEPARTMENT OF COMPUTER SCIENCE AND TELECOMMUNICATIONS

 

CST 376/476 -- Distributed Applications

 

Syllabus________________________________________ERIC G. BERKOWITZ



New video tutorials:   -- Video tutorials require a broadband connection and  the Macromedia  Flash plugin.

(These tutorials work best in Firefox but also run in Internet Explorer.)

-- Use of video tutorials is restricted to registered students in this class.  Access will be granted after the first day of class.

  1. Creating a first netbeans project

 

Office: 600F


Office Hours: TBA


E-mail:

eberkowi@roosevelt.edu --Please use a relevant subject line and put your FULL NAME in the body of any e-mail you send in order to distinguish it from the multitude of e-mail viruses.



Texts:

 

Java Network Programming Third Edition,  O’reilly

Recommened: Java How To Program Deitel and Deitel

 

Software
Java SE 6 and Netbeans


Description:

This course is intended to teach application programming on the Internet. Students will learn to fully exploit the web using directly programmed distributed applications.

 

Computer access:


Students may be given accounts on one or more CST computer systems. The use of these accounts is subject to the Roosevelt Network Users Policy and the CST Network Users Policy. Copies of the CST agreement will be distributed on the first day of class. Copies of the Roosevelt Network Users Policy can be received from SCT or from lab aids in the public access labs.

Description:

The course is intended to teach students about the Internet, World Wide Web and a Web application programming.

 

Format:

The class will be a combination of lectures, assignments and guided study, and project preparation. Homework and reading will be assigned each week. Students are required to expand upon what they learn in class, to ask questions, and to pursue independent study of web technologies. Quizzes may be given periodically to assess a student's assimilation of the course material. Students will be given a final project to be presented at the last class meeting of the semester.

 

Each student will be submitting several homework assignments during the semester as well as a final project. Each student's grade will depend upon meeting specific milestone dates during the semester. Due dates for the following will be assigned:

 

1.      Project Proposal.

2.      Project Design.

3.      Project Prototype.

4.      Self Progress Evaluation.

5.      Beta Demonstration.

6.      Complete Documentation.

7.      Project Submission.

 

Graduate students are required to investigate technologies beyond those discussed in the classroom and to incorporate them as a substantial enhancement to the functionality of their projects. This must be done under the guidance of the instructor. Graduate students will need to document the technology they have chosen and how it was integrated into the project.

 

Grading:

Homework: 20%, Quizzes: 15%, Midterm: 15%, Projects 50%

A student's grade for the class will be limited by his/her grade on the project.  For example:  A project with a grade of C will limit the student's grade in the class to be no higher than a C.

Letter grades are assigned according to the following mapping:
91-100: A, 81-88: B, 71-78: C; 61-68 D
90: A-, 89: B+, 80:B-, 79: C+, 70: C-, 69: D+, 60: D-

Attendance:

Regular attendance and participation is required. A student who is compelled to miss class for any reason must find out what he or she missed and acquire material from classmates. Missed tests and homework cannot be made up.

Graduate Students:

Graduate students will be expected to submit a project that incorporates elements reflecting self-study and independent research.  The project descriptions handed out will include a list of topics not covered in the classroom.  Graduate students will be expected to independently study one of these topics and to incorporate it into their project and its accompanying documentation. 

Deadlines and Due Dates:

Students are responsible for making sure materials are submitted on or before any due dates. Late work is not accepted. Students should submit the completed portion of any assignment by the stated due date. If you cannot be in class the day an assignment is due you must submit your work at an earlier time.

 Americans With Disabilities Act (ADA)

If you have a disability for which you are or may be requesting an accommodation, you are encouraged to contact the Office of Disabled Student Services, 310 Herman Crown Center, 312-341-3810, or e-mail nlitke@roosevelt.edu as early as possible in the term.

Academic Honesty:

Students are required to familiarize themselves with Roosevelt University's policies regarding academic honesty.

Students are expected to apply themselves and their previous experience and knowledge in this class. A student who does this will produce projects and homeworks that are uniquely his/hers and unlike those of any previous or current students. While students are encouraged to help one another, collaboration on assignments to be submitted for grading is prohibited and will be considered a violation of academic integrity unless the students involved have requested and received prior consent from the instructor.

 Depending on the severity of the violation, an instructor may fail a student  on the individual assignment or test, may lower the student’s grade in the  course, or may fail the student in the course. More details on the University's policies on academic honesty may be found in the Student Handbook.

Reading Instructions:

If you have read this far in the syllabus you are doing quite well. Unfortunately, each semester, several students submit work that is of lower quality than that which they are capable of submitting for no other reason that the fact that they did not completely read all of the instructions including any hints and guidelines at the end. No matter how complete, true, and explanatory an answer is, it only gets credit of it actually responds directly and completely to the question that was asked. Please! In all homework, assignments and exams, read all instructions and only then begin to work. After completing your work re-read the instructions to ensure that you have done all that was asked and in the manner specified. Rewrite the questions and instructions for yourself as a check-sheet and check off each section if you believe this will help.

Topics


The following is a tentative schedule and list of topics.  In the best interest of the students in the class it may be necessary to deviate from this schedule or list of topics during the semester.


In the following Table:


 In the following table JHP refers to the class text Java  How To Program.


Week 1

The Programming Basics


Topics:

  1. Introduction to the Neteans IDE

  2. Brief Overview of Web Programming Options

  3. Discussion of GUI Programming: OS-API, SWING, Browser

  4. Introduction to Java Programming  (Using NetBeans)

    1. A rational discussion of Java's merits and shortcomings, the reasons behind them, and its place among programming languages.  

    2. The Basics (what you already about programming but now in Java)

      1. Structure of a program.

      2. Required program conventions for this course

      3. Basic data types.

      4. References (Pointers...?)

      5. CBV/CBR

      6. "static"  What does it really mean?

      7. Output statements: println vs. printf 

      8. Standard streams in, out, err  (What you CS 1 teacher never told you)

      9. Ubiquitous control structures:

        1. if/then/else 

        2. do/while, while/do, for


Reading Material:

  1. NetBeans IDE Field Guide

  2. NetBeans Keyboard Shortcut Chart

  3. JHP Chapters 2,3,4,5



Week 2

Program Structure



Topics:

  1. The nature of a Java Program.  Cutting through the OOP hype.

  2. Classes and Instances

  3. Methods -- yes. They're just functions

  4. HTML Forms

  5. Return values, the "bit bucket", and required conventions for this course.

  6. Overloading - the truth about another over-hyped programming tool.

  7. CGI

  8. Exceptions:  What your CS 1 teacher should have told you about error handling

  9. String - The bread-and-butter of programming for the Web.

Reading Material: 

  1. JHP chapeters 3,6,8,13,29


Week 3

Topics:

  1. GUI's

  2. Event Driven Programming


Reading Material: 

  1. JHP chapeters 9,11


Week 4

Networking

Topics:

  1. Inet Address

  2. URLs

  3. Sockets

  4. Clients

  5. Servers


Reading Material: 

  1. JNP Chapters 7, 9, 10

Week 5

Threading and Efficient Networking

  1. Threads

    1. Extending the Thread class

    2. Implementing the Runnable interface

  2. Efficient networking with sockets and threads

References:

  1. JNP Chapter 5

  2. JHP Chapters 23, 24


Week 6

Summarization, Experimentation,

Project Assignment

Week 7

Midterm Exam

Week 8


Regular Expressions and Efficient Text processing

Topics:

  1. String Functions

  2. Patterns

  3. Matchers

  4. Reuse


Reading Material: 

  1. JHP Chapter 23

Week 10

UDP, Datagrams Proprietary Protocols

Topics:

  1. UDP vs. TCP

  2. Datagrams

  3. Application level validation

  4. VPNs

  5. Application level protocols


Reading Material:


  1. JNP chapter 13

Week 11

Ethical Issues

Topics:

  1. Hackers, Idiots and Evildoers

  2. Security

  3. Reliability

  4. Stability

  5. Data Validation

  6. Tainted Data

  7. Errors and Exceptions

  8. Keeping Your Errors to Yourself

  9. How to Loose a Client in 60 Seconds or Less


Week 12

Exploiting Web Server Services

Topics:

  1. URL Connections


Reading Material:

  1. JNP Chapter 15


Week 13

Security


  1. Firewalls

  2. Securing Applications

  3. Protocols

  4. Dealing with Breaches

  5. The Achiles Heal

  6. Tunnels -- Anthing=Everything

  7. SSL


Week 14


RMI and other Technologies


Topics:

  1. Any final project issues.

  2. What are distributed Ojects

  3. Corba

  4. RMI - managable remote object


Reading Material:

  1. JNP Chapter 18.

Week 15


Project Presentations