Skip to content
Snippets Groups Projects
Commit 92a14849 authored by Brutzman, Don's avatar Brutzman, Don
Browse files

setup new course assignments

parent d447036d
No related branches found
No related tags found
No related merge requests found
Showing
with 185 additions and 0 deletions
## Student assignments: homework submission directories
<!-- View this page at https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/-/blob/master/assignments/src/MV3500Cohort2024JulySeptember/README.md -->
* [Homework 1 README](homework1/README.md) NetBeans, Wireshark, Telnet, TCP Sockets
* [Homework 2 README](homework2/README.md) UDP Multicast Client/Server Networking
* [Homework 3 README](homework3/README.md) Example Simulation Recording OpenDIS Network Streams
* [Homework 4 README](homework4/README.md) DIS Specification Review and Feedback
* [Projects README](projects/README.md) Simkit OpenDIS Experimentation
Please see the [README.md](../../../../assignments/README.md) in the parent
[assignments](../../../../assignments) directory for detailed instructions on gitlab directory setup for Java projects.
## Homework 1: Unicast Networking
Welcome everybody! This is where your homework goes.
Deliverables:
* Update unicast sockets sender/receiver, modifying provided code, test via telnet.
* Demonstrate ability to build, run and document Java programs that perform networking tasks.
Please see the [README.md](../../../README.md) in the parent
[assignments](../../../../assignments) directory for detailed instructions.
/**
* TCP Unicast homework assignments supporting the NPS MOVES MV3500 Networked Graphics course.
*
* @see <a href="https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/-/tree/master/assignments">networkedGraphicsMV3500 assignments</a>
* @see java.lang.Package
* @see <a href="https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful">StackOverflow: why-is-package-info-java-useful</a>
* @see <a href="https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java">StackOverflow: how-do-i-document-packages-in-java</a>
*/
package MV3500Cohort2024JulySeptember.homework1;
## Homework 2: UDP Multicast Client/Server Networking
Deliverables:
* Modifying provided code for a multicast sockets sender/receiver.
* Demonstrate proficiency to build, run and document software that performs networking tasks.
Approach:
0. Think of a simple challenge/response protocol that you wish to portray.
1. Apply your own customized version of Assignment 2 showing both Server and Client programs.
1. Challenge/response scenarios
2. IPv4 versus IPv6
3. Joke telling and riddles?
4. [Message of the Day (MOTD)](https://en.wikipedia.org/wiki/Motd_(Unix))
5. Variations on a theme, protocol handshaking
6. Connecting two different hosts - chat
7. Something for your thesis!
2. Include comments describing your modifications (aka Documentation).
3. Include repeatable documentation of one or more sessions, including operation.
4. Create a simple illustration of the communications exchange in a [UML Sequence Diagram](https://en.wikipedia.org/wiki/Sequence_diagram).
Please see the [README.md](../../../README.md) in the parent
[assignments](../../../../assignments) directory for detailed instructions.
\ No newline at end of file
/**
* TCP Unicast homework assignments supporting the NPS MOVES MV3500 Networked Graphics course.
*
* @see <a href="https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/-/tree/master/assignments">networkedGraphicsMV3500 assignments</a>
* @see java.lang.Package
* @see <a href="https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful">StackOverflow: why-is-package-info-java-useful</a>
* @see <a href="https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java">StackOverflow: how-do-i-document-packages-in-java</a>
*/
package MV3500Cohort2024JulySeptember.homework2;
## Homework 3: Example Simulation Recording using OpenDIS Network Streams
<!-- Viewable at https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/-/blob/master/assignments/src/MV3500Cohort2024JulySeptember/homework3/README.md -->
### Assignment
1. Adapt the functionality for [OpenDIS ExampleSimulationProgram](../../../../examples/src/OpenDis7Examples/ExampleSimulationProgram.java), modifying provided code
2. Experiment with the enumeration values that set up each entity and PDU. What works for you? What makes sense for your future work?
3. Adapt or replace the UML diagrams to describe what you have going on.
4. Record, save and replay your result stream using [PduRecorder](https://savage.nps.edu/opendis7-java/javadoc/edu/nps/moves/dis7/utilities/stream/PduRecorder.html) or [Wireshark](https://www.wireshark.org)
* see local [assignments/src/pduLog](../../../pduLog) subdirectory for latest opendis log files
* Coming soon, we will also (again have) [X3D-Edit](https://savage.nps.edu/X3D-Edit) for DIS stream recording/replay
5. Observe good-practice conventions in the [assignments README](../../../README.md) and [current-course README](../README.md) instructions.
This assignment presents a Problem Prototyping opportunity.
While some minimal functionality is expected, the general outline of
a networking problem and proposed solution holds great interest.
Think of it as warmup preparation for your future work.
This is also a freeplay opportunity.
You have the option to pick one or more of the provided course example programs
and adapt the source to demonstrate a new client-server handshake protocol of interest.
Be sure to provide a rationale that justifies why the networking choices you made
(TCP/UDP, unicast/multicast, etc.) are the best for the problem you are addressing.
You may find that the prior [homework2 README](../homework2/README.md) still provides
helpful details on what specific deliverables are expected in each homework assignment.
Team efforts are encouraged, though if you choose a team approach be sure to justify why.
This is a good warmup prior to final projects. Have fun with Java networking!
### Prior Assignment, August 2019
In 2019, students worked together on a single project to check wireless multicast connectivity recently deployed on NPS campus.
See their experimental results in the [NPS Multicast Connectivity Report](../../MV3500Cohort2019JulySeptember/homework3).
/**
* Final project assignments supporting the NPS MOVES MV3500 Networked Graphics course.
*
* @see <a href="https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/-/tree/master/assignments">networkedGraphicsMV3500 assignments</a>
* @see java.lang.Package
* @see <a href="https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful">StackOverflow: why-is-package-info-java-useful</a>
* @see <a href="https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java">StackOverflow: how-do-i-document-packages-in-java</a>
*/
package MV3500Cohort2024JulySeptember.homework3;
## Revised Homework 4: DIS Specification Review and Feedback
Deliverables:
* read descriptions for each PDU family and type
* consider which hold potential use for your thesis and your warfare community
* consider whether any message types of interest might be missing
A form is being prepared to facilitate collection of responses.
## (prior) Homework 4: DIS Behavior Modeling
Deliverables:
* Write a DIS program that has a simple but meaningful behavior.
* Include DIS enumerations for specific player platforms of interest.
* Document the behavior and save the stream for possible future use.
Please see the [README.md](../../../README.md) in the parent
[assignments](../../../../assignments) directory for detailed instructions.
In class Discussion:
How might PDUs look for a drone swarm?
Two perspectives may be necessary. The first is that each drone is it's own entity, requiring it's own PDU. The second is that the swarm itself is also an entity, and should have a PDU that reflects the group as well.
/**
* Final project assignments supporting the NPS MOVES MV3500 Networked Graphics course.
*
* @see <a href="https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/-/tree/master/assignments">networkedGraphicsMV3500 assignments</a>
* @see java.lang.Package
* @see <a href="https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful">StackOverflow: why-is-package-info-java-useful</a>
* @see <a href="https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java">StackOverflow: how-do-i-document-packages-in-java</a>
*/
package MV3500Cohort2024JulySeptember.homework4;
## Final Projects Summary
Multiple outstanding projects across a range of theory and practice were delivered by this year's cohort.
* Programming projects are providing positive benefit to applied research and future course work.
* Point-paper projects are providing positive benefit to NPS...Next strategic efforts.
Congratulations to all students on superlative work produced during our most network-challenged conditions yet.
## Final Course Project Assignments MV3500Cohort2024JulySeptember
Create a dedicated subdirectory for each individual or team project.
Example: `SmithJones`
See the [course syllabus](../../../../MV3500NetworkedGraphicsSyllabusMV3500Cohort2024JulySeptember.pdf) for details on how to document your project.
Typical final project deliverables:
* `README.MyProject.md` providing a basic description of goals, running the project, files, etc.
* Source code, screen shots, console text log, and any other assets
* Simple flowchart, simple event sequence diagram
* DIS packet capture (text or XML, plus Wireshark pcap)
* Powerpoint presentation, video capture of class section in Teams
These deliverables have excellent value going forward, hopefully benefiting your thesis efforts as well. Questions welcome, keep going!
/**
* Final project assignments supporting the NPS MOVES MV3500 Networked Graphics course.
*
* @see <a href="https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/-/tree/master/assignments">networkedGraphicsMV3500 assignments</a>
* @see java.lang.Package
* @see <a href="https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful">StackOverflow: why-is-package-info-java-useful</a>
* @see <a href="https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java">StackOverflow: how-do-i-document-packages-in-java</a>
*/
package MV3500Cohort2024JulySeptember.projects;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment