Prepare for the next class

Prepare for the next class

Warning

these are listed by the date they were posted (eg the content here under Feb 1, was posted Feb 1, and should be done before the Feb 3 class)

below refers to following in the notes

import os
from IPython.display import Markdown, display

prep_file_list = sorted(os.listdir('../_prepare/'))
for prep_file in prep_file_list:
    date_str = prep_file[:-3]
    date_link = '[' + date_str + '](../notes/' + date_str + ')'
    display(Markdown(date_link))
    display(Markdown('../_prepare/' + prep_file))

2022-01-25

  • More practice with GitHub terminology. Accept this assignment, read through it, and follow the instructions at the end.

  • Review these notes, bring any questions you have to class

  • Read the syllabus, explore this whole website. Bring questions about the course. Be prepared for a scavenger hunt that asks you not to recall every fact about the course, but to know where to find informatio.

  • Think about one thing you've learned really well (computing or not) and how do you know that you know it? (bring your example)

2022-01-27

  1. Review these notes, both rendered as html and the raw markdown in the repository.

  2. find 2-3 examples of things in programming you have got working, but did not really understand. this could be errors you fixed, or something you just know you're supposed to do, but not why

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

  4. Make sure you have a working environment for next week. Use slack to ask for help.

    • check that you have Python installed with Jupyter, ideally with Anaconda

    • install jupyter book

    • install GitBash on windows (optional for others)

    • make sure you have Xcode on MacOS

    • install the GitHub CLI on all OSs

2022-02-01

  1. Complete the classmate issue in your in-class repository.

  2. read the notes PR, add or comment on a tip, resource, a bit of history in a sidebar or additional end of class question

  3. try using git in your IDE of choice, log any challenges you have on the practice repo (github-in-class-username), and tag @sp22instructors on GitHub. You can use either repo we have made in class, or one for an assignment in another course.

  4. using your terminal, download your KWL repo and update your 'learned' column on a new branch

  5. answer the questions below in a new markdown file, gitoffline.md in your KWL on your new branch and push the changes to GitHub

  6. Create a PR from your new branch to main do not merge this until instructed

  7. add your programming challenge(s) you have had as issues to our private repo or to the course website repo if you like. Put one 'challenge/question' per issue so that we can close them as addressed. See last class notes for prompt.

  8. Create or comment on a discussion thread in the private repo about the part of CS/ type of programming you like best/what you want to do post graduation.

2022-02-03

  1. Review the notes

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

  3. Add a glossary to the site to define a term or cheatsheet entry to describe a command that we have used so far.

  4. Examine a large project you have done or by finding an open source project on GitHub. Answer the reflection questions in software.md in your kwl repo. (will be in notes)

2022-02-08

  1. install h/w simulator

  2. Add a glossary, cheatsheet entry, or historical context/facts about the things we have learned to the site.

  3. Review past classes prep/more practice and catchup if appropriate

  4. Map out how you think about data moving through a small program using the levels of abstraction. Add this to a markdown table in your KWL chart repo called abstraction.md. If you prefer a different format than a table, that is okay, but put it in your KWL repo. It is okay if you are not sure, the goal is to think through this.

2022-02-10

  1. Read these notes and practice with the hardware simulator, try to understand its assembly and walk through what other steps happen. Make notes on what you want to remember most or had the most trouble with in hardwaresurvey.md

  2. Review and update your listing of how data moves through a program in your abstraction.md. Answer reflection questions below.

  3. Review the commit history and git blame of a repo in browser- what must be in the .git directory for GitHub to render all of that information? (be prepared to discuss this in class)

  4. Fill in the Know and Want to know columns for the new KWL chart rows below.

  5. Begin your grading contract, bring questions to class Tuesday.

2022-02-15

  1. review the notes and ensure that you have a new, empty repository named test with its branch renamed to main from master.

  2. Add the following to your kwl:

    |git workflows | _ | _ | _ |
    | git branches | _ | _ | _ |
    | bash redirects | _ | _ | _ |
    
  3. Practice with git log and redirects to write the commit history for your kwl chart to a file gitlog.txt and commit that file to your repo.

2022-02-17

  1. Review the notes

  2. For the core "Porcelain" git commands we have used (add, commit), make a table of which git plumbing commands they use in gitplumbing.md in your KWL repo

  3. In a gitunderstanding.md list 3-5 items from the following categories (1) things you have had trouble with in git in the past and how they relate to your new understandign (b) things that your understanding has changed based on today's class (c) things about git you still have questions about

  4. Make notes on how you use IDEs for the next week or so using the template idethoughts.md file in the course notes.

2022-02-22

  1. review the past two classes of notes

  2. find 3 more examples of using other number systems, list them in numbers.md

  3. Read about hexpeak from Wikipedia for an overview and one additional source. In your kwl repo in hexspeak.md summarize it in your own words, one interesting fact from your additional source and link to the source you found. Come up with a word or two on your own.

  4. (priority) Bring to class a scenario where you think git could help, but we haven't covered yet how to do it. (be prepared to post it to Prismia at the start of class)

2022-02-24

  1. Check that jupyter book is installed on your computer and the windows advice

  2. Fix any open PRs you have that need to be rebased.

  3. In your github in class repo, create a series of commits that tell as story of how you might have made a mistake and fixed it. Use git log and redirects to write that log to a file, gitstory.md in your KWL repo and then annotate your story to add in any narrative that didn't fit in the commit messages. This could be that you made a mistake in your code and used git to recover or that you got your git database to an undesirable state and got it back on track.

2022-03-01

  1. review the notes

  2. (priority) Convert your KWL repo to a jupyter book. Ignore the builds from your reposiotry. Use the documenation to choose your settings: link it to your repo, do not serve it publicly on github. Be sure that it can build and if you encounter problems, create a jupyterbooktroubleshooting.md file and log them with solutions if you find them.

  3. complete Feedback survey if you have not alredy.

2022-03-03

  1. Review the notes (to reinforce ideas and improve your memory of them)

  2. Update your KWL to include all rows listed on the KWL page of the course site. ( because tracking your learning deepens your learning)

  3. priority Make an issue on your grading contract repo that includes: a self-assessment of your progress on your contract so far and a plan going forward. Tag @sp22instructors so that we can help you meet your goals. (so that you get the grade you want)

  4. priority On Windows, install Putty ( we will use this Monday)

  5. Write a bash script that checks only if the number of files in your kwl meets or exceeds the minimum (number from list + 2 for toc and config) OR that does something else of your choosing. Add it to your KWL repo in a utils directory. Include Comments. (to practice so that you remember)

2022-03-08

  1. Review the notes (to reinforce ideas and improve your memory of them)

  2. priority add a ## summary section to your IDE notes where you summarize what you observed in your IDE usage and what questions or what features (we will work with this after break and I want you to prepare before break)

  3. Modify the sbatch job we made in class so that you get files back for any errors and output from the script. see the options (to review/practice what we did)

2022-03-10

  1. Do what you need to do to finish the semester well: eg rest, catchup on work, both (breaks are important)

  2. Review your IDE thoughts right before class on Tuesday March 22 (so you're ready for the activity in class)

2022-03-24

  1. Explore the IDE you use most and add ide.md to your kwl with notes about which features it does/not have. (to review/reinforce)

  2. priority Make a table comparing two programming languages you know in languages.md. The table should have 3 columns: one titled "Attributes" and one for each languages. Add one row for each attribute and fill in how that is for each language. Use the following list of attributes and add 1-3 more.

    create a list
    loop (with predetermined number of iterations)
    loop (until a condition is met)
    conditional
    create a string variable
    cast from one type to another
    
  3. read about the parts of the developer survey about languages

2022-03-28

  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 summaries the key points on each side. Add this to your kwl repo in language_love_dread.md

  2. Make sure that you have a C compiler installed on your computer. ideally gcc

2022-03-31

  1. Practice using gcc. Repeat steps we did in class, change the order of parameters. 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)

  2. Create operators.md and make some notes about what you know about operators. What kinds of operators are you familiar with? Which have you seen in programming? math?

  3. Add the following to your kwl chart

    |compiling | _ | _ | _ |
    | linking   | _ | _ | _ |
    | building | _ | _ | _ |
    | machine representation  | _ | _ | _ |
    | integers   | _ | _ | _ |
    | floating point  | _ | _ | _ |
    

2022-04-05

  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
    
  2. For the following figure out the bitwise operator:

    45 (_) 37 = 37
    45 (_) 37 = 45
    3 (_) 5 = 7
    6 (_) 8 = 0
    10 (_) 5 = 15
    
  3. 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: ` ¢¶"*`
    
  4. Read about integer overflow and in overflow.md describe what it is, use an example assuming an 8 bit system.

2022-04-07

  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(to practice)

  2. (priority) confirm that you can run the hardware simulator HardwareSimulator not CPUEmulator that we used before (we will use this in class )

2022-04-12

  1. Compare the 2 bit multiplier to the full adder in multiplication.md. Use that to explain how it works, relative to the fact that multiplication can be thought of like repeated addition.

  2. Study the 8 bit ALU. Try it out and be prepared to answer questions about how it works on Thursday.

  3. Read gates out of anything

2022-04-14

  1. Read about systems abstractions in CACM. Answer reflection questions in systemsabstractions.md:

    1. How many of these are familiar/not?
    1. How has you undertanding of these changed during this course.
    1. Do you think you understand this article more now than you would have at the beginning of the semester
    1. Write 3 questions and their answers that could be a quiz to see if someone understood or had misconceptions about the abstractions in this article.
    
  2. Review the notes and add one more historical event's information to the notes using either the computer history museum and/or additonal sources. Check the open PRs to ensure that no one else has submitted the same as you.

  3. Update your KWL chart based on the minimum rows list

2022-04-19

  1. Check that your KWL is up to date with all required rows and add a section (##) below your chart in the same file (either README or chart.md) that summarizes what you think about computer systems.

  2. (priorty) Read about systems vs applications programming. Create systemsprogramming.md to summarize the difference and what skills would be diffrent. Which do you have more experience with? What experience do you have with the other? (we will address this in class Thursday)

2022-04-21

  1. (Priority) Work with a partner to add "advice to future students" testimonials to website for this offering and "why take this class" testimonials to the main course site using an integration manager like workflow. Coordinate to determine who's fork will be used for integration of each . Each of you should clone that fork and add your contribution to resources/testimonials.md and fromstudents.md on a branch, <initials>_testimonial eg Professor Brown's would be smb_testimnial. Then merge the two contributions to a single testimonial branch. (both to help future students and to practice with branches and collaboration, we will work with these further in class next week)

  2. Review the notes.

  3. Update your KWL chart. Check that all rows are included.

  4. Simulate a more computationally intensive program using the sleep function in C and compare the time of a threaded vs single threaded version of the program. Include the two programs, output of your test, explanation text, and conclusions in singlevmultithread.md (to better illustrate the impact of the threads)

2022-04-26

  1. Review the questions from class today and in review.md write a solution and explanation for your confusion for any that you got wrong. If you missed class, write a solution guide for all of the questions in today's notes. (to reinforce concepts and make sure you understand them correctly)

  2. Update your KWL chart by adding 2-3 rows about topics you learned about that are not listed. (to review all concepts in class)

  3. Add a new, up to date overview of how you think about computing overallto your KWL repo. Mark the one you made at the beginning as "overview-pre" and this one as "overview-post" either with heading or the file name (to synthesize ideas)

  4. Confirm that your jupyterbook works. (we will work with your KWL in class on Thursday)

  5. Create PRs to the main sites from the last class's prepare for next class task. (more GitHub practice)

2022-04-28

  1. Review the questions from today's class and write a solution guide for any that you got wrong with notes about what confused you in review.md (to make sure you do not leave with misconceptions)

  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 things you want to make sure you remember from this class (to reinforce these concepts and serve as a quick reference for yourself in the future)