Review Badges#
Review After Class#
After each class, you will need to review the day’s material. This includes reviewing prismia chat to see any questions you got wrong and reading the notes. Most days there will be specific additional activities and questions to answer. These should be in your KWL repo. Review activities will help you to reinforce what we do in class and guide you to practice with the most essential skills of this class.
2023-09-07#
Activities:
Review the notes after I post them.
Fill in the first two columns of your KWL chart (on a branch for this badge).
review git and github vocabulary (include link in your badge PR)
Post an introduction to your classmates on our discussion forum
2023-09-12#
Activities:
review notes after they are posted, both rendered and the raw markdown include links to each in your badge PR
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
2023-09-14#
Activities:
Any steps in a badge marked lab are steps that we are going to focus in on during 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 used in your badge PR.
Try using setting up git using your favorite IDE or GitHub Desktop. Make a file gitoffline.md 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.
2023-09-19#
Activities:
Create a merge conflict in your github in class repo and resolve it using your favorite IDE,. Describe how you created it, show the files, and describe how your IDE helps or does not help in ide_merge_conflict.md. Give advice for when you think someone should resolve a merge conflict manually vs using an IDE. (if you do not regulary use an, IDE, try VSCode)
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.
2023-09-21#
Activities:
badge steps marked lab are steps that you will be encouraged to use lab time to work on.
Update your KWL chart with the new items and any learned items.
Clone the course website. Append the commands used and the contents of your
fall2023/.git/config
to a terminal_review.md (hint: history outputs recent commands and redirects can work with any command, not only echo). Edit the README.md, commit, and try to push the changes. What happens and what GitHub concept that we have not used yet might fix it? see yourvocab-
repo for a list of key github concepts. (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.md
clone your
messy_repo
locally and append thehistory.md
file to yourterminal_organization.md
Find your team’s repository. It will have a name like
fa23-team#
where#
is a number 1-4. Join the discussion on that repo about naming your team. Link to your comment directly in your PR for this badge (use the 3 dots menu to get the comment specific URL).
# Terminal File moving reflection
1. How was this activity overall? Did this get easier toward the end?
2. When do you think that using the terminal will be better than using your GUI file explorer?
3. What questions/challenges/ reflections do you have after this exercise?
## Commands used
2023-09-26#
Activities:
create an issue on your group repo for a tip or cheatsheet item you want to contribute. Make sure that your contribution does not overlap with one that amemb
clone your group repo.
work offline and add your contribution and then open a PR
review a class mate’s PR.
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.
2023-09-28#
Activities:
Review the notes, jupyterbook docs, and experiment with the
jupyter-book
CLI to determine what files are required to makejupyter-book build
run. Make your kwl repo into a jupyter book. Set it so that the_build
directory is not under version control.Add
docs.md
to 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.
2023-10-03#
Activities:
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
Update your kwl chart with what you have learned or new questions in the want to know column
In commit_contents.md, redirect the content of your most recent commit, its tree, and the contents of each tree and blob in that tree to the same file. Edit the file or use
echo
to put markdown headings between the different objects. Add a title# Complete Commit
to the file and at the bottom of the file add## Reflection
subheading with some notes on how, if at all this excercise helps you understand what a commit is.
2023-10-05#
Activities:
Read today’s notes when they are posted.
Add to your software.md a section about if that project does or does not adhere to the unix philosophy.
create methods.md and answer the following:
- which of the three methods for studying a system do you use most often when debugging?
- do you think using a different strategy might help you debug faster sometimes? why or why not?
2023-10-12#
Activities:
Make a table in gitplumbingreview.md in your KWL repo that relates the two types of git commands we have seen: plubming and porcelain. The table should have two columns, one for each type of command. Each row should have one git plumbing command and at least one of the corresponding git porcelain command(s). Include two rows:
add
andcommit
.Contribute to your group repo and review a classmate’s contribution. Include a link to your contribution and review in your badge PR comment using markdown link syntax. Your contribution can be a short how to with a code excerpt or a resource. Include a link to your contribution and review in your badge PR comment using markdown link syntax:
[text to display](url/of/link)
2023-10-17#
Activities:
find 2 more real world examples of using other number systems (either different bases or different symbols and bases) that are current. Describe them in
numbers.md
. Include links to your sources and be sure that the sources are trust worthy.Calculate the maximum number of git objects that a repo can have without needing 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
. Describe the scenario that would get you to that number of objects with the maximum or minimum number of commits in terms of what types of objects would exist. Assume normal git use with porcelain commands, not atypical cases with plubming commands. If you get stuck, outline what you know and then request a review.
2023-10-19#
Activities:
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
Create tagtypeexplore.md with the template below. Determine how many of the tags in the course website are annotated vs lightweight using
git cat-file
to inspect the tags and thegit tag
help to determine which tags are of each type.
# Tags
<!-- short defintion/description in your own words of what a tag is and what it is for -->
## Inspecting tags
Course website tags by type:
- annoted:
- lightweight:
2023-10-24#
Activities:
Update your KWL Chart learned column with what you’ve learned
Write a bash script that you can run in your group repo to generate a file with a list of all of your PRs and. Save the script as groupcontributions.sh and its output as group_contributions-YYYY-MM-DD.md in your KWL repo.
2023-10-31#
Activities:
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?
2023-11-02#
Activities:
create a new ssh key and configure it to your GitHub account
Practice using gcc. Repeat steps we did in class, change the order of parameters; try skipping steps to produce errors, etc. Then in
gcctips.md
summarize what you learned as a list of tips and reminders on what the parameters do/why/when you would need them (or not). (to reinforce what we learned)
2023-11-07#
Activities:
Create some variations of the
hello.c
we 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.
2023-11-14#
Activities:
Run and examine how rect.hack and max.hack in the
nand2tetris/projects/05/
folder work. Make notes and answer the questions below in assemblyexplore.md.
1. Explain how max.hack works in detail.
2. Write code in a high level language that would compile into this program.
3. What does this max.hack assume has happened that it doesn't include in its body?
2023-11-16#
Activities:
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
and
andor
in nandandor.mdAdd bitwise.md to your kwl and write the bitwise operations required for the following transformations (replace the
(_)
with a bitwise operator (&, |, ^, >>, <<
)):4 (_) 128 12493 (_) -12494 127 (_) 15 7 (_) 56 4 (_) -5 45 (_) 37 = 37 45 (_) 37 = 45 3 (_) 5 = 7 6 (_) 8 = 0 10 (_) 5 = 15
2023-11-21#
Activities:
Write a C program to compare values as doubles and as float (single precision/32bit) to see that this comparison issue 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
2023-11-28#
Activities:
Pick a component that is in the more detailed von Neumann (other than the ALU) and contribute an explanation of what it is to your group repo. Coordinate with your team so that each contribution is a different component by creating an issue stating what you will work on before contributing. Link to your PR in the group repo in your badge PR. All contributions should include a description of the component- what it does and how it is built- and it’s predecessors. All must include sources as markdown links.
review a classmate’s PR providing feedback and either approving or requesting changes
Work with your group mates to ensure both your PR and the one you reviewed get approved and merged.
2023-11-30#
Activities:
this is integrative-2
Add
conclusion.md
to your KWL repo. In the file include 2 sections: summary with an overall description of what you learned and how this course was/not helpful to you (paragraph or bullet form is fine) 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.
2023-12-05#
Activities:
Update your KWL chart.
Simulate a more computationally intensive program using the
sleep
function in C and compare the time of a threaded vs single threaded (ie serial, no intentional threading) version of the program. Include your two programs and the bash script to show how you tested it with notes on the performance in threaded.md (to better illustrate the impact of the threads)
2023-12-07#
Activities:
Choose two languges with different standings in 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
## Sources
in 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
.