Skip to content

Resources ​

Textbook ​

Computer Networking: A Top-Down Approach, 9th edition, by James Kurose and Keith Ross. A digital copy is provided under Course Materials in Canvas, so you do not need to buy anything.

The authors keep a companion site with interactive problems and Wireshark labs, which is worth your time even though none of it is graded here.

Where your code has to run ​

Every project must compile and run on both of the following. If it builds on only one, it receives no credit.

  • GitHub Codespaces: VS Code in the browser, configured by the starter repo.
  • Onyx: the department's login server, onyx.boisestate.edu, reachable over SSH with your Boise State credentials.

Writing code that is portable across two toolchains is a learning objective, not an inconvenience. The two machines have different compilers and different library versions on purpose.

Starter repository ​

All projects start from makefile-project-starter. Use the Use this template button rather than the fork button so your copy is not tied to the upstream history.

The starter gives you a Makefile with the targets every project depends on:

TargetWhat it does
make allBuild the debug and release binaries
make checkRun the Unity test suite
make reportGenerate the gcovr coverage report
make leakBuild the leak-checking binary
make leak-testRun the tests under the leak checker
make cleanRemove everything under build/

Tools ​

  • Unity: the C test harness the starter uses.
  • Wireshark: packet capture and analysis. Install it locally; you will want it for the link layer material.
  • gcovr: the coverage tool behind make report.
  • Valgrind: the leak checker behind make leak-test.

Reference ​

Released under the MIT License.