Intro to Computer Science Teaching Resource (Curriculum Map)¶
Materials and preparation resources can be found in each of the lesson pages.
Pacing Guidance: 1 Day is a 55 minute class period.
Protected content such as unit quizzes, quiz answer keys, project sample solutions can be accessed from the TEALS Dashboard in Additional Curriculum Materials.
Template Syllabus: Feel free to use this template to build a syllabus for your class.
Computer Science Teachers Association Standards Mapping
Unit 0: Beginnings¶
Lesson |
Objectives |
Lab |
Days |
---|---|---|---|
Identify the class they are taking. List the high-level goals of the course. Describe classroom procedures, rules, and norms. |
Syllabus |
1 |
|
Define algorithm. Construct algorithms for performing simple tasks. |
Peanut Butter Jelly |
1 |
|
Complete small coding tasks (Hour of Code). Explain why computer programs are written in specialized languages. |
Hour of Code |
1 |
|
Create a simple program in Snap! to describe themselves |
Getting to Know You |
1 |
|
Recall the Cartesian coordinate system. Implement the coordinate system to position a sprite using Snap! Coordinates. |
Getting to Know Snap! Coordinates |
1 |
Unit 1: Snap! Basics¶
Lesson |
Objectives |
Lab |
Days |
---|---|---|---|
Define and identify blocks, scripts, sprites, and the stage in Snap!. Write simple Snap! programs. Describe what simple Snap! programs do without executing the script. |
Welcome to Snap! |
2 |
|
Identify the categories of blocks in Snap!. Describe the function of several common Snap! blocks. Be able to use common blocks to build simple Snap! programs. |
Snap! Scavenger Hunt |
1 |
|
Construct simple algorithms to draw shapes. Convert algorithms into Snap! programs. |
Squares and Triangles and Stars, Oh My! |
1 |
|
Animate Snap! sprites using costume changes and movement.Trigger action in other sprites using broadcasts.Implement scripts for multiple sprites. |
Sprites in Action |
1 |
|
Apply Snap! programming skills to create an animated movie, play, nursery rhyme, or other scene. Practice good debugging skills to correct issues as they arise while programming. |
Project 1: Animated Storytelling |
2 |
|
Connect CS Unit topics with current events |
(see Culture Day LPs) |
Unit 2: Loop-de-Loop¶
Lesson |
Objectives |
Lab |
Days |
---|---|---|---|
Define loop in a programming context. Explain why loops are useful. Implement simple repeat and forever loops in Snap!. Apply loops to reduce redundancy in code. |
Squares and Triangles Redux |
1 |
|
Apply nested loops to solve programming problems. |
Another Brick in the Wall |
1 |
|
Apply |
What Shape Is That? |
1 |
|
Apply variables to track values throughout a program. |
Guessing Game |
1 |
|
Define and identify Boolean expressions and operators. Evaluate Boolean expressions. Utilize Boolean operators, |
Triangle of All Kinds |
1 |
|
Implement a well-written version of Pong. Practice good style and conventions to create readable and maintainable code. |
Project 2: Pong |
4 |
|
Connect CS Unit topics with current events |
(see Culture Day LPs) |
Unit 3: Abstraction and Customization¶
Lesson |
Objectives |
Lab |
Days |
---|---|---|---|
Define the terms Abstraction and Generalization. Recognize opportunities to improve algorithms by abstracting or generalizing parts into sub-procedures. |
Drawing Shapes Again |
1 |
|
Combine loops with conditionals to create models with repeated but conditional behavior. |
What Goes Up… |
1 |
|
Build custom Snap! blocks that take arguments. |
Let Me Check My Calendar |
1 |
|
Build custom reporter and predicate blocks in Snap!. |
If My Calculations Are Correct… |
1 |
|
Apply loops, variables, and Boolean expressions to implement a Super Mario Bros. style platform game. Practice good debugging skills to correct issues as they arise while programming. |
Project 3: Platform Game |
8 |
|
Connect CS Unit topics with current events |
(see Culture Day LPs) |
Unit 4: Lists¶
Lesson |
Objectives |
Lab |
Days |
---|---|---|---|
Explain the concept of a |
1 |
||
Create static lists in Snap!. Access elements of a list. Add and remove elements from a list. |
You Talkin’ to Me? |
1 |
|
Traverse a list, accessing each element one at a time.Perform operations combining all elements in a list. Select defined subsets of elements in a list. |
Guess Who |
1 |
|
Traverse a list, accessing each element one at a time. Perform operations combining all elements in a list. Select defined subsets of elements in a list. |
Number Cruncher |
1 |
|
Explain the sequential search algorithm. Implement several variations of sequential search.. |
It’s Around Here Somewhere |
1 |
|
Apply lists to implement a complete version of Guess My Word. Exercise good programming practices to produce code that is not only functional but also elegant and well-written. |
Project 4: Guess My Word |
5 |
|
Connect CS Unit topics with current events |
(see Culture Day LPs) |
Unit 5: Cloning¶
Lesson |
Objectives |
Lab |
Days |
---|---|---|---|
Explain why prototyping and clones can be useful. Describe how complex goals can be accomplished using cloning. |
Connect the Dots |
1 |
|
Demonstrate the difference between sprite and global variables. Explain how cloning and prototyping simplify similar sprites in the same program. Create prototype sprites and clones of the prototype sprite. Explain the difference between a “master” sprite and a “clone” sprite. |
Lots of Balls |
1 |
|
Pass information from the master to individual clones. Delete clones when they are no longer needed. |
Fewer Balls |
1 |
|
Use cloning to implement a complete version of “Space Invaders”. Exercise good programming practices to produce code that is not only functional but also elegant and well-written. |
Project 5: Space Invaders |
10 |
Unit 6: Final Project¶
Lesson |
Objectives |
Lab |
Days |
---|---|---|---|
Identify the key considerations when designing a piece of software. Describe methods for prioritizing features, use cases, and/or scenarios.Explain why design and planning are necessary steps in the software engineering process. |
Final Project |
1 |
|
Identify potential users, intended impact, and possible unintended negative consequences. Generate ideas to create range of possibilities using a brainstorm technique. Conduct user-centered research to understand design opportunities and barriers. Critically analyze factors when choosing between project ideas. Prioritize proposed project ideas using the identified factors. |
1 |
||
Define key user-scenarios for a project and the features required to implement each scenario. Explain the importance of wire framing when designing an application. Capture key scenarios using sketches - (hand drawn, or with drawing tool). Refine design based on user-centered research. |
Final Project |
1 |
|
Break down, and identify the main technical components needed for the functional project specifications (scenarios). Explain the purpose of each technical component. Develop the project idea into a full, detailed specification. Create a plan that includes specific steps or a list of bite-sized tasks. Estimate time required for tasks. |
Final Project |
1 |
|
Apply the skills developed throughout the course to implement a medium* to large-scale software project. Realistically evaluate progress during software development and identify when cuts are necessary. Prioritize features and scenarios and choose which should be eliminated or modified if/when resources and/or time become limited. Record time taken for tasks, and lessons learned in the process, to help refine estimates. Record iterations of prototyping. |
Final Project |
10 |
|
Share their progress, invite feedback, collaboration, and if applicable, prepare a marketing pitch. Decide on how and with whom to promote and share their project. Critically evaluate the design process, their ability to work effectively, including the ability to implement project management processes. Identify new design issues, including how they or others might build on their concept. Identify and evaluate their skills, and things to learn in the future. Analyze the role and impact of their project idea, and similar technologies, in societal change. Consider how cultural beliefs, values, and ethical positions affect the development and use of technologies. |
Final Project |
1 |