First Programming with Scratch ← School Computer Curriculum
What you'll learn
- Gain basic knowledge about computer programming
- Grasp fundamental concepts of programming languages: objects, events, logic, conditionals, variables, states, and more
- Gain experience with tile/block-based family of programming environments
- Learn to create programs with Scratch
- Gain familiarity, basic knowledge, and experience to start learning new programming languages
- Develop your skills in reasoning, computational thinking, and problem solving
- Build on your skills in modeling, design, planning, implementation, debug, and testing
- Engage and apply your own creativity, self-expression, and artistic skills using technology with all open-ended customizable projects
- Computer with internet browser and internet access
- No prior learning in programming or computer science needed
This STEAM course is designed specifically for middle or high school students who want to take their first class about computer programming. It's a great starter programming course to include as part of a computer science curriculum for your students.
This course isn't about learning Scratch programming specifically. Rather, it is designed to help students get their first experience with computer programming, and along the way, get a basic understanding and familiarity with essential concepts in programming languages, such as algorithms, loops, variables, logic, conditionals, objects, properties, events, design, implementation, debugging, testing, etc.
The projects in this STEAM course are designed to be well-balanced between thinking & logic and artistic expression and creativity, so that both left- and right-brained students can thrive and be motivated!
This is an all project-based lab course. Each week's class includes a little bit of lecture and slides, but the majority of the time is spent by the students in the lab (or on students' laptops) on their own to finish each week's project. The solution to each project is included and the teacher may choose to review it with the students during the next class. The course ends with a capstone project, wherein students will design, implement, test, and debug a State Machine device of their choice (e.g. a soda machine) using Scratch.
I teach this class to a real 8th grade classroom in a middle-high school, during one school semester.
Perquisites and Requirements
No prior knowledge or experience in programming needed
Exercises only require a computer with internet access
Scratch: Sign Up, Log In
Intro to Algorithms
Project 1: Write Algorithm for Farmer River Crossing Problem
Project 2: Implement Algorithm to Farmer River Crossing Problem Using Scratch
Project 3: Remote Controlled Car
Project 4: Traffic Light
Project 5: Traffic Light with Timer
Create a Moving Art
Project 7: Browse Existing Scratch Community Projects
Asking the User
Project 8: ATM Machine
Project 9: Make Some Sound/Music
Testing & Debugging
Project 10: Rock Paper Scissors Game: Debug & Customize
(Bonus) Unit 12
(Bonus) Design Project 11: Make Your Own State Machine
Who this course is for:
- Elementary school, middle school, and high school students interested in taking their first class on programming
- Students who want to improve their skills in problem solving and logic
- School educators looking for a classroom-tested--and suitable for a semester--first programming course to teach students
Hesam (Sam) Samimi is a teacher of Computer Science and programming, as well as an independent curriculum developer, teaching and developing project-based learning curriculums for secondary K-12 schools and online educational platforms since 2017. He's also an ESL English teacher, a web and mobile app developer, and a yoga and meditation instructor.
He has recently launched Termeric Education, which is an online buy-and-sell marketplace for school subject curriculums.
Before discovering his passion at the crossroads of computers and teaching, Hesam spent seven years during and after his Ph.D. studies at UCLA as a programming languages researcher, focusing on the application of artificial intelligence in programming and software development.