Skip to content

Latest commit

 

History

History
202 lines (168 loc) · 19.9 KB

File metadata and controls

202 lines (168 loc) · 19.9 KB

2nd Semester - Introduction to Computer Science 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.

For TEALS schools in BC, Canada, please see Aligning TEALS Python Teaching Resources with the BC Curriculum.

Template Syllabus: Feel free to use this template to build a syllabus for your class.

Computer Science Teachers Association Standards Mapping

Master Vocabulary

Unit 1 Map - Introduction to Python

Lesson Objectives Lab Days Slide Deck
1.01: Set Up Define and identify: IDE, Python. Identify the key concepts that will be covered in the course. N/A 1 1.01
1.02: Interactive Mode Define and identify: interpreter, string, integer, float, value, errors, console, expression. Use the Python interpreter to evaluate simple math expressions. Distinguish between an integer, float, and string. Using the Interpreter 1 1.02
1.03: Script Mode and Variables Define and identify: script, print, run, output, variable. Write a simple script and run it in the IDE. Print values out to the console. Compare script mode vs interactive mode. Know how to store a value into a variable. Printing & Variables 1 1.03
1.04: Variables Input Define and identify: comments, storing, mutability, variable assignment, input. Assign and swap variables. Store user input into a variable. Magic Genie 1 1.04
1.05: Quiz & Debugging Demonstrate their understanding of key concepts covered up to this point. Define and identify: debugging, syntax errors. Analyze and respond to error messages. N/A 1 1.05
1.06: Project Apply basic Python knowledge about inputs/outputs. Practice good debugging skills. Unit Project 2 1.06

Unit 2 Map - Data Types and Conditionals

Lesson Objectives Lab Days Slide Deck
2.01: Data Types & Casting Define and identify: type, string, casting, floating point number (float), integer. Describe different representations of data in Python. Convert from one data type to another data type. Casting 1 2.01
2.02: Booleans & Expressions Define and identify: Boolean, expression, composition, True, False. Evaluate a Boolean expression. Compose Boolean expressions using and, or, not, <, >, and ==. Can I or Can't I? 1 2.02
2.03: Conditionals Define and identify: if, else, elif, conditionals, flow of control. Create chaining if statements. Understand how conditional statements alter the flow of control of a program. Triangle 1 2.03
2.04: Lists Define and identify: list, item, index, integer. Be able to access items from a list using the index. Create lists of different types. Use the length function. College Chooser 1 2.04
2.05: Lists 2 Define and identify: slice, append, pop, remove. Slice a list. Add and remove elements from a list Tic-Tac-Toe 1 2.05
2.06: Game Loop Define and identify: while loop. Use a while loop to simulate game play. Tic-Tac-Toe Revisited 1 2.06
2.07: Project Use knowledge of lists, Booleans, conditionals, and while loops. Unit Project 9 2.07

Unit 3 Map - Functions

Lesson Objectives Lab Days Slide Deck
3.01: Built In Functions Define and identify: function, arguments, calling, importing, returning. Call the built-in randint function, using arguments. Utilize code other people have written in the Python documentation. Understand the difference between printing and returning. Magic 8-Ball 1 3.01
3.02: User-Defined Functions Define and identify: abstraction, def. Create functions. Birthday Song & Random Cards 2 3.02
3.03: Return vs Print Define and identify: return, none, void. Explain and demonstrate the difference between printing and returning. War (Card Game) 1 3.03
3.04: Debugging and Scope Define and identify: scope, aliasing, stack trace. Understand that changing a list in a function updates the list outside of the function. Understand that updating variables in a function does not affect the variable outside of the function. Understand global variables. Draw a simple stack trace. Aliasing & Scope 1 3.04
3.05: Project Use project planning skills to complete a longer-term project. Create functions to organize a project. Apply skills learned in units 1-3 to create a functioning program. Oregon Trail 9 3.05

Unit 4 Map - Nested Loops and Lists

Lesson Objectives Lab Days Slide Deck
4.01: Looping Basics Define and identify: for loop, item, iteration, scope. Recall looping in Snap! and reapply the concept in Python. Loop through (traverse) the items in a list. Be aware of the scope of variables during iteration. de_vowel 1 4.01
4.02: For Loops Define and identify: range. Use the range and len() function to update lists via for loops. Getting Loopy 1 4.02
4.03: Nested For Loops Define and identify: nested for loops, stack trace. Use nested for loops via a function and a for loop. Use nested for loops via two loops nested. Use a stack trace to understand and demonstrate the flow of nested for loops. Nested For Loops 2 4.03
4.04: Nested Lists & Looping Define and identify: nested list. Use nested for loops to traverse through nested lists. Shopping List 2 4.04
4.05: Debugging and Quiz Read and understand longer programs involving loops. Demonstrate knowledge of looping, lists, and nested loops/lists. Debug programs involving for loops and lists. Debugging Practice 1 4.05
4.06: Project Use project planning skills to complete a larger project. Utilize loops, lists, and nested loops/lists to create a Tic-Tac-Toe game. Unit Project 9 4.06

Unit 5 Map (Optional) - Music Programming

Lesson Objectives Lab Days Slide Deck
5.01: Earsketch Intro Define and identify: Digital Audio Workstation (DAW), sound tab, fitMedia(), setTempo(). Play beats using the above functions. Loop through items in a list. Be aware of the scope of variables during iteration. Intro to EarSketch 1 5.01
5.02: EarSketch Music Define and identify: rhythm, beat, tempo, measures, setEffect(), makeBeat(). Play beats using the functions. Loop through items in a list. Be aware of the scope of variables during iteration. EarSketch Music 1 5.02
5.03: Earsketch Control Flow Define and identify: modulo. Review looping and control structures. Use looping concepts in music making via EarSketch. Use control structures to create music. Earsketch Control Flow 1 5.03
5.04: EarSketch User-Defined Functions Define and identify: abstraction, section, A-B-A form. Create and apply user-defined functions to create songs with complicated form. User-Defined Functions 1 5.04
5.05: Project Create a complete song in EarSketch with multiple parts. Utilize EarSketch's features and functions. Unit Project 5 5.05

Unit 6 Map - Dictionaries

Lesson Objectives Lab Days Slide Deck
6.01: Introduction to Dictionaries Define and identify: dictionary, key, value. Create dictionaries of key-value pairs. Access and update items from dictionaries. Dictionaries 1 6.01
6.02: Dictionaries Methods Define and identify: pop, default value. Update values in a dictionary. Add values to a dictionary. Remove values from a dictionary. Word Counter 1 6.02
6.03: Dictionaries of Lists Create dictionaries with keys and values of different types. Update, append, or remove list values in a dictionary. Dictionaries Storing Lists 1 6.03
6.04: Dictionaries Looping Use loops to traverse through key/value pairs in a dictionary Dictionaries Looping 1 6.04
6.05: Project Use dictionaries to create the game Guess Who Unit Project 7 6.05

Unit 7 Map - Introduction to Object Oriented Programming

Lesson Objectives Lab Days Slide Deck
7.01: User-Defined Types Define and identify: class, instance, object, attributes. Create a class and instantiate. attributes to an instance. Manipulate instances and attributes through a function. Create a Color Class 1 7.01
7.02: User-Defined Types, Part 2 Define and identify: self, __init__. Create a class with an __init__ method. Understand and use the self argument. Instantiate a class with arguments. Pet Class 1 7.02
7.03: Methods Define and identify: method, __str__, __add__, operator overloading. Create a class with an __init__ method. Understand and use the self argument. Instantiate a class with an argument. Kangaroo Class 1 7.03
7.04: Inheritance Define and identify: inheritance, parent class, child class. Create a class that inherits from anther class. Overwrite methods of parent class in a child class. Pokemon Child Classes 1 7.04
7.05: Project Engage in class design before beginning coding. Apply what was learned with respect to classes, methods, and inheritance. Unit Project 7 7.05

Unit 8 Map - Final Project

Lesson Objectives Lab Days
8.01: Final Project Brainstorming and Evaluating Recall project planning basics from last semester. Identify factors to use when choosing between project ideas. Rank a group of proposed project ideas using the identified factors. N/A 1
8.02: Defining Requirements Define key scenarios for a project and the features required to implement each scenario. Explain the importance of wire-framing when designing an application. N/A 1
8.03: Building a Plan Identify the main components of a functional project specification and explain the purpose of each section. Develop a project idea into a full, detailed specification. N/A 1
8.04: Project Implementation Use 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. N/A 15

Supplemental Culture Day Lessons

Lesson Objectives Lab
01: Binary Day Define and identify: binary. Describe different representations of data. Represent decimal numbers in binary. N/A
02: Financial Calculator Design, plan, and implement a medium to large scale final project involving financial literacy. N/A