Format for Homework Assignments
Note on readings and
• Readings in the text and PowerPoint
presentations for this course are listed on the
professor’s web site at http://moodle.njit.edu/
• This presentation will only give information on
the assignments to be submitted as homework.
Direct Links to Assignments
• Wireshark Labs (5 Labs listed on Moodle)
Course Project on Amazon Web Services
Note on Assignments
• If there are any discrepancies between the
assignments listed here and the lectures, this
presentation is the one to follow.
• I have tried to remove all details on the
assignments from the lectures.
• If there are questions on the assignments, I
will answer them on Moodle. Such answers
may replace anything in this lecture.
• Do not expect to get full credit if you turn in
work late. I must receive work by email from
distance learning students on the due date.
Classroom students must turn in assignments
during the first five minutes of the class period
when it is due for full credit. Employers expect
you to meet deadlines and therefore so do I!
• Do NOT include a cover sheet. If every
person in the class used a cover sheet, that is
a lot of useless paper that I have to carry
around. Just identify the assignment and
your name on the top of each page.
Format for assignments
• Group sheet
– Outline of process followed (what group did)
• Individual sheets
– Time sheet
– Modifications made (must pass different arguments from
other persons in group)
– Problems encountered and solutions
– Lessons learned (must not be trivial)
– Screen shots to prove you got it to compile and work.
• Group sheet should be one page, and include the names
of the group members at the top. Do not use a separate
cover page. Describe the process the group followed--
when and where you met, how you selected the
program, how you divided the work, how you helped
• You could do the assignments on your own, but it is
strongly discouraged. If you don’t have a strong,
functioning group before you start work on the final
project, you may have serious trouble on that project.
Time Sheet Example
George Blank Time Sheet
Date Time Task Time Spent (hrs)
April 18, 2001 9:30 AM Meet with Team to discuss project 2.5
April 21, 2001 8:30 AM Set up Oracle environment 0.5
9:00 AM Search web and read up on JDBC 1.5
1:00 PM Create Oracle Database 1.0
April 23, 2001 10:00 AM Download and Install JDK 1.4 1.0
2:00 PM Install JDBC Driver 0.5
April 24, 2001 11:00 PM Write program 2.0
April 25, 2001 1:00 AM Debug and Test Program 0.5
April 25, 2001 9:30 AM Meet with Team to review project 2.0
1:30 PM Write project report 0.5
• Team can all work on the same examples, which you
can get from anywhere (text, web, etc.)
• But each member of the team must modify each
program. I do not want everyone to use exactly the same
program. At a minimum, your changes must be enough
to require that the Client and the Server be recompiled.
• You can use a program that you get from any source,
but you cannot use it unchanged. You will also need
substantial original content to get a grade higher than
Special Requirements for top
• If you want an A in the class or are intending to
apply to a Ph.D. program and want a
recommendation from me, or if you are planning to
do a Master’s project with me, you will have to
display initiative and creativity in your homework
assignments, not simply adapt code from
elsewhere or depend on your team mates to figure
out the problems. Expect to write most of your
code from scratch.
Note to B Students
• Since this course emphasizes middleware and
setting up the environment instead of code
development, it is possible to do the assignments
using programs from previous students or other
sources. Typically, about half of my students do
this. Such work receives a grade of B, and
students who do this usually cannot get an A for
the course. I do expect you to make some changes
to the programs and get it to run in your own
• Here is a good example of a problem write-up.
• I had problems installing a driver. At the site
html I found 3rd party JDBC-ODBC drivers. I
installed a few, including Easy Soft, but none of
them worked. So I went to the Sun site and read
the tutorial. I found that JDBC is present in all
JDK versions after 1.2. So I searched the jar files
for the JDBC API and found the API in
jre/lib/rt.jar. I included this in my classpath and
the connection worked.
• When you include details like those on the
previous page, and also do a good job on your
“lessons learned”, I know that you learned the
material. If you don’t have problems, say so.
• I want to see your directory and other parts of your
environment. It is NOT acceptable for multiple members
of a team to do the assignment in the same directory on
the same machine. Setting up the environment is a key
part of the assignment. Show me your compilation and
execution. Make sure that your execution includes all
required parts of the assignment. Any part of the
assignment you don’t show, I assume that you didn’t do.
• Unix users can redirect output to the printer.
• Focus on things that you would tell other
people who were going to do the same kind
of program. Comments like:
“I learned how to connect from a Java
program to another using RMI.”
are not acceptable. That is the assignment,
not the lessons learned.
Lessons Learned - example
This assignment was an eye opener, as I have been programming using
the latest API’s and ready made solutions in languages such as Java, C#, and web
based languages. What exactly happens inside a computer’s networking layer is
clearly seen when we do the C or C++ programming assignment. How the
application program opens a socket, establishes a connection and talks to the
remote host is really exciting when we lay our hands on the dirty details (as Java
guys may call it).
Socket programming clearly shows the difference between end-end
(TCP) communication and system-system (Internet) communication. We not only
talk to the system but to a particular application residing on that remote system.
One of the other things I learnt is what exactly happens when there is a
call to the same machine i.e., 127.0.0.1 in the networking book. The call does not
really go out of the system but only checks if the networking layers are working
• Skills such as documenting the time spent on
each activity, clearly describing problems you
encounter, analyzing what you have learned,
working in teams, and turning in work on time
are critical to success in the corporate
environment. If you can’t cope with any of
them, you do not belong in software
• If you use a resource in your project, cite it in
a page on references.
• Here is a Library of Congress guide to citing
e/index.html . I tend to be lenient about
correct form, but students intending to do a
thesis or get a Ph.D. should use it.
• I do not want the same report from every member
of the group. If five people turn in a report that is
worth a grade of 90%, I will divide that by 5 and
give each person a grade of 18%.
• If a substantial part of each report is the same, I
will deduct points from your grade. You cannot
get a grade over 85% without clear and visible
evidence of original work. It is critically important
to let me know what you added to any code you
use from elsewhere.
• Staple your own report together and bring to class. Then
use a paper clip to attach all the assignments for your group
together, with the group sheet on top.
• Do not use report covers, folders, or other packaging. (Only
the final group project may have a cover.)
• All reports should be on 8 1/2 by 11 white paper, preferably
done in MS Word or another word processor.
Do not use Local Host!
• This is a course in distributed computing. You should
use separate CPUs for your client and server. If you
can’t get that to work, but can get it to work on one
computer, there will be a deduction on your grade.
• Programming Assignments:
– Compile and execute a UDP Client and Server in C or C++
– Compile and execute a TCP Client and Server in Java
– Pass your name to the server. The Server returns your
name and the name of the Host System that the Server is
– In your lessons learned, describe differences between the
• Programming Assignment:
• Compile and execute an RMI service over a
network. Ideally your program should do
something meaningful, such as illustrating an
algorithm or topic in the textbook. A generic
program copied from previous year students will
not get a grade higher than 85%.
Things to do immediately
• Log on to Moodle and introduce yourself to the
• Set up your access to the NJIT University