|
|
This page provides dynamic
information and materials for the lecture, as
it becomes available; please check it at least once
in a week.
Lecture
Announcements
26-January-2004
|
You
will present your projects on Tuesday, 27 January 2004. The
time schedule is given below. |
|
All team members or team
representatives should present the projects in the lab. |
|
You may need to find a
good name for your project if you have not given one name yet. |
|
Please re-read the Notes
for Demonstrations and Project Reports section. |
|
The grading
for the project:
Survey Paper 20
Project Report 25
Submitted Code and Its Documentation 35
Demonstration 20
|
No |
Time |
Project Teams |
Projects |
1 |
9:30 - 10:00 |
Melek Oktay
Ömer Doğan |
Developing a Bluetooth Application |
M. Emin Işık
A. Volkan Gürel
Emrah Özdemir |
Java Based Wireless Applications Development
and J2ME |
2 |
10:30 - 11:00 |
Osman Şeker
Selman Göktaş
Yakup Emre Kucur |
Java
and XML Based Network Applications |
3 |
11:30 - 12:00 |
Esra Hallaç
Gülsüm Küçükakyüz
Esma Yıldırım |
Java Web Programming:Servlets/JSP |
4 |
13:00 - 13:30 |
İsmail
Alan
Suat Mercan |
RMI Based Distributed Applications |
5 |
14:00 - 14:30 |
Necmi Göcek
Ender Koca |
Java-Based Web Services and SOAP |
6 |
15:00 - 15:30 |
A. Reyhan Küçük
Sibel Küçüköner |
JINI |
7 |
16:00 - 16:30 |
Adem Delibaş |
Development of Design Patterns Based Distributed Applications |
10-January-2004
|
You are responsible
for all the materials presented in class in the final exam. |
|
There may be some
questions about writing small code samples on network programming.
|
|
The final will be a
closed book exam, but you can bring 1 page (A4) to the exam. |
|
You can write anything
you want to two sides of the page. You can not take a copy of your
friend's hand written page.
|
9-January-2004
|
The information about
the final exam will be posted on Saturday, 10 January. |
|
After the final
exam all project teams are required to talk to me about your
project progress in my office and in the
computer lab if you have a partial working prototype to show me
before the final demo.
|
8-January-2004
|
The deadline for
demonstration and submission of the final report and the project
code and its documentation was postponed
because of incompleteness of your projects and your other course
works. |
|
You can finish your
project work until all project completeness requirements are
finished within final weeks. |
|
The current last deadline is 28 January
2004, Wednesday.
But this
deadline is subject to small changes, like it may be 22 January. It
will be finalized soon. |
|
Try to finish your
project work and demo early, since the
early finishers will get higher grades.
|
Notes for Demonstrations
|
Before your final demo, you should
have shown your project to me at least once and later submitted your project report.
|
|
You will get an appointment for
your demo after you have submitted your Project Report. |
|
You will show your network
projects on real network platforms. For example, if your application needs
a web server, you have to install a web server and deploy your application
to the server. If your application needs mobile devices, like mobile
phones, you should try to find these devices. |
|
Network applications will
not be run in the JBuilder and in their development and simulation
environments. |
|
After your real demo, we'll
talk about the project details on the JBuilder project
using your project reports. |
Notes for Project Reports
|
You can download the
Project Report template from
here.
|
|
Please try to read
and
follow all best practices and advices on good coding style,
design and documentation
given on
Software Design and Documentation page.
|
30-December-2003
|
Tomorrow (31-December
2003) you are required to talk to me about your project progress
during the class hour in my office and in the computer lab if you
have a partial working prototype to show me before the final demo. |
|
Before the final demo,
you should have shown the first
version of your software and other work products to me. |
|
The demo dates:
7, 8,
and 9
January (Morning),
2003. These are final dates, no time
extension! |
|
The Javadoc style code documentation and strictly following java code
conventions are required in your final documentation. |
|
UML class diagrams
must be also generated by using Together to show the static software
architecture. The sequence, and activity diagrams for some
important object interactions and activities are also needed for the
dynamic model. |
|
A short word document
(Project Report) is also required for the final documentation. |
|
I will write more
about the final documentation this week.
|
22-December-2003
|
The midterm exam is
closed book and notes. |
|
The sample questions for
the exam are given here.
|
3-December-2003
|
Important dates and
deadlines:
12 December, Friday: Deadline for Survey Paper and Project Proposal
17 December, Wed.: Midterm Exam
19 December, Friday: Deadline for HW3
|
16-November-2003
|
Some Internet sources for
searching and finding papers related to this course are listed
here.
|
11-November-2003
|
Please look at the
Project Page and read it and related two
PDF documents on this page.
|
|
We will talk about your Survey
Paper study and Project on Wednesday afternoon (12 November 2003), in the
makeup lecture.
|
5-November-2003
|
You were given the second
homework assignment in the class today. It is due on 14
November
2003,
Friday. The information about the assignment is in the
lecture
4.
|
|
This is a 10-day and a 2-member
group assignment! If you do this assignment by yourself as an individual
homework, you may get an extra 10 points if you do a good job!
|
|
The information about the details
of how and what you will submit will be announced by your
assistant Nasif Ekiz in
his web page. Please visit his
page before you submit your assignment.
|
|
You have two programming
assignments. The first one (HostLookup) is 25 points and the second
one is 75 points.
|
|
The tentative weights of
grading for programming assignments are calculated as follows:
Completeness 35
Correctness 35
Coding Style
15
Documentation 15
|
|
For coding style and online code
documentation, you should read at least
Java Code
Conventions document and Doug Lea's
Java Coding
Standard page. Look at my
Software
Design and Documentation page also. It has some minimum information
about coding style and documentation.
|
|
Using javadoc style comments
and javadoc utility to generate HTML files is a common way for java
code documentation.
|
|
Your assistant may require a
readme file which includes
some instructions about how to execute your
programs. This is also part of documentation.
|
|
On long programming assignments,
you may
include class,
sequence diagrams of
important activities and other
UML diagrams in a word
document, and also some explanations.
|
|
Using UML in documentation is also
an extra point for some programming assignments. But to just generate class
diagrams from your source
files does not mean
that
you are using UML documentation.
|
|
Your implementation, modeling and
documentation tools for this course: JBuilder 9, Together for
JBuilder, and MySQL.
|
|
We have a makeup lecture next week
on 12-November-2003,
Wednesday Time: 14:00 - 17:00.
The place will be announced in the morning. Remember we have also our
regular class on that day in the morning.
|
|
I announced some preliminary
information about your Survey Paper and Project in the class.
I'll put
more detailed information until Monday, 10-November-2003
on this course web page.
|
8-October-2003
|
You were introduced to your first
homework assignment in the class. You will solve a classical synchronization
problem given in many operating systems books: Barbershop Problem. It
is explained in the chapter 5 of your Operating Systems textbook (W.
Stallings).
|
|
It is due on 20 October 2003,
Monday. The information about what you will submit will be announced by
your
assistant Nasif Ekiz.
|
|
Nasif will post some requirements
and comments for this assignment soon in
his web page. I may be also adding
some more information about this assignment later.
|
|
You can use the basic
synchronization primitives supported by Java in your solution.
|
Extra
Credit (15 Points)
|
As I mentioned in the class there
is an excellent book on
Concurrent Programming in Java written by Doug Lea.
|
|
If you want to do some extra work
to get an extra credit, you will use the
concurrent package developed by Doug Lea. It may simplify your solution.
|
|
His package provides standardized,
efficient versions of utility classes commonly encountered in concurrent
Java programming. This code consists of implementations of ideas that have
been around for ages, and is merely intended to save you the trouble of
coding them.
|
Academic
integrity
|
This is definitely an
individual assignment. A team work will not be tolerated. If a
similar solution is found in assignments, those will get a 0
grade! |
|
Always remember the
academic integrity for this and other courses.
We will be very careful in grading the projects, homeworks, exams so
that everybody gets the grade that he/she deserves. Copying will not
be tolerated and will be checked and punished rigorously.
The Fatih University
has a very strict policy on academic dishonesty. All work on
homeworks and examinations must be strictly individual. Violations
of this policy will result in an F grade for the class and may
result in suspension/expulsion from the university.
If
you cheat, you hurt yourself and your personal integrity
!
|
24-September-2003
|
Welcome to CENG 564/463
Network Programming!
This course teaches how to design and implement network programs, protocols
and systems for distributed systems under TCP/IP using the Java programming
language.
|
Course Materials
(Lecture Slides, Readings,
Programs, Technical Documents)
Lecture Slides
|
Purpose: To allow better concentration in lecture by reducing
note-taking pressure and to provide a study-aid before (unfortunately
not this year) and after lecture.
|
|
Disclaimers: (a) I may not follow these
slides exactly in class. (b) Students are responsible
for what I say in class. (c) Reading these slides is
not a substitute for attending lecture.
|
Date |
Material |
Topic(s) Covered |
24/9 |
Lecture 1 |
Course
Overview Introduction to Distributed Systems, Applications and Network
Programming Communication Models of Network Applications:
Course Overview,
Introduction to Distributed Systems, Applications and Network
Programming Communication Models of Network Applications. |
8/10 |
Lecture 2 |
Concurrency
and Concurrent Programming in Java: What is a Thread,
Multiprocessing and Multithreading, Thread
Structure and Thread Creation, The Life Cycle of
a Thread: Thread States, Thread Scheduling and
Priority, Multithreaded Programs and
Synchronizing Threads, Basic Synchronization
Strategies, Extending the Threading Model,
Producer-Consumer Problem, Deadlock
Problem. |
15/10 |
Lecture 3 |
Building
Blocks of Networking: I/O Streams: Stream Basics,
Stream Types, Byte and Character Streams,
I/O Exceptions, Data Sink Streams,
Data Processing Streams, Object Streams
and Object Serialization. |
5/10 |
Lecture 4 |
Introduction
to Java Net Package (java.net) and Network Programming with High Level
Classes: Introduction to
Java Net (java.net) Package, InetAddress Class,
URL Class, Communication Using,
URLConnection, JavaMail API. |
12/11 |
Lecture 5 |
TCP Socket Programming: Introduction,
Socket Class, ServerSocket Class,
Iterative Connection-Oriented Client/Server Applications,
Concurrent Connection-Oriented Client/Server Applications,
A Chat Program Example. |
12/11 |
Lecture 6 |
UDP
Socket Programming: UDP Protocol
and UDP Datagram, UDP and TCP Comparison,
Java UDP Support, UDP Based Client/Server
Design, UDP Application Samples.
|
19/11
3/12 |
Lecture
7
RMISamples |
Introduction to
Distributed Computing: Remote Method Invocation (RMI):
Introduction to Distributed Computing,
RMI System Architecture, Developing an RMI
Application, RMI Architectural Details,
Parameters in RMI, Building a Generic
Compute Engine, Dynamic Class Loading,
Creating a Peer-to-Peer RMI Application, A
3-tier RMI-JDBC Application |
10/12 |
Lecture
8
|
An Overview of Enterprise
Applications Development Using J2EE Platform:
Distributed Multitiered Applications,
J2EE Platform Architecture, Enterprise
JavaBeans (EJBs) Overview, J2EE Platform Software
Development Kit (J2EE 1.4 SDK), J2EE vs. .NET. |
J2EE
Tutorial |
The J2EE
1.4 Tutorial, Sun Microsystems, November 16,
2003. (9.8 MB) |
Essential
J2EE |
Essential Java2
Enterprise Edition, Student Manual,
DevelopMentor Inc. 2001. (2.6 M) |
|
Marty Hall's
Slides |
Java
Web Programming: Servlets and JSP, and Deitel Advanced Java 2 Platform
How to Program, Chapters 9, 10, 11. |
Readings
References
|