View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide

CS 381 Swiki: Networks, Fall 2002

Announcements

Well, I've got to say, this is one strange class (I moved a lot of the weirdness to a separate page – Bob)

If you were a pirate, you know what would be the one thing that would really make you mad? Treasure chests with no handles. How the hell are you supposed to carry it?!

For the remainder of the semester you may choose your own lab partners

Final Project Information
How to Use GPG to Submit Final Projects (Short, printable version!)
How to Use GPG to Submit Final Projects (Long version with full output)
My public GPG key

Homework 4 complete solutions (except for tree drawings) are now posted (see below)

Course Description, Policies, Schedule
Textbook website

(you must register; you'll need your book to do so)
General lab information (read!)

Labs

Lab 1 (2 Sept. 2002)
Connect.java
Lab 2 (9 Sept. 2002) (Added on 9/9/02)
Lab2.java (Added on 9/9/02)
Lab 3 (16 Sept. 2002)(Added on 9/16/02)SOLUTION
RFC 1288: the finger protocol (Added on 9/9/02)
RFC 867: the daytime protocol (Added on 9/9/02)
RFC 862: the echo protocol (Added on 9/9/02)
RFC 868: the time protocol (Added on 9/9/02)
RFC 1945: HTTP 1.0 (the original hypertext transfer protocol by Tim Berners-Lee) (Added on 9/15/02)
RFC 2616: HTTP 1.1 (Added on 9/15/02)
RFC 821: the original SMTP (simple mail transfer protocol) (Added on 9/16/02)
RFC 2821: SMTP, latest version) (Added on 9/15/02)
Lab 4 (23 September)
*BinaryClient.java>http://cs.allegheny.edu/~rroos/cs381f2002/BinaryClient.java* 
(Documentation)(Added on 9/22/02)
*BinaryServer.java>http://cs.allegheny.edu/~rroos/cs381f2002/BinaryServer.java*
(Documentation)(Added on 9/22/02)
Lab 5 (30 September)
Message.java
MailClient.java
Envelope.java
SMTPConnection.java
Lab 5 solution (SMTPConnection.java)
Lab 6 (7 October)
Lab 6 solutions (part 1)
Lab 6 solutions (remaining parts)
Lab 7

Please choose your own partners for this week's lab!
Lab 8 (due Thurs., 31 Oct) (Choose a lab partner who knows some C!)
cmdlinedemo.c
pointerdemo.c
hostnetwork.c
client.c
server.c
Lab 9
Lab 10 (Nov. 18)

Homework

Homework 1 (due Tues., 24 Sept)(Added on 9/16/02)
Answer to problem 1, homework 1

Answers to problem 3, homework 1:

*Initiator.java>http://cs.allegheny.edu/~rroos/cs381f2002/Initiator.java*

,

*Listener.java>http://cs.allegheny.edu/~rroos/cs381f2002/Listener.java*

Homework 2 (code due Thur, 10 Oct.) (Added on 10/8/02)
Homework 2 solution

If the homework 5 server dies, you can use this class instead. Just right-click on it and save it in your directory. Run "java HW5Server", note the port number, and then use your local host and this port number in your program. This will not display anything on the Web!
HW5Server.class
Homework 3 (due Thurs., 31 Oct)
Homework 3 sample exam questions
Homework 4
Homework 4 solution to problem 1
Homework 4 solution to problem 2
Program for homework 4 problem 2 (not pretty!)
Homework 4 solution to problem 3

Other Handouts

Survey of background knowledge
Review Sheet for exam 1
Answers to problems 2--9 in chapter 1(Added on 10/7/02)

Nice Network Overview!

Check it out!
Free Online Courses for ACM Student Members Includes "introduction to telecommunications," "network security and firewalls," "UML fundamentals"
CSIDC Competition
This has nothing to do with networking, but it's cool. Whitney Museum's "CODeDOC" exhibit: art work plus the code that created it. Code in Java, C, Lingo, Perl, Visual Basic plus the resulting artwork.


check out http://cs.allegheny.edu/~ute/automaton/
There are three java files that demonstrate primitive drawing with swing, and generate a large picture using a CA formula. If it is not intuitive how to use these files, you can contact me at your convenience and I will help you. It is pretty neat.





This will help with converting bits, bytes and so on....CONVERSION LINK (Added on 9/17/02) Hey, thanks, whoever posted this! –Bob

Java Resources

Java 1.3 Documentation
Java 1.4 Documentation
Javadoc Tool Home Page
Javadoc Styleguide
A Javadoc Example
Another Example
Java I/O Tutorial(Added 9/21/02)

Sockets

Beej's Guide to Socket Programming [in C]
Intro to socket programming [in C]
Nice PowerPoint C socket tutorial
UNIX Socket FAQ (old?)
DeveloperWeb.net forum on networking (lots on sockets)
Socket Programming in Java (from Java Jolt - October 25, 1996)
Sockets programming in Java: A tutorial (from JavaWorld - December 1996)
All about Sockets(from java.sun.com)
Networking in Java (Added on 9/8/02)

Course-Related Links

Searchable index of RFCs (Added on 9/9/02)
Interesting article about Gnu Privacy Guard (Added on 9/6/02)
Fingertrace
(Added on 9/8/02)


General Course Comments

This section is to allow students to provide ideas for improving our educational value in the classroom.

Karen Zannini:

I think that a Junior Sem run of this course would work well. I feel that most of the students enrolled in this course would do well teaching their peirs and for those who have never had that experience will be prepared for their soon to follow Sem Courses. I think working best in a classroom where we can speak out and learn from each others perspectives and ideas would work well for this course. It is always nice to have visuals, charts, notes and other resources to learn from. I know in the past it was easy to remember that SO-N-SO said, blah blah in a class then, I think Prof Roos said something....Just a thought. :-)

Bob's reply (8/30, 8:30 a.m.): Karen, thanks for the note (and congrats on being the first poster to this page other than me!). If you could amplify a bit on this suggestion I'd appreciate it. Did you mean the idea I put forth of having everyone be responsible for a certain part of the material and presenting it to the class? What do other people think of this? Oh, and don't miss the "visuals" at the textbook website; even includes downloadable realplayer lectures. (I could just play those in class!)

Brenda Gruber:

I agree with Karen - being able to discuss ideas and problems is a great way to learn from each other as well as out of the book, but what concerns me is that sometimes it is easy to get off track and enough time is not spent on one topic that might be pretty important. I think a combination of lecture and discussion is important. That way Dr. Roos throws out the information that he thinks we ought to be getting out of this course, while we can add or elaborate with our own ideas and information. Maybe we could have question/discussion at the beginning/end of each class just to go over what we talk about or if Dr. Roos introduces a topic and we discuss from that.

Bob's reply (9/1, 1:00 p.m.): I'd been waiting for a few more people to chime in with ideas; looks like my plea in class for everyone to make frequent visits to the Web page fell on deaf ears. Brenda (and Karen), I'll try out a few things on an experimental basis to see how well they play with the class, but I'd sure like to hear any other concrete suggestions that anyone has for the best way to run a course of this size and on this topic. (P.S. The Zen garden is back!)

Jason's Comment: I liked Chris's idea in class on friday of actually building a whole or just parts of a network. I think that would be very interesting and would give us a break from the same procedures of every other comp sci class (you know, where we go to lab and look aimlessly into the computer screen in hopes that the answer will magically appear). I also think it would provide for a deeper understanding of the material being discussed. I also agree with Brenda's comments. I liked her ideas as well.

Stacy Monarko:

I think everyone has great ideas about trying to find a new approach from just having a lecture based class. I know that one way I learn best is when the class breaks off into smaller groups to go over what is being taught either by Dr. Roos or the text book to complete some type of in class assignment. Then taking some time at the end of class to meet as a whole and discuss the different results. This way in small groups you are teaching each other and discovering new concepts, but by meeting as a whole in the end concepts that were unclear are stressed and reinforced with the right ideas.

Chris McNamara:
I just had an idea. After we get over the "remember java" hump in lab we should have a competition. The 2:30-3:30 lab will spend some time creating a program that transmits infromation client-server like. The 3:30-4:30 lab develops a program to try and intercept this information. Give about a week, maybe in small groups or something, then see which groups either defend their information the best and inversely, capture the most information. You, professor could give out keywords or maybe pictures. Basically, Group one, write a program to transmit a moderately sized binary object over the network, group two capture and decypher that message if possible. Then switch roles or choose new ones. Think the java api is too restrictive for raw sockets? There is a package jpcap on sourceforce that will help with this. Also available in C as pcap.

Bob's reply (9/3, 7:40 a.m.): It's going to take me a little while to track some of this stuff down (I'm not familiar with

jpcap
or
pcap
, but it sounds like an exciting idea. Actually, though, I'm more concerned about those 75-minute classes than I am about finding things for people to do in the labs!

As for building a network ... this would be new for me; I'll see if I can come up with at least some hardware and see what we can do. I really do want to tap the collective knowledge and wisdom of the class this semester.