# CS50x

Date: 2021-06-06 17:58:08 +08:00Date modified: 2021-06-15 12:30:13 +08:00

The beloved course of CS50. I took this course some time ago but didn't finish it due to me having difficulty on it. I'll finish this thing for real this time.

# Week 0

- computer science is about solving problems that are applicable not only to computers but also in art, social sciences, sciences, and beyond

- computers communicate through binary digits (or base 2)

- binary numbers are simpler but it implies large ideas

  - computers often have binary due to history, just with the available components at the time easily creates

  - with only two digits, we can represent ideas from simple concepts like states, letters, and numbers to complex concepts combining several of them together

- our computers are composed of millions of tiny electrical switches representing binary data

- all of the data represented is just binary all the way down

  - text, colors, images are all just patterns of bits

  - the files we usually see from JPG, PNG, Photoshop files, HTML, and Microsoft Word documents are just pattern of bits agreed by us to what the bits look like and what information it supposed to represent

- concepts:

  - to start solving a problem, we could lay the steps down; you may hear this as our pseudocode

  - functions are the actions or the verb of our pseudocode

  - conditionals are branches of actions

  - variables hold a piece of information

  - boolean expressions are yes/no questions to a conditional, entering that branch if said condition is met

  - abstractions are one way of solving a problem by framing the problem one level higher, focusing on the problems without worrying on the details; we could also think abstractions as wishful thinking

# Week 1

- writing good code should be foremost correct

- but style is also important just like with writing requiring correct use of punctuations and grammar

## Backlinks

- Argument structure matters over accuracy when presenting information