Udemy - High School Computer Science (Math) and Programming Workshop
Description
Highlights
- Introduction to Computer Science and Programming Workshop
- Designed for High School and Junior High Students
- Trains and Encourages Critical Thinking, Logical Reasoning, and Technology Orientation in Young Adults
- Workshop: The Majority of Each Class Spent on Exercises Done by the Student
- Covers Fundamental Topics in Computer Science and Programming, Major Areas of Computer Science, Including:
- Science and Engineering
- From Model to Implementation
- Reverse Engineering and Tinkering
- Math and Computer Science Theory
- Data Structures: Trees, Graphs
- Algorithms: Shortest Path
- Artificial Intelligence
- Networks
- Programming Languages
- Functions
- Object-Oriented Programming
- Not a Course about a Programming Language, Rather about Fundamental Ideas in Computer Science and Programming
- Exercises Aid Learning, Using UC-Berkeley's Snap! Programming Tool (Designed for Kids and Young Adults)
- 15-Week Course (26 Lectures)
- 8+ Hours of Video Instruction, Plus Many More Hours Spent Doing the Exercises on Your Own
- Accompanying Web Page for Each Class
- Includes Lecture Slides, Links to Exercises on the Web Page
- Learning Fundamental Ideas in Computer Science and Programming Will Set Students up to Go and Learn Any Programming Language
- No Prior Knowledge or Experience in Computer Science or Programming Necessary
Overview
This new class is designed specifically for high school and junior high students who want to get a head start learning about what Computer Science and Programming are about. This course isn't about learning a specific programming tool or language. Rather, it is designed to help them strengthen their critical thinking and logical reasoning faculties, as well as give them the depth of understanding in fundamental concepts in Computer Science and programming, so that they could later on get started with any programming language or technology project.
A solid overview and key concepts in many areas of Computer Science are covered by this course, including Big Ideas in Science and Engineering (Real-World Modeling, Physics Simulations, From Model to Implementation, Reverse Engineering and Tinkering), Computer Science and Math Theory (Lists, Sets, Data Structures such as Dictionaries, Trees, Graphs, Algorithms such as Shortest Path), Programming Languages (Functions, Object-Oriented Programming), Artificial Intelligence (Propositional Logic), and Networking (Internet Protocols), and more.
I teach this class to some Living Wisdom School high school students in Nevada City, CA, as an alternate Math course.
This is a 15-week workshop course. Each class (week)'s lecture takes about 90-120 min. on average. Each class includes some lecture with slides, but the majority of the time the students will be working on programming or design exercises on their own computer. After each exercise the students can resume the lecture video to check their work against the teacher's.
The majority of the exercises included in each class are done in Snap!--the programming tool from UC-Berkeley. Students can share their work and view programs done by other students around the world.
Perquisites and Requirements
- No Prior Knowledge or Experience in Programming Needed
- Exercises Only Require a Computer with Internet Access
Sections
- Intro: Introduction to this workshop series
- Week 1: Lists, Sets
- Week 2: A Snappy Snap! Primer
- Week 3: Concurrent and Event-Based Programming
- Week 4: Revising the List Example: Under the Hood
- Week 5: Modeling, Design, Implementation: Traffic Light, ATM
- Week 6: Implementing the Traffic Light Simulation
- Week 7: Functions
- Week 8: Binary Search Trees
- Week 9: Values, Types, Dictionaries
- Week 10: Graphs, An Algorithm
- Week 11: Implementing a Graph Algorithm
- Week 12: Propositional Logic, "Have I Lied?" Game
- Week 13: State Machines
- Week 14: Internet Protocols
- Outro: Next Steps
Who this course is for:
- High School and Junior High Students Interested in Computer Science and Programming
- Anyone Interested in Getting an Overview of Computer Science and Programming Ideas Using a Fun Programming Tool
Course content
- Introduction
- Class 1: Lists, Sets
- Class 2: A Snappy Snap! Primer
- Class 2: A Snappy Snap! Primer
- Class 3: Concurrent and Event-Based Programming
- Class 3: Concurrent and Event-Based Programming
- Class 4: Revising the List Example: Under the Hood
- Class 4: Revising the List Example: Under the Hood
- Class 5: Modeling, Design, Implementation: Traffic Light, ATM
- Class 5 - Part One: Modeling, Design, Implementation: Traffic Light, ATM
- Class 5 - Part Two: Implementation: ATM
- Class 6: Implementing the Traffic Light Simulation
- Class 6 - Part One: Global vs. Instance Variables, Traffic Light Simulation
- Class 6 - Part Two: Traffic Light Simulation Exercises
- Class 6 - Part Three: Traffic Light Simulation Exercises (Cont.)
- Class 6 - Part Four: Traffic Light Simulation Exercises (Cont.)
- Class 7: Functions
- Class 8: Binary Search Trees
- Class 8 - Part One: Binary Search Trees
- Class 8 - Part Two: Binary Search Trees
- Class 8 - Part Three: Binary Search Trees
- Class 9: Values, Types, Dictionaries
- Class 9: Values, Types, Dictionaries
- Class 10: Graphs, An Algorithm
- Class 10 - Part One: Graphs, Shortest-Path Algorithm
- Class 10 - Part Two: Shortest-Path Algorithm
- Class 11: Implementing a Graph Algorithm
- Class 11 - Part One: Implementing a Graph Algorithm
- Class 11 - Part Two: Implementing a Graph Algorithm
- Class 11 - Part Three: Implementing a Graph Algorithm
- Class 12: Propositional Logic, "Have I Lied?" Game
- Class 12: Propositional Logic, "Have I Lied?" Game
- Class 13: State Machines
- Class 13 - Part One: State Machines
- Class 13 - Part Two: State Machines
- Class 14: Internet Protocols
- Outro: Next Steps