GD = Google Drive
Lesson #
1
2
3
Sem. 1
Date
8/19
(30 min)
NA
NA
8/26
8/28
NA
8/28
8/30
9/4
9/6
9/10
9/12
9/16
9/18
9/20
9/24
9/26
10/9
10/10
10/1
10/3
10/9
10/11
10/15
10/28
10/30
11/1
10/19
10/23
10/25
10/29
10/31
11/2
11/6
11/8
11/12
11/14
11/16
11/19-11/23
11/27
11/29
12/3
12/5
11/
11/
12/4
12/9
12/11
12/13
12/12
12/14
NA
NA
12/7
12/9
12/11
12/15
4/29, 4/30
5/1
5/4, 5/5
5/6, 5/7
5/8
5/11, 5/12
5/13, 5/14
5/15
5/18
5/19, 5/20
12/2/14
12/4/14
12/5/14
12/9/14
12/11/14
12/12/14
12/16/14
12/18/14
12/19/14
Sem. 2 Date
1/6
1/10
1/12
1/12
1/18
1/20
2/3
2/9
2/13
2/15
2/17
3/2
3/6
3/8
3/10
3/14
3/16
3/20
3/22
3/24
3/28
3/30
3/31
All classes:
short classes 30 min.
4/11
4/13
4/17
4/19
4/21
4/25
4/27
5/1
5/3
5/5
5/9
5/11
5/15
5/17
90
90
90
90
90
45
90
90
45
90
90
45
45
90
90
90
45
90
90
45
90
Teacher Activities
Semester 1 - 1st day - short classes 30 mins.
- Ask students to bring a notebook and pencil (iPad for taking photo) to every class - part of being prepared
- students will use notebooks to do the CS Unplugged activity next class (draw pictures)
- Show Python Demo Collage
if there is time, I go to trinket.io
- quickly show some user interface elements
First week of school
- sem. 1 - 1st week - class trips (seniors)
- sem. 2 - waiting for student enrollment to settle down
First week of school - 90 min/class
Intro - the importance of using precise language/programming constructs:
- in Scratch students are "shielded/protected" a bit from making programming/syntax mistakes
- I show how you cannot put a block into an "if" condition slot (pointy)
- in Python, you have more flexibility/leniency but also more room/freedom to make mistakes
- I show "Hello House", where if you change the var name sides to slides or t.lt() to t.lft(), you get an error
- so paying attention to details and precise language is important!
CS Unplugged:
- Exercise 1.1 - "Programming Languages - activity in pairs"
- for the 1st picture ("Greek Temple") - have 1 student describing/programming, and 2 students drawing/executing
- ask students how they could have improved the outcome
- then do 2nd picture ("house")
- ask the students: what went well? what didn't work? WHY?
- point out helpful things: common, precise vocabulary (prog. lang.), abstraction/generalization (roof, columns, base)
- ask a student to go through the math algorithm (subtracting 2 reverse numbers, 3 digits each).
- ask what went well and what didn't? Why?
CS Plugged:
Exercise 1.2 - "Subtracting 2 reverse numbers - simple algorithm activity"
- ask students to go to Scratch (scratch.mit.edu)
- code the the math algorithm (if they need a hint/skeleton code, there is one at the bottom of the doc)
- ask the user for a 3 digit number, reverse it, subtract, add, etc.
Semester 1 - short classes 30 mins., but probably no class due to 10th + 11th grade class trip
Finish:
CS Plugged:
Exercise 1.2 - "Subtracting 2 reverse numbers - simple algorithm activity"
- ask students to go to Scratch (scratch.mit.edu)
- code the the math algorithm (if they need a hint/skeleton code, there is one at the bottom of the doc)
- ask the user for a 3 digit number, reverse it, subtract, add, etc.
If there is time:
CS Plugged:
Exercise: "CS Plugged - Collecting card points"
- Presentation - FCS Intro (in G-Drive, FCS Common drive - Remote/Hybrid preso)
- for example of abstraction, show "How to draw an Owl"
- Show Schoology website - Make sure students see the "Important Links" on the course website on Veracross
- Ask students to program in Scratch the reqs in the doc "Subtracting 2 reverse numbers"
- the solution is: https://scratch.mit.edu/projects/420516285/editor
- Finished students:
- Do "Programming Warm-Up" doc (Scratch) in Google Drive (GD)
- mad libs, math operations, password strength
- Show students the program in Scratch the reqs in the doc "Subtracting 2 reverse numbers"
- the solution is: https://scratch.mit.edu/projects/420516285/editor
- give students time to finish
- Finished students:
- Do "Programming Warm-Up" doc (Scratch) in Google Drive (GD)
- mad libs, math operations, password strength
- Review of key CS concepts from Scratch - "FCS Warm-Up" preso (slides - Scratch) in GD
- e.g., variables, conditionals, loops, algorithms, Pseudo Code
- Do "FCS Warm-Up" preso (slides - Scratch) in GD
- if class is small:
- go over one slide at a time and have the students do the exercises
- if students are done with a slide, have them do "extra experience" and variations on the programs for that slide
- or if the class is big, explain the first slides (up to, but excluding) variables, and then let them loose
- check students work + extra experience
- students can use scratch.mit.edu as guests or login, if they don't have an account
- Presentation - FCS Intro (in G-Drive, FCS Stage)
- for example of abstraction, show "How to draw an Owl"
- Show Schoology website - Make sure students see the "Important Links" on the course website on Veracross
- go over CS Binder requirements
- Have students log in as HSCS (pwd: pwcs)
- Review of key CS concepts from Scratch - "FCS Warm-Up" preso (slides - Scratch) in GD
- e.g., variables, conditionals, loops, algorithms, Pseudo Code
- Do "FCS Warm-Up" preso (slides - Scratch) in GD
- if class is small:
- go over one slide at a time and have the students do the exercises
- if students are done with a slide, have them do "extra experience" and variations on the programs for that slide
- or if the class is big, explain the first slides (up to, but excluding) variables, and then let them loose
- check students work + extra experience
- students can use scratch.mit.edu as guests or login, if they don't have an account
- Finished students:
- Do "Programming Warm-Up" doc (Scratch) in Google Drive (GD)
- mad libs, math operations, password strength
- Finish "FCS Warm-Up" preso (slides - Scratch) in GD
- and/or Continue "Programming Warm-Up" doc (Scratch) in Google Drive (GD), if started
Start Python:
- Dip your toe in ... to Python:
- show the trinket.io Python interpreter
- GUI elements
- Students may quickly create a Trinket account
- following the GD doc "Creating an Online Python Account (Trinket)"
Variables, assignments, expressions
- Students may do the exercises on the Interactive Exercises page
- or Review "Explore Python 0" (preso on GD)
- I present only a subset, students do all exercises in the preso - in their own new trinket
Extra Experience:
- Go over the slides of the GD preso - "Explore Python 0" (preso in GD, not doc)
- Mad Lib - Scratch-Python side-by-side
- show variable definition/assignment
- show using print() and input()
- explain: types (int, string, float)
Agenda:
- Create Trinket account (if not done already)
- go through types in the GD preso - "Explore Python 0" (preso in GD, not doc)
- have students do the type exercises + extra experience problem 3
- review CitN - start next week
- Continue Exploring Python 0
- Do Cost of Meal + make an app out of it (using tinyurl.com)
- review CitN - start next week
- show names and dates for CitN
- show examples of strong CitN "How it works"
- (changes from last year)
- each preso on a separate ePortfolio page
- one dropbox dated at the end of the semester - all presos should be turned in there
- timestamps should be the due dates
- a reminder Veracross assignment
- students should create a Trinket account
- Continue with the slides of the GD preso - "Exploring Python 0" (preso/slides, not doc)
- Mad Lib - Scratch-Python side-by-side
- show variable definition/assignment
- show using print() and input()
- explain: types (int, string, float)
Per the last slides of the preso - "Exploring Python 0" (preso/slides, not doc)
- Ask students to do
- Cost of Meal
- float()
- Split the Cost
- show students how to create a tinyurl.com link and run the tip calculator on their cellphone browser.
- DON'T embed in your ePortfolio
- submit both the trinket link and the end results (just the cost of the meal, and the split cost) through Veracross Dropbox - so as to practice the submission process
- If done, program the Celsius-to-Fahrenheit conversion - C-to-F (per "Explore Python 1" in GD)
CitN x 2
Conditionals (if, else)
Agenda:
- create an ePortfolio (if don't have one)
- fill out form for ePortfolio URL
- Python conditionals (Explore Python 2 slides in GD)
- Finish C-to-F with conditionals, and embed in ePortfolio
- Students who don't have a Google Sites ePortfolio - should create one per the GD doc "Creating an ePortfolio on Google Sites"
- if not done already - "temperature_conversions":
- Students implement the C-to-F and F-to-C conversion program - per the "Explore Python 1" doc in GD
- Students embed this program in their ePortfolio - per the "Explore Python 1" doc in GD
- embed the project in their ePortfolio as a embedded gadget (not iframe gadget)
- Publish/"Display" the Project assignment for "temperature_conversions" on Veracross
- Walk through the preso "Explore Python 2" (slides in GD)
- instead of "Explore Python 2" (the doc)
- explain if/then/else and indentation.
- on the slides "Explore Python 2" (slides in GD)
- walk through Conditionals 1, 2, 3, 4
- then ask the students to do Ex. 1 and Ex.2 in "Explore Python 2" (the doc)
- Students submit the URL to their ePortfolio page through a Veracross dropbox
- Students submit the URL to their ePortfolio through the form (the form URL is in a Veracross assignment)
- CitN
- (change from last year)
- each preso on a separate ePortfolio page
- one dropbox dated at the end of the semester - all presos should be turned in there
- timestamps should be the due dates
- a reminder Veracross assignment
Open Veracross assignments/Dropboxes
- assignment - Create ePortfolios and fill in the form
- dropbox - create CitN page and put link in Veracross
- finish Conditionals
- all exercises in GD preso/slides "Explore Python 2 - Compare with Scratch"
- Ex. Ex. 3 in GD doc "Exploring Python 2 (Trinket)"
Loops (while)
Agenda:
- start loops
- Walk through the preso "Loops - Compare with Scratch" (slides in Common)
- while
and in next classes:
- for
- range
- finish exercises 1, 2, 3
- show another CitN example - DNA storage - show the Computing Aspects at the end of the preso
Agenda:
- "Loops - Compare with Scratch" (slides in Common)
- "Fun with While" (in the slides: turtle moving in a random grid)
Notes
Agenda for students starting 45 min. into class (due to PE):
- start with "FCS Warm-Up" preso (slides - Scratch) in GD
- when students show up do:
- Python demo collage
- Presentation
- Home page + links on Veracross site
- finish "FCS Warm-Up" preso (slides) in GD
- show trinket.io - explain UI
- start step-by-step the slides of the GD preso - "Exploring Python 0" (preso, not doc)
- Mad Lib - Scratch-Python side-by-side
- show variable definition/assignment
- show using print() and input()
- types (int, string, float)
- if done, do "Explore Python 0 (Trinket)" (doc in GD not preso)
- Cost of Meal
- float()
- Split the Cost
- Create an account on Trinket
- Add tabs on ePortfolio on Google Sites
- explore environment
- Programming exercise "temperature_conversions":
- convert temperatures from Celsius to Fahrenheit and vice-a-versa
- Check to see the "important links" on the course website on Veracross, including the Trinket docs and Python docs
- Students fill out the Google Form
- 1 pair present CitN
- in prep for primeness homework
- do problem of the day: reverse(s)
- do problem of the day: is_palindrome(s)
- Problem of the Day - Lucky Number (in GD)
- exercise process of converting program to function
- students show & tell Problems of the Day
number of twin primes 1-10,000: 205
number of triplet primes 1-10,000: 112
number of palprimes 3-10,000: 19 (20 if starting at 2)
number of palprimes 3-100,000: 112 (113 if from 2-100,000)
number of twin primes 1-10,000: 205
number of triplet primes 1-10,000: 112
number of palprimes 3-10,000: 19 (20 if starting at 2)
number of palprimes 3-100,000: 112 (113 if from 2-100,000)
- Combining Images (Eifel + Armstrong)
- Combining Images (Eifel + Armstrong)
Step-by-step:
1. individual fitMedia()
2. pull into a function - alternating()
3. individual alternating()
4. repeat in a loop
5. pull into a function - repeat_alternating(n)
from earsketch import *
- "21 Matches" (in the slides: game with matches; the last one to take them wins)
Agenda:
- Loops (slides in Common)
- finish "while"
- finish Fun With Turtles
- finish 21 matches
Python Error Messages - GD "Errors and Exceptions"
Do "worked out examples" a-la Mark Guzdial:
https://computinged.wordpress.com/2012/06/27/inventing-a-worked-examples-and-self-explanation-method-for-cs-courses/
- fill out form with ePortfolio URL (form URL is in Dropbox)
- CitN x 2
- ask how many are done with "21 Matches"
- will be due before next class
- quick review/show&tell
- Random Walk
- 21 Matches
- Finish Loops (slides in Common)
- do "for" loop
- the "for" loop - (slides in Common)
- ex. 5 - for + range()
- ex. 6 - for
- finished students start "Math Quiz" (in GD)
- Quiz 1
- CitN x 1
- Functions (slides in Stage)
- without parameters
- with parameters
- Do Hello House
- if done, start Hello Neighborhood
Review: - for loop reminder - Trinket: "for loop exercises"
- Program and embed the "Hello House" in a new ePortfolio page (and then do the "Hello Neighborhood" lab activity - to be embedded on the SAME page)
- Quiz 1.1
- review quiz
- CitN x 2
Agenda:
- Hello House
- Hello Neighborhood
- Functions
- finish "Hello House" project (in GD doc)
- abstraction and functions - GD doc "Hello Neighborhood"
- show "Hello Neighborhood" - just the main program (hide the functions)
- explain abstraction and hiding details
- show how easy it is to extend the neighborhood (add houses)
- explain that more turtles can be added without changing the whole main program
- students to embed "Hello Neighborhood" on the SAME ePortfolio page as "Hello House"
- Functions (slides in Stage)
- without parameters
- with parameters
- go over function print_biggest(a, b, c) on slides
- embed both "Hello House" and "Hello Neighborhood" on ePortfolio page and turn in through Veracross.
- Replace "Primeness Project" with "Image Processing" ?
- https://trinket.io/library/trinkets/ff1a0ba8c6
- Yom Kippur - students work on sub plan
- do "Primeness project"
- 35 twin primes between 3 and 1,000, 205 in 3 to 10,000
- 30 triplet primes between 3 and 1,000, 112 in 3 to 10,000
for loops and functions
Self study Functions returning a value (slides in stage - for students to go through)
- turn in link to exercises in Veracross
Agenda
- Finish Functions (slides in Stage)
- CitN
- go over Self study Functions returning a value (slides in stage - for students to go through)
- did students turn in link to exercises in Veracross?
- review and emphasize - functions with formal vs. actual parameters:
" formal vs. actual function parameters" - https://trinket.io/library/trinkets/147b82e9eb
- review and emphasize - functions with return values
" turtle applies color - return values" - https://trinket.io/library/trinkets/ac40d97988
Start "Manipulating Images"
- motivation: show video clip: https://drive.google.com/file/d/154dTtZqJM2Abwt6YwxeFxolvuwcm00Ie/view?usp=sharing
or trinket: https://trinket.io/python/5f32fbf503?outputOnly=true&runOption=run
- show turtle "raster", one col and one row at a time ("turtle pixels"): https://trinket.io/library/trinkets/957745c51c
- slides: https://docs.google.com/presentation/d/10q5j44NBM9VT6xyPNcti2bpp-L1ur0dBDoYfHBWxW7s/edit#slide=id.p
- start on their own Math Quiz project
if doing Primeness:
- show students that once they convert the program to a function, they will time it
- recreate with students "timing execution 1"
- fill in dummy brute_force with addition up to 10,000,000 (~ 10 sec.)
- show how to time it with time.time()
- addition timing
- multiplication timing
- CitN presentations
- CitN - Navigating using A* algorithm (A-Star) - demo at
http://www.redblobgames.com/pathfinding/a-star/introduction.html
(or show - example 2 of CitN)
if doing Primeness
- look at timing table - linear growth - for brute force
- slow growth for fast prime function
- Do (practice functions with return values):
- do PotD on functions, parameters, calling functions, conditions:
- in prep for primes: students do
- divisible_by_3(), divisible_by_n(), "Number in range"
- or if done with Primeness:
- PotD #8, 9, 10 (revers(), is_palindrome(), is_palindromic_sentence() )
- if finished with Primeness
- do Math Quiz (req. doc in GD)
- if doing image manipulation:
- go through the preso "Manipulating Images) in GD
Do Image Manipulation (slides) instead of Primeness project
for loops and functions: https://trinket.io/python/a7bd180b13 - manipulate image jack_of_diamonds
(https://trinket.io/library/trinkets/56566f0a73 (drawing on an image - hexagon) )
- if doing primes:
Functions - "Primeness Project"
Using loops and functions in non-graphic (non-turtle) problems:
- Prime numbers - TED talk by Adam Spencer
- video clip https://youtu.be/B4xOFsygwr4?t=201 (from t ~ 3:30). program to test for primes: t=13:10 - 6 lines of code - challenge for the students :)
- I explain the reqs for a program to test if a number n is prime or not (per the GD doc - "Primeness project") - practicing loops
- Discuss the "brute-force" algorithm - any suggestions/ideas?
Ulam's Spiral, Arthur C. Clarke's book "Garden of Rama", and number 41 (prime number equation generator: n*n - n + 41) - https://www.youtube.com/watch?v=3K-12i0jclM
- Mining primes in lines/patters/equations on Ulam's Spiral:
- https://trinket.io/library/trinkets/64d542a4e6
Start working on loops/primes exercise (per the GD doc - "Primeness project"):
- Students continue Primeness Project
- brute force, timing
- fast_prime() timing
- ask students to show how to define a function for brute_force()
- Continue working on loops/primes exercise (per the GD doc - "Primeness project"):
- fill out speed/performance spreadsheet
- ask students to show how they defined brute_force_primeness() and timed it
- show students how to optimize for fast_primeness()
- skip all even numbers as divisors
- count until sqrt(), not until n-1 nor n/2
- fill out brute_prime vs. fast_prime speed/performance spreadsheet
- check table/student results
- CITN x 2
- if doing image manipulation:
- show & Tell - "Shady Characters"
- start with PotD - "More Shady Characters"
- Continue with preso Image Manipulation (slides)
- if doing primes:
- students show & tell fast_prime()
- explain why going up to sqrt(n), and skipping by 2
- continue working with functions - (per the GD doc - "Python Functions 1" - exploring primes)
- I explain twin_primes and triplets - students do it
- need to prep for palprimes (reverse())
- review reverse() - for palprimes()
- do problem of the day: reverse(s)
- do problem of the day: is_palindrome(s)
- if doing image manipulation:
- finish PotD: Red-eyes, Sunset, Poster-izing
- if doing primes:
- in prep for primeness pal_primes:
- show in class "prep for pal and conclusion for triple primes"
https://trinket.io/library/trinkets/cf0a04fbee
- do problem of the day: reverse(s)
- do problem of the day: is_palindrome(s)
- explain the project in GD doc - "Python Functions 1" - exploring primes)
- Algorithms: brute_force_prime() vs. fast_prime()
- continue working with functions - (per the GD doc - "Python Functions 1" - exploring primes)
- triplets()
- palprimes()
- Ask/email students - to bring earphones for the EarSketch segment
- show Image manipulation - The Mesh, supermesh, bigpox (https://trinket.io/library/trinkets/53ecddb9e7)
- CitN presentations x 2
- I go over with students: "global vs. local variables" (lab activity in GD)
- go over the global/local variable examples in "Global vs. Local Variables - Lab Activity"
BTW, the same is also shown/covered in "Python Concepts and Principles" doc in GD
- students should do the last part in the activity "Now on your own"
- if doing image manipulation:
- finish PotD and embed: Red-eyes, Sunset, Poster-izing
- do PotD: "More shady characters"
- keep practicing good use of functions:
- do PotD #7 (Is divisible by) and #11 ("Number in Range")
- if doing primes:
Agenda:
- CitN
- finish Primeness + "Python Functions 1" - exploring primes
- Show example 4 of CitN (Nest Thermostat + Machine Learning)
- show triplet primes possibility:
- if is_prime(i) and is_prime(i + 6):
if is_prime(i + 2) and not is_prime(n + 4):
print i, i + 2, i + 6
elif is_prime(i + 4) and not is_prime(n + 2):
print i, i + 4, i + 6
- work/finish primeness exercise in class (per the GD doc - "Python Functions 1") - exploring primes
- do palprimes()
- do extra experience (plateau and naughty primes )
- do a few student show & tells
- if doing primes:
Agenda
- Show & Tell Primeness and "Python Functions 1"
- twins, triplets, palprimes
- PotD
- Students Show & Tell Primeness and "Python Functions 1"
- I show in class "prep for pal and conclusion for triple primes" (showing global variables)
https://trinket.io/library/trinkets/cf0a04fbee
- go over "common pattern" for primeness solutions
- emphasize: using the specified functions
- showing global variable use in triplet case
- Students on their own: "global vs. local variables" (lab activity in GD)
- Python Concepts and Principles - variable scope - global vs. local - fill in examples/print results
- students work on their homework/SOUL
- finished students
- PotD - enhanced is_palindromic_sentence() - work for sentences and punctuation
- "is divisible by"
- Students do Problem of the Day: Number in Range (lucky number)
- CitN presentations - catchup
- Students finish Image Manipulation
- turn in
- 10/30 - Journalism students will miss first half od class
- rest of students:
- finish Image Manipulation - turn in (due by next class):
- Combining Images (Eifel + Armstrong)
- Red-eye Effect
- Sunset Effect
- Poster-izing
- work on Prime Project
- Ask students informally (no commitment) who considers taking Mobile or Advanced CS in Semester 2
- show MAD demo collage
- show ACS demo collage
- CitN - I show example - Bitcoin Blockchain simulation
- http://www.bloomberg.com/graphics/2014-interactive-bitcoin-miner/
and my process description at
https://docs.google.com/document/d/1AsaNjqy4iLmkFy12DuPq3U5ZIoDQmSk1PJsVohbSSdM/edit#
- New Segment: EarSketch - examples of application:
- show as motivator: EarSketch final composition (Eric Roek):
https://earsketch.gatech.edu/earsketch2/#?sharing=A_N7tnkpyCkZfgFXVhYt6Q
- I show/explain/demo "phase_1.py":
- https://earsketch.gatech.edu/earsketch2/#?sharing=12jaXAoaB8AGEQQWDmATrg
- variables, for loops
- built-in function signature (fitMedia() )
- Show EarSketch ePortfolio page example (https://sites.google.com/site/studentpcs001/artifact-6)
- Students create EarSketch accounts
- follow the instructions in the GD doc "EarSketch with Python 1"
- students submit "EarSketch_phase_1.py" embedded in their ePortfolio through Veracross
- EarSketch - examples of application:
- show as motivator: EarSketch final composition (Kyra Scott):
- describe/show: intro, middle (ABBACB...), outro
- https://earsketch.gatech.edu/earsketch2/#?sharing=spka8AuYpuALGKy6nHkAfg
- follow the instructions in the GD doc "EarSketch with Python 1"
- I show functions without return value and with return values:
- section_ABA_f.py:
https://earsketch.gatech.edu/earsketch2/#?sharing=4OWtBHk-AVW-hsWS6cG0bA
- segments_with_return_values.py:
https://earsketch.gatech.edu/earsketch2/#?sharing=9mLxETGzgUfYvFyPxa14ew
- variables, expressions, assignment of values
- loops
- functions and parameters
- I show Final Composition requirements
- show as motivator: EarSketch final composition (Kyra Scott):
- describe/show: intro, middle (ABBACB...), outro
- https://earsketch.gatech.edu/earsketch2/#?sharing=spka8AuYpuALGKy6nHkAfg
- in prep for the final composition
- I show effects - EarSketch "pan effect with functions.py":
https://earsketch.gatech.edu/earsketch2/#?sharing=h8HVLZ2YurIUZ7O_a1_fgQ
- "volume effect fade out.py":
https://earsketch.gatech.edu/earsketch2/#?sharing=7mf6j6B81JxjKG6X-sKorg
- CitN presentation x 1
- Finish EarSketch projects
- finish "EarSketch with Python 1"
- turn in EarSketch python 1
- Start Concluding project - the instructions in the GD doc "EarSketch Final Composition"
- 10/31 Halloween - Dress up as Count Ockham
explain Ockham's Razor - https://youtu.be/YQ1qvuioRlk?t=18
10/31:
- CitN presentation (Zack)
- because of HAL the artificial patient preso (Prithi), I show "Need We Fear Artificial Intelligence"
- show as inspiration Caleigh's final composition
- work on "EarSketch Final Composition"
- concluding music piece
- Finish "EarSketch Final Composition"
- concluding music piece
- show & tell next class
- finished students - Math Quiz - project (in GD)
- CitN - Neil catch-up?
- Students Show & Tell "EarSketch Final Composition"
- concluding music piece
- if small class: write own SOUL on Final EarSketch Composition
- else: Write 2 peer SOULs
in prep for Quiz 2:
- do problem of the day: reverse(s)
- do problem of the day: is_palindrome(s)
- if haven't done in "Global vs. Local Variables - Lab Activity"
- students should do the last part in the activity "Now on your own"
- ask students to do PotD - "Repeated Lucky Pairs"
- After they try - I show/explain - Trinket "Global Variables example" - repeated lucky pairs:
- need to add global in the function:
https://trinket.io/library/trinkets/c29d669d4a
- finished students - Math Quiz - project (in GD)
- Python Functions - Quiz 2
- Review Quiz
- show video clip Boston Dynamics - Atlas robot
- finished students - Math Quiz - project (in GD)
- Python Functions - Quiz 2
- Review Quiz
- since I'll be going to IL 11/27-12/1 - start lists early, then do "Guess My Number" (while I'm gone):
- show and walk through trinket "lists 0"
- I show/review https://trinket.io/library/trinkets/58aeb45579
- students do "lists 0 - WIP": https://trinket.io/library/trinkets/ce9dfc9c85 (link is in Veracross)
(solutions are in GD "Python Lists 0")
- Everyone - create a new ePortfolio page with links to all their CitN presentations
- finished students
- Math Quiz - project (in GD)
- The Collatz Conjecture (in GD)
- Python Functions - Quiz 2.1
- Review Quiz
- show Guido programming clip (https://youtu.be/0Ef9GudbxXY?t=230)
- ask students to do PotD (at the end of "lists 0 - WIP"):
- for reference/help they can use "Python Lists 0" in GD
- this includes PotDs:
- "Is color in the list"
- "Is color in the SUB-list"
- show advantage of lists: if color in colors:
- "biggest_of_four(a, b, c, d)" vs. "biggest_in_list(my_list)"
- show advantage of lists: max(lst)
- since I'll be going to IL 11/27-12/1 - start lists early, then do "Guess My Number" (while I'm gone)
- show video clip Boston Dynamics - Atlas robot
- Niel - CitN + EarSketch final:
- CitN presentation x 1/2
- Do NOT do PotD "Same colors" - there is "Colorful Birthdays" doc (in GD doc)
Sem. 1 Thanksgiving Break
- Neil - CitN catchup
- Same Birthday project (not from PotD)
- CitN - Neil
- finish "Same Birthdays"
- fill out table with % chances
- if done, do PotD
- Pangram
- Collatz + plotting with Turtle
-
- Neil - EarSketch - catchup
- all work for 30 min.s on "Same Birthdays"
- finish in class or do as homework
- start CYOA (only 5 classes to the end of Sem. 1)
- show video of Collatz Conjecture - https://www.youtube.com/watch?v=5mFpVDpKX70
- program the PotD "Converging sequence (the Collatz Conjecture)"
- Algorithms - "Guess My Number game" - binary search algorithm
- follow the instructions in the GD doc "Guess My Number game"
- show algorithm pseudo code
- fill out the spreadsheet with guess results (per the GD doc)
- embed in your ePortfolio
- write SOUL reflection - binary search - algorithm efficiency
Thanksgiving break 11/20-11/24
- PotD
- fairness of random
- coin flips
- continue CYOA
- if done, work on "Guess My Number game"
- then The Last Banana
then Rock-Paper-Scissors
- students work on "Guess My Number game"
- finished students finish "Math Quiz"
- finished students do PotD:
- finish the "Collatz Conjecture"
- problems 1 to 9
- Lists - Lab Activity -
- review with students "Colorful Birthdays" (in GD doc)
- Students do "Colorful Birthdays" (in GD doc)
- fill out spreadsheet - "Same Birthday Results" in GD
- Students show & tell
- Math Quiz
- Guess My Number
- show & tell - "Guess My Number"
- how many guesses for 1-1,000,000?
- see table with guess results (number, formula)
- Review students' code and provide feedback
- Guess My Number
- show 3 examples of "Guess My Number" (Trinket "Guess My Number x 3")
I'm back from IL 12/4
Because of trip to IL - I did list early: week of 11/13 - 11/17
Data Structures - Lists
- Students - show/explain "Colorful Birthdays" in GD
- show Birthday Problem in Wikipedia
- embed
- fill in table with results (for b-days)
- Show/explain Rock-Paper-Scissors
- using lists (as opposed to many if/else conditions)
- if done with R-P-S - start/continue CYOA
- Already did lists early, due to trip to IL
- show and walk through trinket "lists 0"
- I show/review https://trinket.io/library/trinkets/58aeb45579
- students do "lists 0 - WIP": https://trinket.io/library/trinkets/ce9dfc9c85
(solutions are in GD "Python Lists 0")
- ask students to do PotD (at the end of "lists 0 - WIP"):
in prep for quiz 3 - do lists 1 - WIP (assignment in Veracross)
- https://trinket.io/library/trinkets/3faf16f1e7
- Do PotD
- "Is color in the list"
- show advantage of lists: if color in colors:
- "Is color in SUB-list"
- "biggest_of_four(a, b, c, d)" vs. "biggest_in_list(my_list)"
- show advantage of lists: max(lst)
- do Colorful Birthdays in GD
- Python Lists - Quiz 3
- Review Quiz
PotDs: "fairness of random" and "biggest_of_four(a, b, c, d)" vs. "biggest_in_list(my_list)"
- start/continue Colorful Birthdays in GD
- Review key points in CYOA
- if done with R-P-S - start/continue CYOA
- Python Lists - Quiz 3.1
- Review Quiz
PotDs: "find_length_of_longest_word()" and "get_words_longer_than()" , "Coin Flips"
- continue CYOA
- CitN presentations
- already did - 11/10 - show Guido programming clip (https://youtu.be/0Ef9GudbxXY?t=230)
- Review with students the PotD at the end of "lists 0 - WIP":
- "biggest_of_four(a, b, c, d)" vs. "biggest_in_list(my_list)"
- show advantage of lists: max(lst)
- Lists - Lab Activity -
- review with students "Colorful Birthdays" (in GD doc)
- Students do "Colorful Birthdays" (in GD doc)
- fill out spreadsheet - "Same Birthday Results" in GD
After students finish "Colorful Birthdays" (in GD doc):
- "Is color in the list"
- show advantage of lists: if color in colors:
PotD - Lists - "pangram"
- "fairness of random"
- PotD - Enhanced Palindrome (with sentences)
- finish "math quiz" project if not done
- I Go over PotDs and highlight points:
- "Same birthdays" (PotD)
- show "spreadsheet - "Same Birthday Results" in GD
- show wikipedia page with likelihood (50% for 23 people)
- http://en.wikipedia.org/wiki/Birthday_problem
- "fairness of random" - using a list as arrays of counters
- students - do PotD "coin flips a" (3 players, 2 coin flips)
- list-driven solution
- show & tell CYOA
- CitN presentations x 1
For electives in 2nd semester:
- show MAD project:
- the Magic Hand of
- Magic 21 Card Game
- show ACS projects:
- (right hand) maze walking 4 - https://trinket.io/library/trinkets/997b93b881
- binary tree maze walking - https://trinket.io/library/trinkets/9a1a8411c8
- review the strength of lists
- max(my_list)
- min(my_list)
- can do average(my_list) by: sum(my_list) / len(my_list)
- show the strength of lists (instead of logic if/then/else):
if month in [1, 3, 5, 7, 8, 10, 12] instead of if month == 1 or month == 3 ...
- In prep for "Colorful Birthdays"
- I do together with the students part of "same colors" problem (show how to compare one color to all others in the list
- Students start "Colorful Birthdays"
End of Semester 1 - with Quiz 3.0 and 3.1 instead of Final Test
- video clip "The incredible inventions of intuitive AI " (15 min.)
- https://www.youtube.com/watch?v=aR5N2Jl8k14
- video clip "Humans need not apply" (15 min)
- https://www.youtube.com/watch?v=7Pq-S557XQU&sns=em
- questions about the movie
- what can/should we do?
- slow down technology/automation?
- like measures against nuclear proliferation?
- Universal Basic Income?
- flexible education?
- life-long re/training?
12/14 - Final Test
- Demo/Preso - Ytai Ben-Tsvi (Google) - art, CS, hardware, software (IOIO)
- CitN presentations
-PotD - "fairness of random" - using a list as arrays of counters (a different use for lists):
- reset the counters: counters = [0] * 6 - prep for the Quiz on lists
- Students continue "Colorful Birthdays"
- make sure students know to fill in the "spreadsheet - "Same Birthday Results" in GD
Thanksgiving Break
- Students finish "Colorful Birthdays"
- make sure students know to fill in the "spreadsheet - "Same Birthday Results" in GD
- when students are done, show "spreadsheet - "Same Birthday Results" in GD
- show wikipedia page with likelihood (50% for 23 people)
- http://en.wikipedia.org/wiki/Birthday_problem
- Students do: "Rock-paper-scissors" in GD
- students may implement as simple if/then/else with no lists
- implement with table/list of lists (list-driven solution) - much shorter and concise - see Trinket
- extra experience: calculate the percentage of times a wins, b wins, ties.
- students practice list-driven solutions:
- PotD
- Coin Flips
- is_vowel()
- translate()
- Python Lists - Quiz 3
- Review Quiz
- CitN presentations
- CYOA - Choose Your Own Adventure - text-based game
- Show an example CYOA 0.5 - https://trinket.io/library/trinkets/29d59dc4d2
- Show CYOA Mapping Tool - https://trinket.io/library/trinkets/a802ec6198
- showing a map for a larger adventure (CYOA 1)
- CYOA1 is inspired by http://inventwithpython.com/blog/2010/01/14/new-choose-your-own-adventure-game/
Maybe at the end of 1st semester:
- show the TED Ed video "The Last Banana" up to 0:45 min.
- http://ed.ted.com/lessons/the-last-banana-a-thought-experiment-in-probability-leonardo-barichello
- Student do "The Last Banana - Experimenting with Probability" (doc in GD)
- is the probability prediction correct?
- is the simulation/model/program correct?
- do extra experience: the square/matrix of turtles showing the theoretical probability
- Python Lists - Quiz 3 re-take
- Review Quiz
- finished students do:
- is_vowel() - PotD
- translate() - PotD
- CYOA - Choose Your Own Adventure - text-based game
- Show an example CYOA 0.5 - https://trinket.io/library/trinkets/29d59dc4d2
- Show CYOA Mapping Tool - https://trinket.io/library/trinkets/a802ec6198
- showing a map for a larger adventure (CYOA 1)
- CYOA1 is inspired by http://inventwithpython.com/blog/2010/01/14/new-choose-your-own-adventure-game/
Not in Semester 1:
- Student continue/finish "The Last Banana - Experimenting with Probability" (doc in GD)
- Students do/finish/show PotD - "Repeated Lucky Pairs"
- do with extra experience (lists)
- a way/technique to "exhaustively" automated-test your program
- Python Lists - Quiz 3 re-re-take (3.2)
- Review Quiz
- Before end of semester:
- show MAD apps - examples
- MemoryGame - on iPad
- Magic21Cards - on iPad
- Show ACS programs
- agent chases
- maze walking
- finished students do:
- PotD
- list sum(), multiply()
- max_in_list(), is_vowel()
- continue CYOA
- go over the code of the game - as a template
Not in Semester 1:
- Student finish "The Last Banana - Experimenting with Probability" (doc in GD)
- video clip "Humans need not apply" (15 min)
- https://www.youtube.com/watch?v=7Pq-S557XQU&sns=em
- Students do/finish/show PotD - "Repeated Lucky Pairs"
- do with extra experience (lists)
- a way/technique to "exhaustively" automated-test your program
Last class before finals
- PotD
- find_length_of_longest_word() - get_word_longer_than() - sum() and multiply()
- I show students "CS Definitions" trinket (importing CS definitions from the GNU pages)
- humor
- importing and using modules (files/tabs in the Trinket UI)
- show typing "import this"
- CYOA - Choose Your Own Adventure - text-based game
- Show an example CYOA 0.5 - https://trinket.io/library/trinkets/29d59dc4d2
- Show CYOA Mapping Tool - https://trinket.io/library/trinkets/a802ec6198
- showing a map for a larger adventure (CYOA 1)
- CYOA1 is inspired by http://inventwithpython.com/blog/2010/01/14/new-choose-your-own-adventure-game/
Final Test - spring semester
- continue CYOA
- go over the code of the game - as a template
- students show & tell the CYOA - Map (using the mapping tool)
Visit Tata @ Pinewood - for internship Preso
Not in Semester 1:
- Show & Tell CYOA
Students did PotD
from random import randint
def check_sameness(lst):
results = []
for i in range(len(lst) - 1):
for j in range(i + 1, len(lst) - 2):
if lst[i] == lst[j]:
results.append([lst[i], i, j])
return results
b_days = []
n_people = int(input("how many people?"))
for person in range(n_people):
month = randint(1, 12)
if month in [1, 3, 5, 7, 8, 10, 12]:
day = randint(1, 31)
if month in [4, 6, 9, 11]:
day = randint(1, 3)
if month == 2:
day = randint(1, 28)
b_days.append(str(month) + "/" + str(day))
print b_days
init()
setTempo(120)
'''
fitMedia(TECHNO_POLYLEAD_002, 1, 1, 3)
fitMedia(TECHNO_POLYLEAD_003, 2, 3, 5)
fitMedia(TECHNO_POLYLEAD_002, 1, 5, 7)
fitMedia(TECHNO_POLYLEAD_003, 2, 7, 9)
'''
def alternating(track1, track2, instrument1, instrument2, start, duration):
fitMedia(instrument1, track1, start, start + duration)
fitMedia(instrument2, track2, start + duration, start + 2 * duration)
'''
alternating(1, 2, TECHNO_POLYLEAD_002, TECHNO_POLYLEAD_003, 1, 2)
alternating(1, 2, TECHNO_POLYLEAD_002, TECHNO_POLYLEAD_003, 5, 2)
alternating(1, 2, TECHNO_POLYLEAD_002, TECHNO_POLYLEAD_003, 9, 2)
'''
'''
for i in range(2, 10, 4):
alternating(1, 2, TECHNO_POLYLEAD_002, TECHNO_POLYLEAD_003, i, 2)
'''
def repeat_alternating(n):
for i in range(1, 4 * n, 4):
alternating(1, 2, TECHNO_POLYLEAD_002, TECHNO_POLYLEAD_003, i, 2)
repeat_alternating(8)
finish()
- Problems of the Day doc on Google Drive - problem # 14 (histogram() )
- Problems of the Day doc on Google Drive - problem # 15 (find_length_of_longest_word() )
- Problems of the Day doc on Google Drive - overlapping() )
- Problems of the Day doc on Google Drive - generate_n_chars() )
- factorial -
- count down (in recursion 0) - http://sage.cs.berkeley.edu/mod/resource/view.php?id=9727
- exercise - say numbers in range - http://sage.cs.berkeley.edu/mod/resource/view.php?id=9733
- palindrome (in recursion 0)
- add the digits of a number - http://bjc.berkeley.edu/bjc-r/cur/programming/recur/recursion-ii/write-a-recursive-block-to-add-the-digits-in-a-number.html?topic=original_bjc/14-recursion-II.topic&step=9&course=
- shapes - squiral - http://bjc.berkeley.edu/bjc-r/cur/programming/recur/recursion-ii/make-a-recursive-squiral.html?topic=original_bjc/14-recursion-II.topic&step=8&course=
- fractals
- Koch's Curve - http://sage.cs.berkeley.edu/mod/resource/view.php?id=9722
- C-curve - http://sage.cs.berkeley.edu/mod/resource/view.php?id=9723
- BJC 2012 - http://sage.cs.berkeley.edu/course/view.php?id=24
Final Test - Fall semester
- intro to recursion
- good for bonus points in Final Test
- count_up(start, end) - recursively
- examples at: http://www.cs.cornell.edu/courses/cs211/2006fa/Sections/S2/recursion.txt
Final Test
- CitN
- students show & tell the CYOA - Map (using the mapping tool)
- continue working on CYOA
- Python Lists - Quiz 3 re-re-take
- CitN (instead of Friday)
- students show & tell the CYOA - Map (using the mapping tool)
Finished students do PotD:
- Problems of the Day doc on Google Drive - problem # 14 (histogram() )
- Problems of the Day doc on Google Drive - problem # 15 (find_length_of_longest_word() )
- Problems of the Day doc on Google Drive - problem # 20 (overlapping() )
- Problems of the Day doc on Google Drive - problem # 21 (generate_n_chars() )
- CitN (instead of Friday)
- Problem of the Day - prep for the test
- continue working on CYOA
- CitN
- continue working on CYOA
- Announce - Final Exams - next Tue/Wed 5/19-20
- CitN (instead of Friday)
- Before end of semester - show MAD apps - examples
- MemoryGame - on iPad
- Magic21Cards - on iPad
- Problem of the Day - prep for the test
- Finish working on CYOA
- write own SOUL
Finished students do PotD:
- Problems of the Day doc on Google Drive - problem # 14 (histogram() )
- Problems of the Day doc on Google Drive - problem # 15 (find_length_of_longest_word() )
- Problems of the Day doc on Google Drive - problem # 20 (overlapping() )
- Problems of the Day doc on Google Drive - problem # 21 (generate_n_chars() )
- Students who finish early, will work on the Simple Sorting Algorithm using Lists project
- Problem of the Day - prep for the test
- students play each other's CYOA
- Time permitting: start Recursion lab activity
(Seniors - "Cut Day" - will miss class)
- Problem of the Day - prep for the test
- continue Recursion lab activity
- Problem of the Day - prep for the test
- continue Recursion lab activity
Ideas for projects:
- Statistics calculator/simulator
- multiple dice experiments
- multiple coin tosses
- population, sampling, distribution
Final Test/Exam
- Problem of the Day - prep for the test
- Encryption/decryption activity
- show a video on encryption - general (enigma/Turing?)
- show video on caesar cypher -
- show example - trinket caesar cypher 0
- students write a program to ask the user for a message and encrypt and decrypt it
- assuming the KEY is known
- trinket caesar cypher 1
- students write an encryption algorithm and send an encrypted message for other students to decrypt
- combine encryption with image processing:
- hide messages in bitmaps/images like in Steganography: https://www.clear.rice.edu/elec301/Projects01/steganosaurus/background.html
- Problem of the Day - prep for the test (12/16)
- Problem of the Day - prep for the test (12/16)
- per the prep page on Google Drive
- Recursion - lab activity
- palindrome
- squiral
- recursive tree - 6 levels
- recursive Koch Fractal - 6 generations
- Problem of the Day - prep for the test (12/16)
- Recursion - lab activity
- palindrome
- squiral
- recursive tree - 6 levels
- recursive Koch Fractal - 6 generations
- Show the "Hello, World!" Humor doc (on the spiralinglearning site)
- discuss strengths and weaknesses of different languages
- Intro to Python
- compare/parallel to Snap - http://bjc.berkeley.edu/bjc-r/llab/html/topic.html?topic=berkeley_bjc%2Fpython%2Fbesides-blocks-intro.topic&novideo=true&noreading=true&noassignment=true&course=cs10_sp14.html
- Showcase Python
- EarSketch - music
- VPython - simulations/3D
- Problem of the Day - prep for the test (12/16)
- Recursion - review
- palindrome
- Intro to Python
- Showcase Python
- EarSketch - music
- http://earsketch.gatech.edu/category/unit-4
- VPython - simulations/3D on the Web - Glowscript
- http://www.glowscript.org/#/user/GlowScriptDemos/folder/Examples/
- Intro to Python doc on Google Drive
- Students fill out Course Survey (link is on Veracross)
- Continue Intro to Python
- Problem of the Day - prep for the test (12/16)
- Students review and complete their ePortfolio (part of final grade)
- all projects, SOUL reflections
- all CitN presentations
Ask students to take 1 minute to fill out Advanced CS class form - if interested in taking follow-on class
Final Test
- Students can bring iPad, pencil/pen, paper
- I need to check
- that all students have recorded their "Analysis"/multiple choice responses in Google Form
- that all students submitted the "Programming" project through Veracross
- that I can save a copy of their shared "Programming" project as my own "remix"
no class
Post final - no class
- Problem solving with Algorithms
- from CS Unplugged?
- binary search ("Guess My Number") for CTE)
- maze walking (left-hand, bread-crumbs)