Review badges will help you to reinforce what we do in class and guide you to practice with the most essential skills of this class, they represent the minimum bar for C level work. This includes reviewing prismia chat to see any questions you got wrong and reading the notes.
2026-01-22¶
Activities:
Find & Review the notes from today on the course website, include the link in your badge PR
if you have not already joined the course organization, accept this assignment and join the existing team.
Read the notes from today’s class carefully
Fill in the first two columns of your KWL chart (content of the PR; named to match the badge name)
Post an introduction to your classmates on our discussion forum (include link to your comment in PR comment, must accept above to see)
Set a github profile picture (can be of yourself, or anything else, just make it not the default)
2026-01-27¶
Activities:
the text in () below is why each step is assigned
Review today’s notes both rendered and the raw markdown versions. Include links to both views in your badge PR comment. (to review the material and get familiar with the raw version)
Complete your about file on the same branch. Mark the PR ready for review. Request a review from
@brownsarahm.map out your computing knowledge and add it to your kwl chart repo. this can be an image that you upload or a text-based outline in a file called prior-knowledge-map. (optional) try mapping out using mermaid syntax, we’ll be using other tools that will faciltate rendering later (what we will learn will connect a lot of ideas, mapping out where you start, sets you up for success)
2026-01-29¶
Activities:
Any steps in a badge marked lab are steps that we are going to focus in on during the next lab time. Remember the goal of lab is to help you complete the work, not add additional work. The lab checkout will include some other tasks and then we will encourage you to work on this badge while we are there to help. Lab checkouts are checked only for completion though, not correctness, so steps of activities that we want you to really think about and revise if incorrect will be in a practice or review badge.
Read the notes. If you have any questions, post an issue on the course website repo.
Using your terminal, download your KWL repo. Include the command(s) used in your badge PR.
Try using setting up git using your favorite IDE’s interface or GitHub Desktop. Make a file gitoffline.md in your kwl repo and include some notes of how it went. Was it hard? easy? what did you figure out or get stuck on? Is the terminology consistent or does it use different terms?
lab Explore the difference between git add and git commit: try committing and pushing without adding, then add and push without committing. Describe what happens in each case in a file called gitcommit.md. Compare what happens based on what you can see on GitHub and what you can see with git status.
2026-02-03¶
Activities:
Review the notes from today
Read more details about git branches(you can also use other resources) add branches.md to your KWL repo and describe how branches work, in your own words. Include one question you have about branches or one scenario you think they could help you with.
2026-02-05¶
Activities:
badge steps marked lab are steps that you will be encouraged to use lab time to work on. In this case, in lab, we will check that you know what to do, but if we want you to do revisions those will be done through the badge.
Review the notes from today
Create a merge conflict in your KWL repo on the branch for this badge and resolve it using your favorite IDE, then create another one and resolve it on GitHub in browser (this requires the merge conflict to occur on a PR). Describe how you created each conflict, show the files, and describe how your IDE helps or does not help in merge_conflict_comparison.md. Give advice for when you think someone should resolve a merge conflict in GitHub vs using an IDE. (if you do not regulary use an, IDE, try VSCode) You can put content in the file for this step for the purpose of making the merge conflicts for this exercise.
Clone the course website. Append the commands used and the contents of your
fall2025/.git/configto a file in your KWL called terminal_review.md (hint:historyoutputs recent commands and redirects can work with any command, not onlyecho). Edit theREADME.mdin the course website (you can add anything), commit, and try to push the changes. Describe what the error means and which GitHub Collaboration Feature you think would enable you to push? (answer in theterminal_review.md)lab Organize the provided messy folder in a Codepsace (details will be provided in lab time). Commit and push the changes. Answer the questions below in your kwl repo in a file called
terminal_organization.mdclone your
messy_repolocally and append thehistory.mdfile to a file calledterminal_organization.md
2026-02-10¶
Activities:
Review the notes from today
Export your git log for your KWL main branch to a file called gitlog.txt and commit that as exported to the branch for this issue. note that you will need to work between two branchse to make this happen. Append a blank line,
## Commands, and another blank line to the file, then the command history used for this exercise to the end of the file.In commit-def.md compare two of the four ways we described a commit today in class. How do the two descriptions differ? How does defining it in different ways help add up to improve your understanding?
Find the detailed view of the commit that added today’s notes to the website in github.com and locally. In
commit-detail.mdinclude the url to the commit in github and the contents of the commit object with some notes on any differences (if any).
2026-02-12¶
Activities:
Review the notes from today
Most real projects partly adhere and at least partly deviate from any major design philosophy or paradigm. Review the open source project you looked at for the
software.mdfile from before and decide if it more adheres to or deviates from the unix philosophy. Add a## Unix Philosophy <Adherance/Deviation>section to your software.md, setting the title to indicate your decision and explain your decision in that section. Provide at least two specific examples, using links to specific lines of code or specific sections in the documentation that support your claims.create methods.md and answer the following:
- Reflecting on your own programming practice, is initial understanding of concepts or debugging later more challenging for you? and why? Your answer here will be "your chosen context" for the rest of the questions.
- which of the three methods for studying a system do you use most often in your chosen context? Give an example, like an anectdote of learning something new or a tricky bug you solved.
- do you think using a different strategy might help you in your chosen context sometimes? why or why not? 2026-02-17¶
Activities:
Review the notes from today
Read about different workflows in git and describe which one you prefer to work with and why in favorite_git_workflow.md in your kwl repo. Two good places to read from are Git Book and the atlassian Docs
In commit_contents.md, redirect the content of your most recent commit to your kwl repo, its tree, and the contents of one blob. Edit the file or use
echoto put markdown headings between the different objects. Add a title# Complete Committo the top of the file and at the bottom of the file add## Reflectionsubheading with some notes on how, if at all this excercise helps you understand how git works.
2026-02-19¶
Activities:
Review the notes from today
Review the notes, jupyterbook docs, and experiment with the
jupyter-bookCLI to determine what files are required to makejupyter-book buildrun in your kwl repo. Make your kwl repo into a jupyter book, by manually adding those files. Do not add the whole template to your repo, make the content you have already so it can build into html. Set it so that the_builddirectory is not under version control.Add
docs.mdto your KWL repo and explain the most important things to know about documentation in your own words using other programming concepts you have learned so far. Include in a markdown (same as HTML<!-- comment -->) comment the list of CSC courses you have taken for context while we give you feedback.
2026-02-26¶
Activities:
Review the notes from today
Use git bisect to find the first bad commit in the toy bug repo, save the command history and the bad commit hash to git_debug.md
Determine how many of the tags in the course website are annotated vs lightweight using (hint: annotated are objects, lightweight just point to commits). (You may need to use
git pull --tagsin your clone of the course website)
# Tags
<!-- short defintion/description in your own words of what a tag is and what it is for -->
## Comparing tag types
<!-- include your experiment terminal history and interpretation -->
## Inspecting tags
Course website tags by type:
- annoted:
- lightweight:
<!-- include lists of tags for each type -->build idea create tool that can automatically generate a set of files, and make commits, including one that is the “error”, so that each student could run a local command and get a repo with the error at a different point, for a more personalized version of the toy bug exercise.
2026-03-03¶
Activities:
Review your notes from the activity
Choose two languages from the desired admired list. THis could be a highly admired and least desired; it could be one with a small gap and one with a large gap. Read a few posts about each language and try to figure out why it is/not admired or desired. Summarize your findings. Include links to all of the posts you read in a section titled
## Sourcesin your markdown file. For each source, make a bulleted list with some notes about the author’s background and any limitations that might put on the scope of their opinions. (for example, a data scientists’s opinion on languages is very valuable for data science, but less for app development) Add this to your kwl repo inlanguage_love_dread.md.
2026-03-05¶
Activities:
Review the notes from today
Make a table in gitplumbingreview.md in your KWL repo that relates the two types of git commands we have seen: plumbing and porcelain. The table should have two columns, one for each type of command (plubming and porcelain). Each row should have one git porcelain command and at least one of the corresponding git plumbing command(s). Include two rows:
addandcommit.
2026-03-10¶
Activities:
tip: numbers do not need to be in decimal
Review the notes from today
Analyze the xor hashing algorithm in the notes to determine which properties of a cryptographic hash are/not met. Include your analysis in xorhash.md
find 2 more real world examples of using other number systems (either different bases or different symbols and bases) not mentioned in class that are currently used. Describe the number system and its usage in numbers.md. Include links to your sources and be sure that the sources are trustworthy.
Calculate the maximum number of git objects that a repo can have without requiring you to use more than the minimum number of characters to refer to any object and include that number in gitcounts.md with a title
# Git counts. How many commits would you be able to make before you have to use more than the minimum number of characters to refer to any git object if each commit added a new folder with 1021 files in it? If you get stuck, outline what you know and then request a review.
2026-03-12¶
Activities:
Review the notes from today
While we saw many types of gates today, but we actually could get all of the operations needed using only NAND gates. Work out how to use NAND gates to implement
andandorin nandandor.mdFind what bitwise operation would complete each of these transformations (eg
1 << 3 = 4and4^4 = 0) that is replace the ? with a bitwise operator. For each show work to explain how you found it inbitwise.md:4 ? 3 = 32 11 ? 7 = 3 8 ? 2 = 2
2026-03-24¶
Activities:
Review the notes from today
Write a C program to compare values as doubles and as float (single precision/32bit) to see that the issue we saw with .1 is related to the IEEE standard and is not language specific. Make notes and comparison around its behavior and include the program in a code cell in cdouble.md
2026-03-26¶
Activities:
Review the notes from today
Run and examine how rect.hack and max.hack in the
projects/05/folder of the CPU Emulator work. Make notes and answer the questions below in assemblyexplore.md.1. Write an excerpt of code in a high level compiled language that would compile into this `max.hack``. 1. What does rect.hack do? 1. What did you learn trying to figure out how it works?
2026-03-31¶
Activities:
Review the notes from today
compare and contrast two different types of storage (choose two: register, RAM, ROM, disk) using an analogy of your choice. You may use AI to help, but you need to be able to discuss the idea. To get credit for this badge, you must discuss with Dr. Brown either in lab or office hours.
2026-04-02¶
Activities:
Review the notes from today
Read through this rsa encryption demo site to review how it works. Find 2 other encyrption algorithms that could be used with ssh (hint: try
man sshor read it online) and compare them in encyryption_compare. Your comparison should be enough to advise someone which is best and why, but need not get into the details.File permissions are represented numerically often in octal, by transforming the permissions for each level (owner, group, all) as binary into a number. Add octal.md to your KWL repo and answer the following. Try to think through it on your own, but you may look up the answers, as long as you link to (or ideally cite using jupyterbook citations) a high quality source.
1. Describe how to transform the permissions [`r--`, `rw-`, `rwx`] to octal, by treating each set as three bits. 1. Transform the permission we changed our script to `rwxr-xr-x` to octal. 1. Which of the following would prevent a file from being edited by other people 777 or 755 and why?
2026-04-07¶
Activities:
Review the notes from today
Update your KWL Chart learned column with what you’ve learned
write a bash script to make it so that
cating the the files in yourgh_inclassrepo does not make the prompt move
2026-04-09¶
Activities:
Review the notes from today
Create some variations of the
hello.cwe made in class. Make hello2.c print twice with 2 print commands. Make hello5.c print 5 times with a for loop and hello7.c print 7 times with a for loop. Build them all on the command line and make sure they run correctly.Write a bash script, assembly.sh to compile each program to assembly and print the number of lines in each file.
Put the output of your script in hello_assembly_compare.md. Add to the file some notes on how they are similar or different based on your own reading of them.
2026-04-16¶
Activities:
Review the notes from today
Update your KWL chart.
If you were to use something from this course in an internship for an interview, what story could you tell?
Use
timeto compare using a bash loop to do the same operation on every file in a folder vs using the wildcard operator and sending the list of files to command. Inloop_v_list.mdinclude your code exerpts, the results and hypothesize why the faster one is faster.
2026-04-16¶
Activities:
Review the notes from today
Update your KWL chart.
If you were to use something from this course in an internship for an interview, what story could you tell?
Use
timeto compare using a bash loop to do the same operation on every file in a folder vs using the wildcard operator and sending the list of files to command. Inloop_v_list.mdinclude your code exerpts, the results and hypothesize why the faster one is faster.
2026-04-16¶
Activities:
Review the notes from today
Update your KWL chart.
If you were to use something from this course in an internship for an interview, what story could you tell?
Use
timeto compare using a bash loop to do the same operation on every file in a folder vs using the wildcard operator and sending the list of files to command. Inloop_v_list.mdinclude your code exerpts, the results and hypothesize why the faster one is faster.
2026-04-16¶
Activities:
Review the notes from today
Update your KWL chart.
If you were to use something from this course in an internship for an interview, what story could you tell?
Use
timeto compare using a bash loop to do the same operation on every file in a folder vs using the wildcard operator and sending the list of files to command. Inloop_v_list.mdinclude your code exerpts, the results and hypothesize why the faster one is faster.
2026-04-16¶
Activities:
Review the notes from today
Update your KWL chart.
If you were to use something from this course in an internship for an interview, what story could you tell?
Use
timeto compare using a bash loop to do the same operation on every file in a folder vs using the wildcard operator and sending the list of files to command. Inloop_v_list.mdinclude your code exerpts, the results and hypothesize why the faster one is faster.
2026-04-23¶
Activities:
Review the notes the course of the semester; the final lab wil be cumulative this is integrative-2
Add
conclusion.mdto your KWL repo. In the file include 2 sections: (1) summary with an overall description of what you learned and how this course was/not helpful to you (paragraph or bullet form is fine) (2) key points with the top 10 thigns you want to make sure you remember from this classReflect on how this course impacts programming/debugging skills in
skillup.md. You can write this as how you think your own skill has improved or as if you are convincing another student to take this class. Touch on at least three topics.
2026-04-16¶
Activities:
Review the notes from today
Update your KWL chart.
If you were to use something from this course in an internship for an interview, what story could you tell?
Use
timeto compare using a bash loop to do the same operation on every file in a folder vs using the wildcard operator and sending the list of files to command. Inloop_v_list.mdinclude your code exerpts, the results and hypothesize why the faster one is faster.
2026-04-21¶
Activities:
Review the notes from today
Write solutions for each of the questions you did not get correct
2026-04-14¶
Activities:
Review the notes from today
Try a new IDE and review it in newide.md. Your review should be 3 secictions: Summary, Evaluation, and Reflection. Summary should be 1-3 sentences of your conclusions. Evaluation should be a detailed evaluation according to your group’s criteria and one other group’s criteria. In Reflection, reflect on your experience: What is easy? hard? What could you apply from the ones you already use? Were there features you had trouble finding?
2026-04-16¶
Activities:
Review the notes from today
Update your KWL chart.
If you were to use something from this course in an internship for an interview, what story could you tell?
Use
timeto compare using a bash loop to do the same operation on every file in a folder vs using the wildcard operator and sending the list of files to command. Inloop_v_list.mdinclude your code exerpts, the results and hypothesize why the faster one is faster.