# Group 39: [CS50x: Introduction to Computer Science](https://cs50.edx.org/)
> - [Course introduction](https://courses.edx.org/courses/course-v1:HarvardX+CS50+X/course/)
> - [Discussion forum](https://courses.edx.org/courses/course-v1:HarvardX+CS50+X/a7ec0c0a7b6e460f877da0734811c4cd/)
> - [FAQs](https://cs50.harvard.edu/x/2020/faqs/)
> - [Syllabus](https://cs50.harvard.edu/x/2020/syllabus/)
# Goals in the next 3 months
## Jaryl
- [ ] Remain able to code by finishing the final projects
- Solving problems
- Thinking logically
- [ ] Successfully build a website myself, refine my website (back-end)
- Be confident at using frameworks
- [ ] Implement Linkedin course code
- [ ] Pick up web scraping/ web automation, selenium, and beautiful soup
## Nut
- (tbc)
## Daphne
- My ultimate goal is to automate redundant stuffs in life to save 1 hour a day in the next 3 months. I manage to go through the foundation, and successfully re-implement some instruction to organize files in my Mac, and crawl a simple data set
- [ ] Scrape data from Yahoo Finance, the FS release date
- [ ] Scrape data from 10 most popular job listing sites
- [ ] Scrapre data from Linkedin profiles
# Knowledge progress
## Jaryl
- [x] **Week 0: Scratch**
- [x] Lecture
- [x] Problem Set 0
- [x] **Week 1: C programming**
- [x] Lecture
- [x] Data types
- [x] Operators
- [x] Conditional statements
- [x] Loops
- [x] Command line
- [x] Problem Set 1
- [x] **Week 2: Arrays**
- [x] Lecture
- [x] Functions
- [x] Arrays
- [x] Command line arguments
- [x] Variables and scopes
- [x] Problem Set 2
- [x] **Week 3: Algorithm**
- [x] Lecture
- [x] Linear search
- [x] Binary search
- [x] Bubble sort
- [x] Selection sort
- [x] Insertion sort
- [x] Recursion
- [x] Merge sort
- [x] Algorithm summary
- [x] Problem Set 3
- [x] **Week 4: Memory**
- [x] Lecture
- [x] Hexadecimal
- [x] Pointers
- [x] Dynamic Memory Allocation
- [x] Call Stacks
- [x] File Pointers
- [x] Problem Set 4
- [x] **Week 5: Data Structures**
- [x] Lecture
- [x] Data Structures
- [x] Singly-Linked Lists
- [x] Hash Tables
- [x] Tries
- [x] Problem Set 5
- [x] **Week 6: Python**
- [x] Lecture
- [x] Python
- [x] Problem Set 6
- [x] **Week 7: SQL**
- [x] Lecture
- [x] SQL
- [x] Problem Set 7
- [x] **Week 8: Information**
- [x] Lecture
- [ ] **Final project**
## Nut
- [x] **Week 0: Scratch**
- [x] Lecture
- [x] Problem Set 0
- [ ] **Week 1: C programming**
- [ ] Lecture
- [ ] Data types
- [ ] Operators
- [ ] Conditional statements
- [ ] Loops
- [ ] Command line
- [ ] Problem Set 1
- [ ] **Week 2: Arrays**
- [ ] Lecture
- [ ] Functions
- [ ] Arrays
- [ ] Command line arguments
- [ ] Variables and scopes
- [ ] Problem Set 2
- [ ] **Week 3: Algorithm**
- [ ] Lecture
- [ ] Linear search
- [ ] Binary search
- [ ] Bubble sort
- [ ] Selection sort
- [ ] Insertion sort
- [ ] Recursion
- [ ] Merge sort
- [ ] Algorithm summary
- [ ] Problem Set 3
- [ ] **Week 4: Memory**
- [ ] Lecture
- [ ] Hexadecimal
- [ ] Pointers
- [ ] Dynamic Memory Allocation
- [ ] Call Stacks
- [ ] File Pointers
- [ ] Problem Set 4
- [ ] **Week 5: Data Structures**
- [ ] Lecture
- [ ] Data Structures
- [ ] Singly-Linked Lists
- [ ] Hash Tables
- [ ] Tries
- [ ] Problem Set 5
- [ ] **Week 6: Python**
- [ ] Lecture
- [ ] Python
- [ ] Problem Set 6
- [ ] **Week 7: SQL**
- [ ] Lecture
- [ ] SQL
- [ ] Problem Set 7
- [ ] **Week 8: Information**
- [ ] Lecture
- [ ] **Final project**
## Daphne
Milestone projects
- [x] [Auto parsing and renaming files](https://www.youtube.com/watch?v=ve2pmm5JqmI&t=353s)
- [x] [Automate files in the local computer](https://www.linkedin.com/learning/using-python-for-automation/organizing-directories?u=2104756)
- [x] [Web Scrapping with Beautiful Soup](https://www.linkedin.com/learning/using-python-for-automation/organizing-directories?u=2104756)
- [x] [Automate Web Browsing with Selenium](https://www.linkedin.com/learning/using-python-for-automation/organizing-directories?u=2104756)
- [ ] [Automate Tinder swiping](https://www.youtube.com/watch?v=lvFAuUcowT4&t=2s)
Knowledge checkpoints
- [x] [**Milestone 0: Set up the environment**](https://www.youtube.com/watch?v=YYXdXT2l-Gg&list=PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU&index=1) (You can skip this and come back later if the syllabus you are taking provies the coding editor)
- [x] Install Python 3
- [x] Install the IDE (eg. Pycharm, Visual Studio Code, etc)
- [x] Execute and run code with terminal commands (eg. cd, ls, python3, etc)
- [x] **Milestone 1: Learning Basic Python syntax**
- [x] get to know different data types (eg. `str()`, `int()`, `list()`)
- [x] variables and naming convention
- [x] comment #
- [x] `print()`
- [x] one variables
- [x] multiple variables using `format()`
- [x] read the input data from users using `input()`
- [x] restrict the data type using `str()`, `int()`, `list()` ...
- [x] **Milestone 2: Working with numeric data - integer and float**
- [x] Arithmetic Operators (output: result)
- [x] Comparison (output: True/ False)
- [x] Shortcut. Eg. `num += 1`
- [x] Commonly used methods: absolute `abs()`, `round()`, etc
- [x] Work with numbers in string format. Eg. "3"
- [x] Advanced math `import math`
- [x] **Milestone 3: Working with textual data - string**
- [x] Single quotes vs. Double quotes
- [x] Create multi-line string using triple quotes `'''` or `\n`
- [x] Commonly used functions and methods in string
- [x] Check data types: `type()`
- [x] Check string length: `len()`
- [x] Index
- [x] `lower()` or `upper()`
- [x] Concatination
- [x] `replace()`
- [x] **Milestone 4: Working with boolean**
- [x] **Milestone 5: Conditional statement**
- [x] If Else
- [x] If Elif Else
- [x] **Milestone 6: Loops and iteration**
- [x] While loop
- [x] For loop
- [x] **Milestone 7: Function**
- [x] Write your own function
- [x] 3rd party function
- [x] Global and Local scopes
- [x] **Milestone 8: Working with data in a container - list, tuple, set, dictionary**
- [x] List
- [x] access a list using loop
- [x] `append()`
- [x] list comprehension
- [ ] Dictionary
- [ ] understand key - value pair
- [ ] access value from a key: dict['key']
- [ ] add new key to a dict
- [ ] update many keys in one shot: `update()`
- [ ] delete a key and its value: `pop()` or `del`
- [ ] check what keys are there: `dict.keys()`
- [ ] check what values are there: `dict.values()`
- [ ] check what key-value pairs are there: `dict.items()`
- [x] Tuple and Set
- [ ] **Milestone 8: Modules, Libraries**
- [ ] Modules
- [ ] create modules
- [ ] variables in module
- [ ] name the module, create an alias for the module
- [ ] import module
- [ ] commonly used modules: OS, csv, etc
- [ ] Libraries
- [ ] import libraries, create an alias for the module
- [ ] commonly used libraries for automation: beautiful soup, selenium, etc