Prepare for the next class#
These tasks are not always based on things that we have already done. Sometimes they are to have you start thinking about the topic that we are about to cover. Getting whatever you know about the topic fresh in your mind in advance of class will help what we do in class stick for you when we start.
The correct answer is not as important for these activities as it is to do them before class. We will build on these in class. These are evaluated on completion only, but we may ask you questions or leave comments if appropriate, in that event you should reply and then we’ll approve.
2024-01-25#
this will actually be done in the first few minutes of class
Think about one thing you’ve learned really well (computing or not). Be prepared to discuss the following: How do you know that you know it? What was it llike to first learn it?
2024-01-30#
Find the glossary page for the course website, link it below. Review the terms for the next class: shell, terminal, bash, git, zsh, powershell, GitHub. Make a diagram using mermaid to highlight how these terms relate to one another
Check your kwl repo before class and see if you have recieved feedback, reply or merge accordingly.
Example “venn diagram “ with mermaid subgraphs
2024-02-01#
Add file called terminal-vocab.md on a branch linked to this issue. Fill in the template below:
# Terminal vocab
## Before
<insert your diagram from 2024-01-30 prepare>
## Reflection
<!-- write a few bullets assessing your diagram above based on the notes from 2024-01-30. was anything in it not correct? was anything missing? -->
## Final thoughts
<!-- write a few bullets/sentences on how trying to make the diagram did/not help you think about the terms -->
2024-02-06#
Examine an open source software project and fill in the template below in a file called software.md in your kwl repo on a branch that is linked to this issue. You do not need to try to understand how the code works for this exercise, but instead focus on how the repo is set up, what additional information is in there beyond the code. You may pick any mature open source project, meaning a project with recent commits, active PRs and issues, multiple contributors. In class we will have a discussion and you will compare what you found with people who examined a different project. Coordinate with peers (eg using the class discussion or in lab time) to look at different projects in order to discuss together in class.
## Software Reflection
Project : <markdown link to repo>
## README
<!-- what is in the readme? how well does it help you -->
## Contents
<!-- denote here types of files (code, what languages, what other files) -->
## Automation
<!-- comment on what types of stuff is in the .github directory -->
## Documentation
<!-- what support for users? what for developers? code of conduct? citation? -->
## Hidden files and support
<!-- What type of things are in the hidden files? who would need to see those files vs not? -->
Some open source projects if you do not have one in mind:
2024-02-08#
Bring git questions or scenarios you want to be able to solve to class on Thursday (in your mind or comment here if that helps you remember)
Practice using the new bash commands we have learned to read and understand the workflow files in your KWL repo. Look for bash commands that we have seen before. Try to modify files on a prepare branch so that your name is already filled in when your experience badge (inclass) action runs.
2024-02-13#
Activities:
install jupyterbook on Mac or linux those instructions will work on your regular terminal, if you have python installed. On Windows those instructions will work in the Anaconda prompt or any other terminal that is set up with python. If these steps do not make sense see the recommendations in the syllabus for more instructions including videos of the Python install process in both Mac and Windows.
If you like to read about things before trying them, skim the jupyterbook docs.
Think about and be prepared to reply to questions in class about your past experiences with documentation, both using it and writing it.
2024-02-20#
Activities:
Think through and make some notes about what you have learned about design so far. Try to answer the questions below in design_before.md. If you do not now know how to answer any of the questions, write in what questions you have.
- What past experiences with making decisions about design of software do you have?
- what experiences studying design do you have?
- What processes, decisions, and practices come to mind when you think about designing software?
- From your experiences as a user, how you would describe the design of command line tools vs other GUI based tools?
2024-02-27#
Activities:
review the notes on what is a commit. In gitdef.md on the branch for this issue, try to describe git in the four ways we described a commit. the point here is to think about what you know for git and practice remembering it, not “get the right answer”; this is prepare work, we only check that it is complete, not correct
Start recording notes on how you use IDEs for the next couple of weeks using the template file below. We will come back to these notes in class later, but it is best to record over a time period instead of trying to remember at that time. Store your notes in your kwl repo in idethoughts.md on an
ide_prep
branch. This is prep for after spring break, it does not go in the Feb 27 experience branch; keep this branch open until it is specifically asked for
2024-02-29#
Activities:
Create a file gitcommandsbreakdown.md
and for each command in the template below break down what steps it must do based on what we have learned so far about git objects. I started the first one as an example based on what we discussed today, fill in the others. In class on Thursday, we will make a commit using plumbing commands, so thinking about what you already know about commits will prepare you to learn this material.
# What git commands do
## `git status`
- check the branch of the HEAD pointer
- compare the HEAD pointer to the FETCH_HEAD, if different trace back through parent commits to find out how many commits apart they are and which is ahead (or if both ahead and behind)
- compare the snapshot at the HEAD pointer's commit to the current working directory
- if staging is not empty, compare that to the working directory
## `git commit`
-
## `git add`
-
2024-03-05#
Activities:
Read the notes from February 29th. We will build on these directly in the future. You need to have the
test
repo with the same status for lab on class on 3/5 Make sure you have completed all of the steps in the github inclass repo.
2024-03-07#
Activities:
Take a few minutes to think what you know about hashing and numbers. Create hash_num_prep.md with two sections:
## Hashing
with a few bullet points summarzing key points about hashing, and## numbers
where you draft a definition of a numberUse
git log
to view recent updates to the course website from the release for the Feb 29th class to the release for the March 5 class.
2024-03-19#
Activities:
Be sure to get some rest during the break. Come to class ready to learn.
If you do work during the break, be sure to update your ide notes.
2024-03-21#
Activities:
Review your idethoughts.md
from a few weeks ago and add some summary notes.
2024-03-26#
Activities:
Read the 3 bulleted examples of why use a cluster from HPC carpentry.
2024-03-28#
Activities:
Make sure you have your ssh key configured to seawulf
2024-04-02#
Activities:
Install nand2tetris
2024-04-04#
Activities:
In fractionalbinary.md use 8 bits to represent the following numbers by using 4 bits as usual (8,4,2,1) and the other 4 bits are 1/2, 1/4, 1/8, 1/16th:
1.5
12.75
7.5625
15.9375
Add to your file some notes about the limitations of representing non integer values this way. How much would using more bits help with, what limitations are not resolved by adding more bits. For example, how could you represent .1?
2024-04-09#
Activities:
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?
Refresh your knowledge of logical operations/ logic gates: and, or, xor, not. For an example reference see the logicemu emulator we will use in class
2024-04-11#
Activities:
watch this short video on an alternative adder
and this video on half adder with legos
2024-04-16#
Activities:
Trace through the ripple carry adder to see how different calculations take different amounts of time.
come up with 2 example addition problems that demonstrate how much the time can vary(one short, one long), comment on this issue and have them ready at the start of class.
hint use electron mode instead of immediate and it will count. There is also a “reload” button that will reset the counter.
2024-04-18#
Activities:
Spend a few minutes thinking about what you know about memory and reading and writing files in programming. Make some notes about it (that you do not need to submit). (you’ll discuss this with classmates at the start of class)
2024-04-23#
Activities:
Preview the Stack Overflow Developer Survey Technology section parts that are about tools. Create dev_insights.md with 3-5 bullet points for discussion. These can be facts you found most interesting or questions you have based on the results (it can be clarifying or deeper questions)
2024-04-25#
Activities:
none
2024-04-30#
Activities:
there is no class, this is create just to make the script not fail.
You can close this