diff --git a/assignments/src/MV3500Cohort2024JulySeptember/README.md b/assignments/src/MV3500Cohort2024JulySeptember/README.md new file mode 100644 index 0000000000000000000000000000000000000000..40490360ff1b6991c9179b22d9b25a4b31c9656e --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/README.md @@ -0,0 +1,12 @@ +## 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. diff --git a/assignments/src/MV3500Cohort2024JulySeptember/homework1/README.md b/assignments/src/MV3500Cohort2024JulySeptember/homework1/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e5bd42a3887286271cc8c591aea01fa2b56f783c --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/homework1/README.md @@ -0,0 +1,11 @@ +## 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. diff --git a/assignments/src/MV3500Cohort2024JulySeptember/homework1/package-info.java b/assignments/src/MV3500Cohort2024JulySeptember/homework1/package-info.java new file mode 100644 index 0000000000000000000000000000000000000000..040db63af9221bbfb172c39b5f447771f657f060 --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/homework1/package-info.java @@ -0,0 +1,10 @@ +/** + * 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; diff --git a/assignments/src/MV3500Cohort2024JulySeptember/homework2/README.md b/assignments/src/MV3500Cohort2024JulySeptember/homework2/README.md new file mode 100644 index 0000000000000000000000000000000000000000..1de5901082acfabc26cf4ecd81969a4bb74908d3 --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/homework2/README.md @@ -0,0 +1,24 @@ +## 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 diff --git a/assignments/src/MV3500Cohort2024JulySeptember/homework2/package-info.java b/assignments/src/MV3500Cohort2024JulySeptember/homework2/package-info.java new file mode 100644 index 0000000000000000000000000000000000000000..274898788b03e9e4902513464d87c6ba23e2891e --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/homework2/package-info.java @@ -0,0 +1,10 @@ +/** + * 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; diff --git a/assignments/src/MV3500Cohort2024JulySeptember/homework3/README.md b/assignments/src/MV3500Cohort2024JulySeptember/homework3/README.md new file mode 100644 index 0000000000000000000000000000000000000000..c5aadebfdcbc089649b153eb705bb84c6286336b --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/homework3/README.md @@ -0,0 +1,38 @@ +## 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). + diff --git a/assignments/src/MV3500Cohort2024JulySeptember/homework3/package-info.java b/assignments/src/MV3500Cohort2024JulySeptember/homework3/package-info.java new file mode 100644 index 0000000000000000000000000000000000000000..6be98c3d9db8c8f087fb27b9077eb339a0be3772 --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/homework3/package-info.java @@ -0,0 +1,10 @@ +/** + * 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; diff --git a/assignments/src/MV3500Cohort2024JulySeptember/homework4/README.md b/assignments/src/MV3500Cohort2024JulySeptember/homework4/README.md new file mode 100644 index 0000000000000000000000000000000000000000..8b37870df619103d102fe351df69f9ba77d8e5a9 --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/homework4/README.md @@ -0,0 +1,25 @@ +## 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. diff --git a/assignments/src/MV3500Cohort2024JulySeptember/homework4/package-info.java b/assignments/src/MV3500Cohort2024JulySeptember/homework4/package-info.java new file mode 100644 index 0000000000000000000000000000000000000000..c4e3470c5e400b07886e558d3822c7e5cc182c15 --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/homework4/package-info.java @@ -0,0 +1,10 @@ +/** + * 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; diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/README.md b/assignments/src/MV3500Cohort2024JulySeptember/projects/README.md new file mode 100644 index 0000000000000000000000000000000000000000..9ef24af609ada6cd598e4c4fdcf0e20e5248c8cd --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/README.md @@ -0,0 +1,25 @@ +## 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! diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/package-info.java b/assignments/src/MV3500Cohort2024JulySeptember/projects/package-info.java new file mode 100644 index 0000000000000000000000000000000000000000..a74867a4f9a9a9531fef98ab0160735810234971 --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/package-info.java @@ -0,0 +1,10 @@ +/** + * 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;