Skip to content

Instantly share code, notes, and snippets.

@wcravens
Created March 27, 2026 14:38
Show Gist options
  • Select an option

  • Save wcravens/30d0379207a1fff63fd8d3488c54e1f4 to your computer and use it in GitHub Desktop.

Select an option

Save wcravens/30d0379207a1fff63fd8d3488c54e1f4 to your computer and use it in GitHub Desktop.

Weekly Research Notes Assignment

CSC 271 — Linux Networking and Security


Assignment Overview

Each week you will be assigned a topic related to Linux networking and security. Your task is to independently research that topic and produce a set of study notes written in Markdown format. The following week you will share your notes with the class and walk your classmates through what you learned. Think of this as teaching the material to your peers — the better your notes, the better the conversation.

Your deliverable is a single .md file submitted to the course repository before the start of the next class session.


Required Sections

Your markdown file must contain every section listed below. You may add additional sections if they help tell your story, but these are the minimum.

1. YAML Frontmatter

Your file must begin with a YAML frontmatter block. This metadata is used for organization and grading. Use the exact keys shown here (values are your own):

---
title: "Topic Title Here"
author: "Your Full Name"
class: "CSC 271 — Linux Networking and Security"
instructor: "Instructor Name"
date: 2026-03-27
topic: "Brief Topic Label"
---

Rules for frontmatter:

  • The block must start and end with exactly three dashes (---).
  • Use ISO 8601 date format: YYYY-MM-DD.
  • Strings containing special characters (colons, quotes) must be wrapped in double quotes.

2. Executive Summary / Abstract

Write a short paragraph (4–8 sentences) that answers three questions:

  1. What is the topic and why does it matter?
  2. How did you approach your research (sources, tools, experimentation)?
  3. What are the key things you learned?

This section should stand on its own — a reader who only reads the abstract should walk away with a clear picture of your work.

3. Explanation of Topic & Notes

This is the body of your research. Organize your notes with headings, sub-headings, and whatever structural elements best fit the material (lists, tables, code blocks, blockquotes, etc.). At a minimum you should cover:

  • Definitions and key concepts — What is this technology or technique?
  • How it works — Protocols, configuration files, data flows, and relevant theory.
  • Diagrams or tables where they aid understanding.

References are required. Every claim, statistic, or concept that is not common knowledge must cite its source. You may use either style below (or mix them), but be consistent throughout your document.

Inline links — the URL lives right in the sentence:

According to the [OpenSSH manual](https://man.openbsd.org/ssh), the default
port is 22.

Reference-style / footnote links — a short label in the text points to a URL defined elsewhere in the file. This keeps paragraphs readable when you have many citations:

The default port is 22 [^1]. Key-based authentication is preferred over
password authentication for most deployments [^2].

[^1]: OpenSSH Manual — https://man.openbsd.org/ssh
[^2]: NIST SP 800-123, *Guide to General Server Security*https://csrc.nist.gov/publications/detail/sp/800-123/final

You may also use the simpler bracket-number style without the caret if your editor does not support footnotes:

According to the OpenSSH manual [1], the default port is 22.

## References

1. [OpenSSH Manual](https://man.openbsd.org/ssh)
2. [NIST SP 800-123](https://csrc.nist.gov/publications/detail/sp/800-123/final)

Whichever style you choose, collect all references in a "References" section at the end of this section (or at the end of the document).

4. Practical Applications

Describe how this topic fits into modern Linux systems administration, networking, or security practice, and demonstrate it with real commands and examples.

  • Commands and examples — Show real command-line examples inside fenced code blocks with language identifiers. Explain what each command does and when you would use it:

    ```bash
    ssh-keygen -t ed25519 -C "student@example.com"
    ```
  • Where would you encounter this in a real job or home-lab?

  • What problems does it solve?

  • How does it relate to other topics we have covered in class?

  • Are there modern alternatives or extensions of this technology?

Include at least one concrete scenario or use case with accompanying commands.

5. Advice for Future Students

Write a few paragraphs of honest, personal advice for a student who will receive this same assignment next year. What worked for you? What would you do differently? What resources saved you time? Were there any pitfalls or rabbit-holes to avoid?

This section is graded on thoughtfulness and specificity — generic advice like "start early" is fine to include but should not be the entire section.


Markdown Formatting Requirements

Because one goal of this assignment is to develop fluency with Markdown, at least 20 % of your grade comes from proper structure, usage, and validity of Markdown formatting. The following elements are expected throughout your document:

Element Expectation
YAML frontmatter Present, valid, all required keys
Headings Logical hierarchy (#, ##, ###); never skip levels
Paragraphs Separated by blank lines; no run-on walls of text
Emphasis Appropriate use of *italic* and **bold**
Lists Ordered and/or unordered where content calls for them
Links Inline links to all referenced sources
Code Inline code for commands/paths (`backticks`); fenced code blocks with language identifier for multi-line examples
Tables At least one Markdown table if the content warrants it
Blockquotes Used for direct quotations or important callouts
Images Optional, but if included use proper ![alt](url) syntax
Horizontal rules Used to visually separate major sections (---)
Consistent style Consistent indentation, spacing, and formatting throughout

Common mistakes that lose points:

  • Missing or malformed frontmatter.
  • Headings that jump from # to ### (skipping ##).
  • Fenced code blocks without a language identifier.
  • Bare URLs instead of proper [text](url) links.
  • No blank line before a list, table, or heading.
  • Inconsistent list markers (mixing - and * in the same list).
  • Walls of text with no structural elements.

Grading Rubric (25 Points)

Category 1 — Markdown Structure and Formatting (5 points, 20 %)

Criterion Excellent (full) Satisfactory (half) Needs Work (0)
Frontmatter Valid YAML with all required keys and correct formatting Present but missing a key or has a syntax issue Missing or broken
Heading hierarchy & document structure Logical heading levels, clear document flow, proper section separation Minor issues (a skipped level, inconsistent spacing) Disorganized or flat structure
Code formatting Inline code and fenced blocks with language identifiers used correctly throughout Mostly correct; one or two missing language tags or inconsistent backtick usage Code presented as plain text or blocks lack language identifiers
Links, lists, tables, and other elements Sources linked inline, lists and tables used appropriately, Markdown renders cleanly Some bare URLs or minor rendering issues Formatting is largely absent or broken
Overall consistency and polish Uniform style, clean spacing, no rendering artifacts A few inconsistencies but generally readable Sloppy or inconsistent throughout

Category 2 — Executive Summary / Abstract (5 points, 20 %)

Criterion Excellent (full) Satisfactory (half) Needs Work (0)
Completeness Clearly addresses the topic, approach, and learning outcomes in a concise paragraph Covers most elements but is vague or too brief Missing or does not address the required questions
Clarity and writing quality Well-written, concise, and informative Understandable but could be tighter Confusing or poorly written

Category 3 — Explanation of Topic & Notes (5 points, 20 %)

Criterion Excellent (full) Satisfactory (half) Needs Work (0)
Depth and accuracy Thorough, accurate coverage; demonstrates real understanding Covers the basics but lacks depth or contains minor inaccuracies Superficial, inaccurate, or mostly copied without understanding
References and sources Three or more credible sources cited with inline links and a references section One or two sources cited; links may be incomplete No references or sources are unreliable
Organization Logical flow; easy to follow from concept to concept Readable but could be better organized Disjointed or hard to follow

Category 4 — Practical Applications (5 points, 20 %)

Criterion Excellent (full) Satisfactory (half) Needs Work (0)
Commands and examples Multiple real, working command-line examples in proper code blocks with explanation of what each does and when to use it Some examples provided but lacking context or formatting No examples or examples are incorrect
Relevance to modern Linux Clear, specific connections to real-world sysadmin, networking, or security practice General statements about relevance without concrete detail Missing or unrelated to practical use
Scenario or use case At least one detailed, realistic scenario demonstrating application A scenario is mentioned but lacks detail No scenario provided

Category 5 — Advice for Future Students (5 points, 20 %)

Criterion Excellent (full) Satisfactory (half) Needs Work (0)
Specificity and usefulness Actionable, specific advice grounded in personal experience Some useful advice but mostly generic Missing or entirely generic
Resource recommendations Recommends specific tools, links, or strategies with brief explanation Mentions a resource but without context No recommendations
Reflection Shows genuine reflection on the learning process Some reflection present No personal reflection

Points Summary

Category Points Weight
Markdown Structure and Formatting 5 20 %
Executive Summary / Abstract 5 20 %
Explanation of Topic & Notes 5 20 %
Practical Applications 5 20 %
Advice for Future Students 5 20 %
Total 25 100 %

Recommended Markdown Resources

Syntax References

The following references are listed from most beginner-friendly to most comprehensive. Bookmark at least one.

Free Online Editors

You do not need to install anything to write Markdown. Any of the editors below run entirely in your browser. StackEdit and Dillinger are the most popular in this class, but you are welcome to use any editor you like.

Editor URL Highlights
StackEdit stackedit.io Feature-rich; supports LaTeX math, UML diagrams, and Mermaid charts. Syncs with Google Drive, Dropbox, and GitHub. Workspace with multi-file explorer. Best for power users.
Dillinger dillinger.io Clean two-pane editor with live preview. Exports to HTML and PDF. Syncs with GitHub, Dropbox, Google Drive, Medium, and OneDrive. Best for simplicity.
HackMD hackmd.io Real-time collaboration (like Google Docs for Markdown). Supports slide decks and book mode. Free tier available. Best for group work.
HedgeDoc hedgedoc.org Open-source, self-hosted collaborative editor (evolved from CodiMD). Great if the class ever runs its own instance.
Readme.so readme.so Template-driven editor designed for README files. Good for learning structure.
MarkTwo marktwo.app Progressive web app; works offline. Syncs via your own Google Drive. Lightweight and fast.

Tip: Whichever editor you use, always preview your file before submitting. Paste your final .md into a second editor or a GitHub preview to catch formatting issues you may have missed.


Submission Template

Below is a minimal starter template. Copy it into your editor and fill in each section. Delete the placeholder instructions before submitting.

---
title: "Your Topic Title"
author: "Your Full Name"
class: "CSC 271 — Linux Networking and Security"
instructor: "Instructor Name"
date: YYYY-MM-DD
topic: "Short Topic Label"
---

# Your Topic Title

## Executive Summary

<!-- 4–8 sentences: what, how, and what you learned -->

---

## Explanation of Topic & Notes

### Key Concepts

<!-- Definitions, background, how the technology works -->

### Diagrams or Tables

| Column A | Column B |
|----------|----------|
| data     | data     |

### References

<!-- Use inline links, footnote links, or numbered references — pick one style
     and be consistent. Examples: -->

- [Source Title](https://example.com)

<!-- Or footnote style:
[^1]: Source Title — https://example.com
[^2]: Another Source — https://example.com/other
-->

---

## Practical Applications

<!-- Real-world scenarios, modern relevance, connections to class material -->

### Commands and Examples

```bash
# example command here
```

<!-- Explain what each command does and when you would use it -->

---

## Advice for Future Students

<!-- Personal reflection, recommended resources, pitfalls to avoid -->

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment