25. How does this all come together?

25.1. Logistics and Grading

  • I’m a little behind on feedback, will catch up

  • Extra Office Hours

  • Zoom link is on slack to keep it private

  • To be able to revise, work must be submitted by May 5 at 4pm. Feedback will be by afternoon May 6.

  • All final work must be submitted by May 10 I will do final grading on May 11.

25.2. Contract Checkin

Create an issue on your grading contract repo using the following as a template.

Edit so that it applies to you, including deleting any sections that do not apply to you and assign or tag @brownsarahm on the issue so that I can get to it easily.

I am (not) on track to complete my contract as agreed.


I plan to (catch up/ revise my contract / take an incomplete).

To revise my contract I will:
<!-- consultaiton is optional -->
- [ ] attend office hours to discuss options
- [ ] submit the revised contract as PR by the contract revision deadeline of May 2.


To catch up, I will:
- [ ] tag @brownsarahm in all of my open PRs by 5pm today
- [ ] attend office hour on (dates)
- [ ] complete (items) by Thursday at 5pm
- [ ] complete (items) by May 3rd at 5pm
- [ ] complete (items) by May 5 at 4pm
- [ ] complete (items) by May 10

To complete work after accepting an Incomplete grade I will:
- [ ] complete all activities in my contract by (date)

I have the following questions about my grade/grading in this course:

- [ ] q1
- [ ] q2

Important

The last date to change your contract is May 2

Important

If you do not complete your contract, you will get an incomplete which will be changed when you complete work or you will get a low grade (eg no work/D/F) at the deadline for me to change the incomplete

25.3. Testing Integration manager workflow

See the prepare for next class number 1.

Why are merge conflicts expected here?

  1. Resolve the merge conflicts

  2. combine work with your partner on a fork

  3. make PR to main sites

  4. I will be merging and then tag you when you should resovle the merge conflicton your PR

Important

Merge conflicts will happen. Knowing how to fix them is very important. I want you to get practice with it.

25.4. End of Semester Wrap up

Instead of introducing new big ideas this week, we will reivew and work on tying ideas together.

Note

Answers for all of these questions exist in this site

What does threading do?

  • [ ] divide a program into multiple processes

  • [ ] divides a task across multiple computes

  • [ ] divide a process into mutlple parts that are completed separately

Why do we need to lock writing to a global variable when threading a program?

  • [ ] otherwise all threads will overwrite incorrectly and only the slowest one will be saved

  • [ ] otherwise their start/finish order can impact the calculation

  • [ ] it is the only way for a variable to be shared across threads

What is git? multiple may apply*

A. a file system B. backup software
C. a version control system D. a cloud protocol for collaborating on code

Why do we use version control?

  • [ ] to have a cloud backup of code

  • [ ] it’s a legacy tool for undoing changes before IDEs could do it

  • [ ] to be able to separate different versions of code

Why floating point instead of fixed point for fractions ?

  • [ ] floating point allows for faster calculations

  • [ ] floating point allows more precise representation

  • [ ] floating point allows for representation of a broader range of values

Label and put in order the following steps of building C code: (replace x with a number and step with the name of that step)


x. **step** binaries for compiled libraries is combined with the compiled program code
x. **step** code is translated from assembly to machine code
x. **step** code from includes is copied into the file
x. **step** code is translated from a high level language to assembly

25.5. Prepare for next class

  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)

25.6. More Practice

Important

  • If you’re on track, you can skip the following and Thursday’s More Practice

  • if you are not on track: today’s and Thursdays will count for two each, but will be more complex and integrate concepts across multiple class sessions

  1. Make a table that compares and contrasts the unix file system to git as a file system on at least 5 aspects (eg header + 5 rows) in filesystem.md. Based on this, write a definition of a file system generally and how knowing that these are both file systems helps reinforce concepts and improve understanding.

  2. In whypointers.md write a blog-post style argument for why understanding pointers as a concept is important for a computer science student even if they will not work directly in a language that uses pointers. Consider your audience to be a student who is in CSC212 and struggling. Use two examples from this class where we relied on the concept of pointers to explain how something worked.

  3. Reflect on how thise 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.

25.7. Questions After Class

25.7.1. What is the industry standard between github/gitlab/bitbucket? is there one that is better than the other?

Feature-wise they’re relatively comparable, they all do core git and provide hosting. The details of features are somewhat different. The deciding factor though, usually comes down to price and/or a moral position on GitHub being owned by Microsoft and having US Immigration and Customs Enforcement (ICE) as a customer.