Contributing to course material
Extra credit will be given to students who make contributions to the course material. Participating in expanding and improving the course material is a great way to practice the skills you have learned. Because this is done through GitHub pull requests (see below), it is also a way to practice (in a low-stakes setting) contributing to a public code repository. This is a very desirable skill in the job market. Employers often ask to see your Github account, even for non-engineering jobs.
Here is the link to the github repository for this site.
You can find more detailed information about pull requests on GitHub. Here is a quick guide.
How to Make a Pull Request on GitHub (without creating a local fork)
- Go to https://github.com. Click Sign up in the top-right corner and create an account.
- Once logged in, go to the course repository.
- At the top of the repository page, click the branch dropdown (it usually says
main
or master
). Type in a new branch name that describes your change (e.g., fix-typo
, add-example
). Press Enter to create the new branch.
- Edit files directly on GitHub:
- Navigate to the file you want to change.
- Click the pencil icon (Edit this file).
- Make your changes in the browser.
- Scroll down, write a clear commit message, and choose Commit directly to the new branch.
- After committing your changes, GitHub will prompt you to create a pull request.
- If you don’t see the prompt, click the Pull requests tab and then New pull request.
- Ensure that:
- The base branch is
main
(or the default branch of the repo).
- The compare branch is your new branch.
- Add a descriptive title and a detailed description of your changes (e.g., “fixed typo in Unit 3 Exercise 4” or “added example to Unit 8”).
- Click Create pull request.
- Wait for my review. I may not end up merging your changes for various reasons. For example, you might come up with a good problem, but it is too difficult or not aligned with the flow of the course. I will still give you credit if there is meaningful effort.
Organization of this repository
This repository is organized to make it easy to find and contribute to course materials:
- unitX.md: Main markdown files for each unit, containing lecture notes and exercises.
- _posts/: Contains blog-style posts and unit folders for additional materials.
- public/latex_notes/: Contains LaTeX source files and compiled PDFs for lecture notes and slides. This is the most important folder for contributing.
- public/: Contains static assets (images, CSS, JavaScript) and generated site files.
- _includes/ and _layouts/: Jekyll template files for site structure and navigation. This you most likely will not be editing.
- schedule.md, exams.md, project.md: Pages for the course schedule, exam info, and project instructions.