Starting Out
Tags: webdev, beginners, programming
Published: 2023-10-03 10:45:58

#Basics of Programming

######Date 02-10-2023

###Resources
- [Video Tutorial](https://youtu.be/8mAITcNt710?si=XU1UtrT6-LPCKc7K)
- [CS50 Harvard Notes](https://cs50.harvard.edu/college/2023/spring/notes/0/#scratch)

##Key Concepts
- Computer Science
- Computational Thinking
- Problem Solving
- Inputs, Outputs
- Representation | Unary, Binary, Decimal, ASCII, Unicode, Running Times
- Pseudocode
- Scratch | Functions, Arguments, Return Values, Variables, Boolean Expressions, Conditionals, Loops, Events, Threads

##Notes

####Binary and Computing
- Computers operate using binary, with bits representing zero or one.
- Zeros signify "off", and ones signify "on"
- Computers consist of millions of transistors that switch on and off.

####Lightbulb Analogy
- A single lightbulb can only have two states: off (zero) or on (one).
- Multiple light bulbs offer more options and states.

####Binary in Text
- Just as numbers use binary patterns of ones and zeros, letters are also represented in binary.
- The ASCII standard maps specific letters to numbers, e.g., A to 65.

####Binary in Text Messages
- Text messages are encoded in binary, representing numbers.
- For instance, a message might be represented as 72, 73, and 33 in binary to signify - Hi!

####Problem-Solving in Computing
- Problem-solving is central to computer science and programming.
- Solving problems efficiently is crucial.

####Phone Book Analogy
- To find a name in a phone book, different search approaches can be used.
- Strategies include linear search, searching two pages at a time, and binary search by dividing and conquering.

####Pseudocoding Importance
- Pseudocoding is crucial for two main reasons.
- It helps in logic planning before writing formal code.
- It provides a clear explanation of coding decisions and functionality to others.

####Key Pseudocode Language Features
- Pseudocode often includes unique elements:
  - Verbs like "pick up," "open," "look at" that represent functions.
  - Statements such as "if" or "else if," known as conditionals.
  - Expressions that evaluate as true or false, called boolean expressions.
  - Statements like "go back to line 3," referred to as loops.


 > 1. pick up phone book
 > 2. open to middle of phone book
 > 3. look at names
 > 4. if "Smith" is among names
 > 5.    call Mike
 > 6. else if "Smith" is earlier in book
 > 7.    open to middle of left half of book
 > 8.    go to line 3
 > 9. else if "Smith" is later in book
> 10.    open to middle of right half of book
> 11.    go to line 3
> 12. else
> 13. give up

####Abstraction in Computer Programming
- Abstraction is a vital concept in programming, alongside pseudocoding.
- It involves simplifying complex problems by breaking them down into smaller, manageable problems.

####Example of Abstraction
- Think of hosting a large dinner; cooking the entire meal might be overwhelming.
- Abstraction involves breaking down cooking tasks into smaller steps, making the overall task less challenging.

####If Conditionals in Programming
- "If" conditionals are fundamental in programming.
- They are used to check if a specific condition is met, and based on that, the program performs certain actions.

####Problem-Solving in Programming
- Programming often involves trial and error.
- When facing difficulties, it's essential to analyze the specific problem at hand, what's working, and what's not to find solutions.

##Challenges and Questions

[None]

##Reflection

[Good, interesting session, and the teacher is so engaging. I had covered most of this when I studied computing A-level however it has been a while, and so its very nice to have a refresher.]

###Additional Resources
- [Scratch Tutorial](https://scratch.mit.edu/projects/editor/?tutorial=getStarted)