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.

2024-01-23#

related notes

Activities:

2024-01-25#

related notes

Activities:

2024-01-30#

related notes

Activities:

  1. Read the notes. If you have any questions, post an issue on the course website repo.

  2. Using your terminal, download your KWL repo. Include the command used in your badge PR comment. Be sure it is not inside another repository.

  3. Try using setting up git using your favorite IDE’s git integration (not its terminal) or GitHub Desktop. Make a file gitgui.md and include some notes of how it went. Give the file a heading like # Setting up <tool name>, with the actual tool name you setup in the title (eg Github Desktop or VSCode source control panel or …) Was it hard? easy? what did you figure out or get stuck on? Is the terminology consistent to the terminal or does it use different terms?

2024-02-01#

related notes

Activities:

  1. 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)

  2. 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.

2024-02-06#

related notes

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.

  1. Update your KWL chart with the new items and any learned items.

  2. Clone the course website. Append the commands used and the contents of your fall2023/.git/configto 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 your vocab- repo for a list of key github concepts. (answer in the terminal_review.md)

  3. 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

  4. clone your messy_repo locally and append the history.md file to your terminal_organization.md

2024-02-08#

related notes

Activities:

  1. 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.

  2. 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?

2024-02-15#

related notes

Activities:

  1. Review the notes, jupyterbook docs, and experiment with the jupyter-book CLI to determine what files are required to make jupyter-book build run. Make your kwl repo into a jupyter book. Set it so that the _build directory is not under version control. Complete basic customization setps for the necessary files and ensure that you do not add template files to your KWL repo.

  2. 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.

build idea build a sphinx extension that adds a particular feature to a documentation website. You can start a proposal and discuss ideas with Dr. Brown

2024-02-22#

related notes

Activities:

  1. Read today’s notes when they are posted.

  2. 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.md file 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.

  3. 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 learnign 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? 

2024-02-27#

related notes

Activities:

  1. 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

  2. Update your kwl chart with what you have learned or new questions in the want to know column

  3. 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.

2024-02-29#

related notes

Activities:

  1. 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 (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: add and commit.

2024-03-05#

related notes

Activities:

  1. 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

  2. Create tagtypeexplore.md with the template below. Determine how many of the tags in the course website are annotated vs lightweight using. (You may need to use git pull --tags in your clone of the course website)

# 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: 

2024-03-07#

related notes

Activities:

  1. 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

  2. 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.

  3. 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. 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.

2024-03-19#

related notes

Activities:

  1. Update your KWL Chart learned column with what you’ve learned

  2. Write a bash script that updates your badges.json file and then generates your progress report using courseutils we will use this in lab on 3/25

2024-03-21#

related notes

Activities:

  1. Try a new IDE and make some notes about how it was to learn in newide.md What is easy? hard? What could you apply from the ones you already use? Were there features you had trouble finding?

  2. Add at least one comment on others’ posts on the GitHub discussions about IDEs.

2024-03-26#

related notes

Activities:

  1. Answer the following in hpc.md of your KWL repo: (to think about how the design of the system we used in class impacts programming and connect it to other ideas taught in CS)

    1. What kinds of things would your code need to do if you were going to run it on an HPC system? 
    1. What sbatch options seem the most helpful?
    1. How might you go about setting the time limits for a script? How could you estimate how long a script will take?
    
  2. Read through this rsa encryption demo site to review how it works. Find 2 other encyrption algorithms that could be used wiht ssh (hint: try man ssh or 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.

  3. Post your public key and then decrypte the message we give you back.

2024-03-28#

related notes

Activities:

  1. 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.

  2. Write a bash script, assembly.sh to compile each program to assembly and print the number of lines in each file.

  3. 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.

2024-04-02#

related notes

Activities:

  1. 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. 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?
    
  2. 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?
    

2024-04-04#

related notes

Activities:

  1. 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

2024-04-09#

related notes

Activities:

  1. 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 and or in nandandor.md

  2. Add 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
    

2024-04-11#

related notes

Activities:

  1. 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.

  2. review a classmate’s PR providing feedback and either approving or requesting changes

  3. Work with your group mates to ensure both your PR and the one you reviewed get approved and merged.

2024-04-16#

related notes

Activities:

  1. Update your KWL chart.

  2. 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)

2024-04-18#

related notes

Activities:

this is integrative-2

  1. Add conclusion.md to 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 class

  2. Reflect 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.

2024-04-23#

related notes

Activities:

  1. Write solutions for each of the questions you did not get correct

2024-04-25#

related notes

Activities:

Your task is to help prevent students from carrying misconceptions on to future classes.

You may choose either one of these two formats. Your task is to clear misconceptions.

For every 4 vocabulary level misconceptions you address, you can earn 1 review badge, up to a maximum of 3 badges across the two types.

You may discuss your work with class mates but must submit work individually and should explain the misconception in your own words

Each question will have 3 parts:

  • the question with answer options; 1 correct and 3 wrong

  • hint/replies that could be sent to a student that picked each option

  • an overall explanation of the misconception(s) with links to high quality external references and/or class notes.

You will work in a dedicated repo for this so that you work with a group. The repo’s README has more detailed instructions including an option for explore badges instead.