<commit_before>##### [Module 2](../../)

# Prep for Class 1

#### Lecture:
 Task | Resource Type| Link | Instructions
------|------|------|-------------
 Watch | Lecture | [Week 2](https://www.youtube.com/watch?v=FgfLXemFoIo) | Watch this week's first lecture. You can skip from 9:00 to the 19:30 minute mark (David makes Harvard-specific announcements, and talks about their academic honesty guidelines). 

***

#### Typecasting:
 Task | Resource Type| Link | Instructions
------|------|------|-------------
Watch| Short |<a href="https://www.youtube.com/watch?v=4XTSxFSs3kI&list=PLhQjrBD2T381NKQHUCTezeyCYzbnN4GjC&index=9)" target="_blank">Typecasting</a> | Watch this short, which focuses on data types and typecasting. 
Read | Supplement |[Typecasting](../resources/typecasting) | TODO this is in Module 1... want to move to Module 2?
Do | Exercise | [Typecasting](../exercises/typecasting) | TODO
Follow-Along | Walkthrough |<a href="https://www.youtube.com/watch?v=Eycgpd_HUIA&index=10&list=PLhQjrBD2T380sc-fXwl1sviA-twxFduVU" target="_blank">floats-0</a> | Following David, write a program that prints out a float.
Follow-Along| Walkthrough| <a href="https://www.youtube.com/watch?v=26JLIimnyyM&list=PLhQjrBD2T380sc-fXwl1sviA-twxFduVU&index=11" target="_blank">floats-1</a> | Keep following David to solve the problem from the previous video. 
Follow-Along| Walkthrough | <a href="https://www.youtube.com/watch?v=JqKDFhCaWC8&list=PLhQjrBD2T380sc-fXwl1sviA-twxFduVU&index=12" target="_blank">floats-2</a> | Continue the follow-along with David as he "blows your mind" with floating-points! 

***

#### Chars, ASCII:
 Task | Resource Type| Link | Instructions
------|------|------|-------------
Read | Resource |[Chars](../resources/chars) | We've seen `int`, `float`, `string`. Now learn about a new data-type, the `char`.
Read | Lecture Notes | <a href="http://cdn.cs50.net/2015/fall/lectures/2/m/notes2m/notes2m.html#typecasting" target="_blank">Week 2 / Typecasting</a> | Read the notes for the "Typecasting" section. This will explain typecasting using a program that converts alphabetical letters to their ASCII equivalents. <br> Stop at the *References* header.
Follow-Along | Walkthrough | <a href="https://www.youtube.com/watch?v=sELkIJyRHWg&index=5&list=PLhQjrBD2T380sc-fXwl1sviA-twxFduVU" target="_blank">ascii-0</a> | Follow David to write the same ASCII program you just read through in the Lecture Notes.
Follow-Along | Walkthrough | <a href="https://www.youtube.com/watch?v=ifCoAx0r3es&index=6&list=PLhQjrBD2T380sc-fXwl1sviA-twxFduVU" target="_blank">ascii-1</a>| Continue following David. Pay attention to when David talks about equivalence between chars and ints.

***

#### Functions:
 Task | Resource Type| Link | Instructions
------|------|------|-------------
Read | Resource|  [Calling Functions](../resources/calling-functions) | Read over this resource to review how to call a library function, and understanding a return value vs a side effect.
Do | Exercise | [Exercise: strlen](../exercises/strlen) | TODO exc: make them use the strlen function
Read | Resource | [Creating Functions](../resources/our-own-functions) | This resource explains that in addition to using other people's functions like `printf` and `atoi`, we can also write our own functions. 
Read | Lecture Notes | <a href="http://cdn.cs50.net/2015/fall/lectures/1/f/notes1f/notes1f.html#functions_and_arguments" target="_blank">Functions and Arguments</a> | Read the "Functions and Arguments" section of the notes, which reviews how to define your own function. <br> Stop at the *Problem Set 1* header (don't be confused: these notes are from the previous week, but we find them helpful to include here). 
Watch | Doug's Playlist | <a href="https://www.youtube.com/watch?v=jtuMIHebSu8&list=PLhQjrBD2T383cKxax1sP6rKA3Q1JGrgcE&index=2" target="_blank">Functions</a> | Watch Doug's video where he breaks down functions. Feel free to practice with the problems he gives you.
Follow-Along | Walkthrough| <a href="https://www.youtube.com/watch?v=9zoRoz8Pq4E&list=PLhQjrBD2T380sc-fXwl1sviA-twxFduVU&index=13" target="_blank">functions-0</a> | Follow David to write a program in which you create your own function.
Follow-Along | Walkthrough | <a href="https://www.youtube.com/watch?v=7X9KUm5xej0&index=14&list=PLhQjrBD2T380sc-fXwl1sviA-twxFduVU" target="_blank">functions-1</a> | Now you'll implement a function that returns a return value. 
Do | Exercise | [Step Into](../exercises/step-into) | TODO exc: make them step through source code from walkthroughs (cough0-4, functions0-1) in the Debugger, similar to module1/exercises/debug. Introduce the Step Into button.
Do | Exercise | [Next Num](../exercises/decomposition) | TODO... finish this, make sure it belongs here. (TODO exc: have them refactor a program that computes the next number after an input value, by pulling functionality out of main and into a function with signature `int successor(int n)`)
Watch | Shorts | <a href="https://www.youtube.com/watch?v=gziiOF0uIX8&index=6&list=PLhQjrBD2T381wyZt81eGNZuZ4rzOos-AF" target="_blank">Return Values</a> | TODO: Potentially scrap this. Somewhat confusingly presented-- `void` as "simplest return type", and last example uses file i/o, which will be scary and unfamiliar.
Read | Resource | [Return Values](../resources/returnvalues) | TODO res: give picture of return values as evaluating a statement.

***

#### Scope:
 Task | Resource Type| Link | Instructions
------|------|------|-------------<commit_msg>changed calendar to point to "small-talk" exercise<commit_after>##### [Module 2](../../)

# Prep for Class 1

#### Lecture:
 Task | Resource Type| Link | Instructions
------|------|------|-------------
 Watch | Lecture | [Week 2](https://www.youtube.com/watch?v=FgfLXemFoIo) | Watch this week's first lecture. You can skip from 9:00 to the 19:30 minute mark (David makes Harvard-specific announcements, and talks about their academic honesty guidelines). 

***

#### Typecasting:
 Task | Resource Type| Link | Instructions
------|------|------|-------------
Watch| Short |<a href="https://www.youtube.com/watch?v=4XTSxFSs3kI&list=PLhQjrBD2T381NKQHUCTezeyCYzbnN4GjC&index=9)" target="_blank">Typecasting</a> | Watch this short, which focuses on data types and typecasting. 
Read | Supplement |[Typecasting](../resources/typecasting) | TODO this is in Module 1... want to move to Module 2?
Do | Exercise | [Typecasting](../exercises/typecasting) | TODO
Follow-Along | Walkthrough |<a href="https://www.youtube.com/watch?v=Eycgpd_HUIA&index=10&list=PLhQjrBD2T380sc-fXwl1sviA-twxFduVU" target="_blank">floats-0</a> | Following David, write a program that prints out a float.
Follow-Along| Walkthrough| <a href="https://www.youtube.com/watch?v=26JLIimnyyM&list=PLhQjrBD2T380sc-fXwl1sviA-twxFduVU&index=11" target="_blank">floats-1</a> | Keep following David to solve the problem from the previous video. 
Follow-Along| Walkthrough | <a href="https://www.youtube.com/watch?v=JqKDFhCaWC8&list=PLhQjrBD2T380sc-fXwl1sviA-twxFduVU&index=12" target="_blank">floats-2</a> | Continue the follow-along with David as he "blows your mind" with floating-points! 

***

#### Chars, ASCII:
 Task | Resource Type| Link | Instructions
------|------|------|-------------
Read | Resource |[Chars](../resources/chars) | We've seen `int`, `float`, `string`. Now learn about a new data-type, the `char`.
Read | Lecture Notes | <a href="http://cdn.cs50.net/2015/fall/lectures/2/m/notes2m/notes2m.html#typecasting" target="_blank">Week 2 / Typecasting</a> | Read the notes for the "Typecasting" section. This will explain typecasting using a program that converts alphabetical letters to their ASCII equivalents. <br> Stop at the *References* header.
Follow-Along | Walkthrough | <a href="https://www.youtube.com/watch?v=sELkIJyRHWg&index=5&list=PLhQjrBD2T380sc-fXwl1sviA-twxFduVU" target="_blank">ascii-0</a> | Follow David to write the same ASCII program you just read through in the Lecture Notes.
Follow-Along | Walkthrough | <a href="https://www.youtube.com/watch?v=ifCoAx0r3es&index=6&list=PLhQjrBD2T380sc-fXwl1sviA-twxFduVU" target="_blank">ascii-1</a>| Continue following David. Pay attention to when David talks about equivalence between chars and ints.

***

#### Functions:
 Task | Resource Type| Link | Instructions
------|------|------|-------------
Read | Resource|  [Calling Functions](../resources/calling-functions) | Read over this resource to review how to call a library function, and understanding a return value vs a side effect.
Do | Exercise | [Exercise: Small Talk](../exercises/small-talk) | Write a program that makes small-talk with the user, responding differently for lengths of inputs
Read | Resource | [Creating Functions](../resources/our-own-functions) | This resource explains that in addition to using other people's functions like `printf` and `atoi`, we can also write our own functions. 
Read | Lecture Notes | <a href="http://cdn.cs50.net/2015/fall/lectures/1/f/notes1f/notes1f.html#functions_and_arguments" target="_blank">Functions and Arguments</a> | Read the "Functions and Arguments" section of the notes, which reviews how to define your own function. <br> Stop at the *Problem Set 1* header (don't be confused: these notes are from the previous week, but we find them helpful to include here). 
Watch | Doug's Playlist | <a href="https://www.youtube.com/watch?v=jtuMIHebSu8&list=PLhQjrBD2T383cKxax1sP6rKA3Q1JGrgcE&index=2" target="_blank">Functions</a> | Watch Doug's video where he breaks down functions. Feel free to practice with the problems he gives you.
Follow-Along | Walkthrough| <a href="https://www.youtube.com/watch?v=9zoRoz8Pq4E&list=PLhQjrBD2T380sc-fXwl1sviA-twxFduVU&index=13" target="_blank">functions-0</a> | Follow David to write a program in which you create your own function.
Follow-Along | Walkthrough | <a href="https://www.youtube.com/watch?v=7X9KUm5xej0&index=14&list=PLhQjrBD2T380sc-fXwl1sviA-twxFduVU" target="_blank">functions-1</a> | Now you'll implement a function that returns a return value. 
Do | Exercise | [Step Into](../exercises/step-into) | TODO exc: make them step through source code from walkthroughs (cough0-4, functions0-1) in the Debugger, similar to module1/exercises/debug. Introduce the Step Into button.
Do | Exercise | [Next Num](../exercises/decomposition) | TODO... finish this, make sure it belongs here. (TODO exc: have them refactor a program that computes the next number after an input value, by pulling functionality out of main and into a function with signature `int successor(int n)`)
Watch | Shorts | <a href="https://www.youtube.com/watch?v=gziiOF0uIX8&index=6&list=PLhQjrBD2T381wyZt81eGNZuZ4rzOos-AF" target="_blank">Return Values</a> | TODO: Potentially scrap this. Somewhat confusingly presented-- `void` as "simplest return type", and last example uses file i/o, which will be scary and unfamiliar.
Read | Resource | [Return Values](../resources/returnvalues) | TODO res: give picture of return values as evaluating a statement.

***

#### Scope:
 Task | Resource Type| Link | Instructions
------|------|------|-------------
{'fraction_non_alphanumeric': 0.14923090761896196, 'fraction_numerical': 0.02356750922011334, 'mean_word_length': 4.5148809523809526, 'pattern_counts': {'":': 0, '<': 55, '<?xml version=': 0, '>': 55, 'https://': 22, 'lorem ipsum': 0, 'www.': 22, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4825445', 'n_tokens_mistral': 3767, 'n_tokens_neox': 3489, 'n_words': 1072}