These tasks are usually not based on material that we have already seen in class. Instead, they are to have you start thinking about the topic that we are about to cover before we discuss it in class. Prepare tasks are typically in one of the following forms:
refreshing your memory of related concepts that you should have learned in a previous course (like pointers from 211). Getting whatever you know about the topic fresh in your mind in advance of class helps your brain get ready to learn the new material more easily; brains learn by making connections.
brainstorm something that we will use in class time, so that you are not put on the spot and do not get stuck thinking of an example. These will be things that you could probably do on the fly, but I give them in advance so that people have extra time if they need it.
install or download required software or files so that you can engage in the class. If wifi in class was always fast this wouldn’t be necessary but sometimes we overload the wifi in class.
preview new material for a few topics, you will be asked to read some things before class so that we can discuss them in class. This might be documentation of a tool, an overview of an idea or some survey results where I want you each to think about what is interesting to you.
When the tasks include questions, the correct answer is not as important for these activities as it is to do them before class. We will build on these ideas in class. These are evaluated on completion only[1] and included in your experience badge. We may ask you questions or leave comments if appropriate, in that event you should reply and then we will approve. These questions will typically be so that we can understand and help you, the goal is to keep an open conversation, not to make you revise the work.
Badges will be posted as issues and instructions will be here as well. 2025-09-09¶
Activities:
(for lab Monday) Read the syllabus section of the course website carefully and explore the whole course website
(for lab Monday) Bring questions about the course
(for class Tuesday) Think about one thing that you know really well (computing or not). Be prepared to discuss the following: How do you know that you know it? What was it llike to first learn it? (nothing written to submit, but you can use your issue to take notes if you would like)
2025-09-11¶
Activities:
Choose where on your local computer you will save work for this class and make note of that for yourself
Think about how files are organized in your computer. You do not need to go learn or read about this, but spend a few minutes thinking about what you know about this or how you interact with it.
2025-09-16¶
Activities:
Find the glossary page for the course website, link to it in a comment.
Review the terms for the next class: shell, terminal, bash, git, zsh, powershell, GitHub. Make a diagram using mermaid to highlight how these terms relate to one another. Put this in a file called
terminal-vocab.mdon a branch linked to this issue. You might like to work with mermaid.live. GitHub can render mermaid diagrams in issues, prs, discussions, wikis and markdown filesCheck your kwl repo before class and see if you have recieved feedback. Then, reply or merge accordingly.
2025-09-18¶
Activities:
Examine an open source software project and fill in the template below in a file called software.md in your kwl repo on a branch that is linked to the prepare issue. You do not need to try to understand how the code works for this exercise, but instead focus on how the repo is set up, what additional information is in there beyond the code. You may pick any active mature open source project, meaning a project with recent commits, over 50 commits, active PRs and issues, multiple contributors. In class we will have a discussion and you will compare what you found with people who examined a different project. Coordinate with peers (eg using the class discussion or in lab time) to look at different projects in order to discuss together in class.
## Software Reflection
Project : <markdown link to repo>
## README
<!-- what is in the readme? how well does it help you -->
## Contents
<!-- denote here types of files (code, what languages, what other files) -->
## Automation
<!-- comment on what types of stuff is in the .github directory -->
## Documentation
<!-- what support for users? what for developers? code of conduct? citation? -->
## Hidden files and support
<!-- What type of things are in the hidden files? who would need to see those files vs not? -->
Some open source projects if you do not have any you are familiar with:
2025-09-23¶
Activities:
Bring git questions or scenarios you want to be able to solve to class (in your mind or comment here if that helps you remember)
Try read and understand the workflow files in your KWL repo, the goal is not to be sure you understand every step, but to get an idea about the big picture ideas and just enough to complete the following. Try to modify files, on a prepare branch, so that your name is already filled in and
AymanBxorthomaspeck11(whoever you sit closer to in class) is already requested as a reviewer when your experience badge (inclass) action runs. We will give the answer in class, but especially do not do this step on the main branch it could break your action.
Hints:
Look for bash commands that we have seen before
cpcopies a filecheck what the experience makeup action does
2025-09-25¶
Activities:
review the notes from the last class and make sure you understand. Bring any questions that come up for you or post them as issues on the course website.
Think through and make some notes about what you have learned about design (software or otherwise) so far. Try to answer the questions below in
design_before.md. If you do not now know how to answer any of the questions, write in what questions you have.
- What past experiences with making decisions about design of software do you have?
- what experiences studying design do you have?
- What processes, decisions, and practices come to mind when you think about designing software?
- From your experiences as a user, how you would describe the design of command line tools vs other GUI based tools?2025-09-30¶
Activities:
review the notes on what is a commit. In gitdef.md on the branch for this issue, try to describe git in the four ways we described a commit. the point here is to think about what you know for git and practice remembering it, not “get the right answer”; this is prepare work, we only check that it is complete, not correct
Start recording notes on how you use IDEs for the next couple of weeks using the template file below. We will come back to these notes in class later, but it is best to record over a time period instead of trying to remember at that time. Store your notes in your fall25 repo in idethoughts.md on a dedicated
ide_prepbranch. This step is prep for after a few weeks from now, not for Sept 30; keep this branch open until it is specifically asked for
2025-10-02¶
Activities:
If on windows, you may need to reinstall gitbash or follow other steps from the gh docs mintty page for the following steps to work locally
install jupyterbook this is not the same as
jupyter laborjupyter notebookthat 310 usesMake sure that the
ghCLI tool works by using it to create an issue called test on your kwl repo withgh issue create. If on Windows try reinstalling with minttyPost an example of documentation for libraries, frameworks, or developer tools that you have used and make a post on the class discussion board. Refresh your memory of the one you post and skim through two other examples.
2025-10-02¶
Activities:
If on windows, you may need to reinstall gitbash or follow other steps from the gh docs mintty page for the following steps to work locally
install jupyterbook this is not the same as
jupyter laborjupyter notebookthat 310 usesMake sure that the
ghCLI tool works by using it to create an issue called test on your kwl repo withgh issue create. If on Windows try reinstalling with minttyPost an example of documentation for libraries, frameworks, or developer tools that you have used and make a post on the class discussion board. Refresh your memory of the one you post and skim through two other examples.
2025-10-07¶
Activities:
Create a file gitcommandsbreakdown.md and for each command in the template below break down what steps it must do based on what we have learned so far about git objects. I started the first one as an example. Next class, we will make a commit using plumbing commands, so thinking about what you already know about commits will prepare you to learn this material.
# What git commands do
## `git status`
- check the branch of the HEAD pointer
- compare the HEAD pointer to the FETCH_HEAD, if different trace back through parent commits to find out how many commits apart they are and which is ahead (or if both ahead and behind)
- compare the snapshot at the HEAD pointer's commit to the current working directory
- if staging is not empty, compare that to the working directory
## `git commit`
-
## `git add`
- 2025-10-09¶
Activities:
Read the notes from October 7. We will build on these directly in the future. You need to have the
testrepo with the same status for lab on class on 3/5 Make sure you have completed all of the steps in the github inclass repo.Add to your IDE idethoughts.md file if you have not in a few days on a dedicated
ide_prepbranch. This is prep for after a few weeks from now, not for October 9; keep this branch open until it is specifically asked for
2025-10-14¶
Activities:
Take a few minutes to think what you know about hashing and numbers. Create hash_num_prep.md with two sections:
## Hashingwith a few bullet points summarzing key points about hashing, and## Numberswith what types of number representations you know.start commenting/expressing interest on build/explore ideas if you plan to do any
2025-10-16¶
Activities:
Review the GitHub Action files in your KWL repo and make note of what if any syntax in there is unfamilar. (note that link will not work on the rendered website, but will work on badge issues)
Use quote reply or edit to see how I made a relative path to a location within the repo in this issue. (to see another application of paths)
Check out the github action marketplace to see other actions that are available and try to get a casual level of understanding of the types of things that people use actions for.
2025-10-21¶
Activities:
In fractionalbinary.md use 8 bits to represent the following numbers by using 4 bits as usual (8,4,2,1) and the other 4 bits are 1/2, 1/4, 1/8, 1/16th:
1.5
12.75
7.5625
15.9375
Add to your file some notes about the limitations of representing non integer values this way. How much would using more bits help with, what limitations are not resolved by adding more bits. For example, how could you represent .1?
2025-10-23¶
Activities:
think about what you know about networking
make sure you have putty if using windows
get the big ideas of hpc, by reading this IBM intro page and some hypothetical people who would attend an HPC carpentry workshop. Make a list of key terms as an issue comment
2025-10-28¶
Activities:
ensure you can log into seawulf
2025-10-30¶
Activities:
Think about what you know about code compilation, be ready to discuss.
Refresh your memory of where in this course we have talked about building content
ensure you can log into seawulf
2025-11-04¶
Activities:
Review the notes about floats to prepare for lab.
Think about what you know about how computer execute code to prepare for class/
2025-11-06¶
Activities:
Refresh your knowledge of logical operations/ logic gates: and, or, xor, not. For an example reference see the logicemu emulator we will use in class
2025-11-13¶
Activities:
watch this short video on an alternative adder
and this video on half adder with legos
2025-11-20¶
Activities:
2025-11-20¶
Activities:
2025-11-25¶
Activities:
Preview the Stack Overflow Developer Survey Technology section parts that are about programming languages. Create dev_insights.md with 3-5 bullet points for discussion. These can be facts you found most interesting or questions you have based on the results (it can be clarifying or deeper questions)
2025-11-27¶
Activities:
2025-12-04¶
Activities:
Think about things you have learned in this class and how they relate to using abstraction. Reflect on what you have found most/least valuable and interesting throughout the semester.
Post bullet points on your prepare issue.
you will get full credit as long as all of the things are done in good faith even if not correct. However if it looks like you tried to outsource (eg to LLM) or plagiarize a solution, you will not earn credit for that.