CSCIE 160 Java For Distributed Computing
Spring 2010 Syllabus
CSCIE160 Video Page

Lecturer: Charlie Sawyer

Last Modified: Monday, 08-Feb-2010 17:35:42 EST
The complete homepage for the Fall 2009 offering of this course can be found at   indexFall2009.html.

Monday, February 8th. Agenda for Tuesday lecture (9/22):

From last week's lecture:

Monday, February 1st. Saturday, January 30th Agenda for 2nd lecture:

Click here to jump down to older postings: older posting


Highlights

First, beginning students should read the course syllabus:

The written lectures are all available on line through this home page. This course is available through distance education. As the term progresses the video lectures will be published on a weekly basis. The first two lectures are available without credentials. For a short time (late December/early January) the first two lectures will remain on line. [CSCIE160 Video Page]

I recommend that you read

This will explain the unorthodox views of the lecturer on the significicance of lectures as live, public events, as opposed to printed essays.


Each student will be assigned to a Teaching Fellow (TF). If you live close enough to attend on-campus section meetings you will be assigned to a TF who will hold weekly section meetings, on a day to be determined at the start of the term. There is no plan to video record section meetings.


Lecture Topics
  • The O—O Revolution/Intro to Java
  • Classes and Packages
  • Inheritance [Briefly])
  • Exceptions
  • Inheritance — The Details
  • Cloning–The Semantics of Object Copy In Java
  • package geoim–A Modest Family of 2-D Geometry Classes
  • Distributed Computing–First Steps
  • Distributed Computing I
  • Distributed Computing II
  • Distributed Computing III
  • Distributed Computing IV
  • RMI Distributed Computing
  • Threads
  • Corba Distributed Computing
  • A Brief Guide To Corba Programming
  • Corba Version of Auction application
  • Event Driven Programming
    • package babysim
    • Applying filters to event driven programs. package stockexchange
      Note: A new README explains why this application is a good illustration of server-side Java. Many say that this is the real future of distributed computing, viz. pushing as much application logic as you can onto the server side of the action.
  • Distributed Family Foo
  • Java Native Interface (JNI):
  • Anonymous Classes
  • Designing a singleton class
    Homework

  • Java Programs and Resources


    Older postings:

    Monday, January 25th.

    A commericial IDE that has won the approval of advanced Java developers is IntelliJ IDEA from JetBrains. JetBrains has granted students in this course a free license for the product which runs though September 1, 2010. License keys are found in IDEA for students of this course. This information is provided as a convenience. Use of Idea is not required of students in this course.

    Saturday, December 26, 2009    One theme that will be emphasized over the course of the term is this: The twin enemies of good software are complexity and the impulse to be clever. The failure to manage these two sofstware traits is behind the story of the biggest software failure in history, the collapse and abandonment of the $170 Million Virtual Case File system of the FBI. The story is told here in two articles:


  • Lateness policy. I struggle with this issue every time I teach a software course. Deadlines are always somewhat arbitrary and I have a deep-seated aversion to penalizing people for missing a deadline. Any software manager that told his/her developers that they would be penalized 5% of their salary for every month their software was delivered late, would soon be recruiting a new team of developers. Yet the real world has deadlines. If you are two years late in releasing your software, your competitors will probably have a seasoned product in its second or third release and your product will be still born. In our case the Extension School deems that beyond a certain date students may not submit work for their courses. Another practical concern is the impact of a generous lateness policy on the Teaching Fellows. It is not fair to the Teaching Fellows to expect them to grade an entire semster's work all submitted on the drop-dead-date. Taking all these conflicting facts and opinions into account I have arrived at the following policy on late homework submission:
    • Homeworks #1, #2, #3 may be submitted up to four weeks after their due dates without lateness penalty.
    • Homeworks #4, #5 and #6 may be submitted up to two weeks after their due dates without lateness penalty.
    • The project must be submitted on time, unless you have applied to the Extension School for an Extension Of Deadline.
    • You may not apply for an EXT without completing homeworks #1, #2 and #3.
    • Beyond these four and two weeks extensions the Teaching Fellows will use their discretion about grading work. Be advised that the Teaching Fellows may refuse to accept work after these additional time periods have elapsed.
  • Non-Credit Status. If you register for non-credit your Teaching Fellow will evaluate your homework, give you comments and advice, and assign a grade to your work. However, at the end of the course you will receive a grade of N/C from Harvard Extension School, not a letter grade. Some employers who reimburse students for their tuition costs require a letter grade, i.e. A, B, C, D, or F. If you are considering taking the course as a non-credit course and you are expecting your employer or other sponsor to pay for your tuition, you should check to see what are the requirements to get that reimbursement. Get it right before you take the course because you can not change from non-credit to for-credit once you have registered.
  • Plagiarism. Plagiarism is grounds for forced withdrawal from a course. Submitting duplicate or nearly identical work of another student is considered plagiarism. If you intend to collaborate with another student in the course, please explain the details of how you intend to collaborate with me. There have been cases of such forced withdrawal from this course in the past.