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-01-24#

related notes

Activities:

  1. Review the notes after I post them.

  2. Fill in the first two columns of your KWL chart.

  3. review git and github vocabulary (include link in your badge PR)

2023-01-26#

related notes

Activities:

  1. review notes after they are posted, both rendered and the raw markdown include links to each in your badge PR

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

  3. fill in the first two columns of your KWL chart

  4. complete the syllabus quiz. If you get less than 100%, submit an FAQ for the course website in your KWL repo in a file named syllabus-faq.md about something that confused you with your best guess at the correct answer. If you get 100%, make a note in your badge PR.

2023-01-31#

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.

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

  4. Reorganize a folder on your computer ( good candidate may be desktop or downloads folder), using only a terminal to make new directories, move files, check what’s inside them, etc. Answer reflection questions (will be in notes) in a new file, terminal.md in your kwl repo. Start with a file explorer open, but then try to close it and use only command line tools to explore and make your choices. If you get stuck, make notes.

### Terminal File moving reflection
1. Did this get easier toward the end?
1. What if anything did you get stuck on
1. When do you think that using the terminal will be better than using your GUI file explorer?

2023-02-02#

related notes

Activities:

  1. Review the notes

  2. Find your team’s page on GitHub. It is named like Spring2023-group-# join the discussion that I started on your page.

  3. Complete the classmate issue in your inclass repo from today. Find a partner from within your assigned team by posting on your team’s page. Link to your commits on your badge issue.

  4. Try using git using your favorite IDE or GitHub Desktop. You can either do the other tasks for this badge, work on a different badge, or add & commit some random files in your inclass repo. Answer the questions below in gitcompare.md.

Questions:

## Reflection

1. What tool's git integration did you use? 
1. Compare and contrast using git on the terminal and through the tool you used.  When would each be better/worse?  
1. Did using a more visual representation help you understand better? 
1. Describe the staging area (what happens after git add) in your own words. 
2. what step is the hardest for you to remember? what do you think might help you? 

2023-02-07#

related notes

Activities:

  1. Read today’s notes

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

  3. 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-02-09#

related notes

Activities:

  1. create gitadvice.md and write tips for how often to commit and how to avoid merge conflicts. Include at least 3 tips.

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

  3. clone your group repo.

  4. work offline and add your contribution and then open a PR

  5. review a class mate’s PR.

2023-02-14#

related notes

Activities:

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

  2. Add to your software.md a section about if that project does or does not adhere to the unix philosophy.

  3. 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-02-16#

related notes

Activities:

  1. Make your kwl repo into a jupyter book. Review the notes carefully for what files are required to make jupyter-book build run. Ignore your build directory.

  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.

  3. Learn about the documentation ecosystem in a language that you know besides Python. In docs.md include a summary of your findings and compare and contrast it to jupyter book/sphinx. Include a bibliography of the sources you used. You can use this generator for informal sources and google scholar for formal sources.

2023-02-21#

related notes

Activities:

  1. Review the notes

  2. Update your kwl chart with what you have learned or new questions

  3. Practice with git log and redirects to write the commit history of your main branch for your kwl chart to a file gitlog.txt and commit that file to your kwl repo.

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

2023-02-23#

related notes

Activities:

  1. Review the notes

  2. 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 commands. Each row should have one git plumbing command and at least one of the corresponding git porcelain command(s). Include three rows: git add, git commit, and git status.

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

[text to display](url/of/link)

2023-03-02#

related notes

Activities:

  1. Read the notes and repeat the activity if needed

  2. use git cat-file over the objects to draw a graph diagram of your current status in your test directory include your drawing in test_repo_map.md using mermaid syntax to diagram it. Name each node in your graph with 5-7 characters of the hash and the type. eg 0c913 commit

2023-03-07#

related notes

Activities:

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

2023-03-09#

related notes

Activities:

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

  2. Write a bash script that can generate a file in your KWL repo with a list of all of your contributed PRs. Save the script as groupcontributions.sh and its output as group_contributions-YYYY-MM-DD.md

2023-03-21#

related notes

Activities:

  1. 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-review.md to your KWL repo and answer the following.

    1. Transform the permissions [`r--`, `rw-`, `rwx`] to octal, by treating it 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?
    
  2. create a vocab-quiz.md file with 10 mutliple choice questions that cover topics from at least 5 different class sessions. Each question should have 4 options, 1 correct and 3 that represent a reasonable, but incorrect idea someone may have. Questions should check that a person understand the key terms of the first half of the course. For each option explain why it is/not correct in a way that would help clarify someone’s confusion if they had picked that answer instead of the correct answer. Use the following syntax:

Question text 

- [ ] a wrong answer
- [ ] another wrong 
- [x] correct answer marked with x
- [ ] another wong

---

- explanation for first wrong
- explanation for second wrong
- key point about correct
- explantion for third wrong 

---

Next question 

2023-03-23#

related notes

Activities:

  1. Explore the IDE you use most and add frequentide.md to your kwl with notes about which features it does/not have based on what you learned in the in-class activity.

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

2023-03-28#

related notes

Activities:

  1. For 2 languages from the loved vs dreaded list (one top 5; one bottom 5) read 2-3 posts about why people love/hate that language and summarize the key points on each side (meaning pros and cons for both loved and dreaded languges). Include links to all of the posts you read in a section titled ## Sources in your markdown file. 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 in language_love_dread.md.

2023-04-04#

related notes

Activities:

note: this is integrative3

  1. Update your KWL Chart based on what you have learned.

  2. Contribute to your group repo and review a team mate’s PR.

  3. Install gcc locally and practice using it. Repeat steps we did in class on your computer and then change the order of parameters; try skipping steps to produce errors, etc. Export the list of variations you tried and summarize what you learned as a list of tips and reminders on what the parameters do/why/when you would need them (or not) in gcctips.md. (to reinforce what we learned)

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

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

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

  7. Read about sbatch. 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?
    2. What Sbatch options seem the most helpful?
    3. How might you go about setting the time limits for a script? How could you estimate how long it will take?
    

2023-03-30#

related notes

Activities:

2023-04-06#

related notes

Activities:

  1. Add bitwise.md to your kwl and write the bitwise operations required for the following transformations:

    4 -> 128
    12493 - > -12494
    127 -> 15
    7 -> 56
    4 -> -5
    

shifts

  1. For the following figure out the bitwise operator:

    45 (_) 37 = 37
    45 (_) 37 = 45
    3 (_) 5 = 7
    6 (_) 8 = 0
    10 (_) 5 = 15
    

ands/ors

  1. Create readingbytes.md and answer the following:

    1. if a file had the following binary contents, what would it display in the terminal? Describe how you can figure this out manually and check it using C or Python. '01110011011110010111001101110100011001010110110101110011'
    1. What is the contents of the `sample.bn` if `cat sample.bn` is: ` ¢¶"*`
    
  2. Read about integer overflow and in overflow.md describe what it is, use an example assuming an 8 bit system.

2023-04-11#

related notes

Activities:

Free. You may do the following as a bonus practice badge though.

  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 it in a code cell in cdouble.md

2023-04-13#

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 a half adder and describe it in nandhalf.md

check that what they describe does the same as an and and an xor, be sure they show how they match.

  1. In addertypes.md compare ripple adders and lookahead adders.

    1. Give a synopsis of each adder type
    1. Compare them in terms of time (assume that each gate requires one unite of time)
    1. Compare them in terms of space/cost by counting the total number of gates required.
    

2023-04-20#

related notes

Activities:

this is integrative-2

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

2023-04-25#

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)

2023-04-27#

related notes

Activities:

integrative-3 Write multiple 10 choice questions that assess understanding of terminology from after spring break your KWL repo in a file final-vocab.md.

Each question should have 4 options, 1 correct and 3 that represent a reasonable, but incorrect idea someone may have. Questions may check understanding of key concepts or terminology. For each option explain why it is/not correct in a way that would help clarify someone’s confusion if they had picked that answer instead of the correct answer. Use the following syntax(correct answer can be in any position):

Question text 


- [ ] a wrong answer
- [ ] another wrong 
- [x] correct answer marked with x
- [ ] another wong


---


- explanation for first wrong
- explanation for second wrong
- key point about correct
- explantion for third wrong 


---


Next question