CS 20: Introduction to Creative Computing
Chapter 1: Algorithms and Abstraction
After studying this chapter, a student should be able to:
describe what an algorithm is
provide examples of algorithms
distinguish between actions and control statements in algorithms
identify appropriate algorithms for humans versus computers
distinguish between problems and algorithms
define abstraction, refinement, and encapsulations
write algorithms at different levels of abstraction
describe how input and output relate to encapsulation
employ encapsulation to breakdown algorithms written in pseudocode
1.1 Algorithms
1.2 An Algorithm in Detail
1.3 Actions in Algorithms
1.4 Control Flow of Algorithms
1.5 Methods of Writing Algorithms
Assignment: Creating Pseudocode
1.6 Problems vs. Algorithms
1.7 Abstraction
1.8 Refinement
Assignment: Refining Pseudocode
1.9 Encapsulation
Encapsulating Pseudocode
1.10 Input and Output
Assignment: Determine the Inputs and Outputs
Discussion: Inputs and Outputs
1.11 Why Abstraction is Important
Key Terms
Comprehension Questions
Chapter 2: Visual Output in Processing
Chapter 3: Functions
Chapter 4: Colour in Processing
Chapter 5: Interaction and Events
Chapter 6: Data and Data Types
After studying this chapter, a student should be able to:
distinguish between atomic data and compound data
describe what a data type is
describe what a literal value is in Python
give examples of literal values corresponding to integer, floating-point, and string data
use the print syntax to display literal values on the console
6.1 Data
6.1.1 Atomic Data
6.1.2 Compound Data
6.1.3 Data Types
6.2 Literals
6.2.1 Strings
6.2.2 Concatenation
Key Terms
Practice Questions
Comprehension Questions
Chapter 7: Variables and Expressions
After studying this chapter, a student should be able to:
describe what a variable is
explain the naming rules for variables
describe what an expression is in Python
list the basic arithmetic operators in Python
compose valid arithmetic expressions in Python using operators and literals
compose valid expressions in Python using variables
use the print syntax to display literal values and the values of variables on the console
use Processing event handling to save user actions to a variable
7.1 Variables
7.1.1 Variable Names
7.1.2 Variable Assignment
7.1.3 Using Variables to Print
7.1.4 Avoiding Name Errors
7.2 Expressions
7.2.1 Literals as Expressions
7.2.2 Variables as Expressions
7.2.3 Operators
7.2.4 Using Numbers and Operators
7.2.5 Concatenation of Numbers and Strings
7.3 Using Variables in Functions
7.3.1 Handling User Input using Variables
Practice Questions
Key Terms
Assignment: Equations in Functions
Assignment: Resizable Image
Comprehension Questions
Chapter 8: User Input
After studying this chapter, a student should be able to:
describe how to save user input
author programs that accept user input in the form of string, integers, or floats
print out user input as a string
8.1 Input in Python
Practice Question
Chapter 9: The Python Style Guide
After studying this chapter, a student should be able to:
format code according to PEP8
choose appropraite names for variable, functions, and constants
use vertical and horizontal whitespace to improve readability
avoid lines of code that are too long
indent code using spaces
use appropriate comments for lines of code and functions
9.0 Python Style Guide: PEP8 Introduction
9.1 Naming Conventions
9.1.1 Naming Styles
9.1.2 How to Choose Names
9.2 Code Layout
9.3 Maximum Line Length and Line Breaking
9.4 Indentation
9.5 Comments
9.5.1 Block Comments
9.5.2 Inline Comments
9.5.3 Document Strings
9.6 Whitespace in Expressions and Statements
9.6.1 Trailing Whitespace
9.7 When to Ignore PEP8
Chapter 10: Functions with Outputs
After studying this chapter, a student should be able to:
describe the role of a function’s return value
compose functions in Python that perform a subtask and return the result
explain the role and behaviour of the return statement
save the result of a function call to a variable
use functions with return values in expressions
trace program behaviour in and out of nested function calls
10.1 Functions That Compute Values
10.1.1 The Return Keyword
Practice Questions
10.1.2 Functions with Parameters
Practice Questions
10.1.3 Return Statements Versus System Feedback
10.2 Functions as Expressions: Obtaining/Using a Function’s Return Valu e
10.2.1 More Built-In Python Functions
Practice Questions
10.3 Nested Function Calls
Key Terms
Comprehension Questions
Practice Question
Chapter 11: Conditional Branching
After studying this chapter, a student should be able to:
identify and define the behavious of relationals operators, logical operators, and Boolean expressions in Python
identify and author correct Python language syntax for branching statements: if, if-else, if-elif-else, and chained statements
design and author Python programs that use if, if-else, and chained-if statements
11.0 Conditional Branching
11.1 Conditions
11.1.1 Relational Operators
11.1.2 Logical Operators
Practice Questions
11.2 Branching and Conditional Statements
Key Terms
Comprehension Questions
Assignment: Changing Image
Chapter 12: Repetition
Chapter 13: Nesting Programming Constructs
After studying this chapter, a student should be able to:
trace behaviour for programs using nested if-statements
trace behaviour for programs using nested loops
trace behaviour for programs using nested loops and if-statements combined
author Python code using nested if-statements, loops, and combinations thereof
13.0 Nesting Programming Constructs
13.1 Nesting If-Statements
13.2 Nesting Loops
13.3 Nesting If-Statements and Loops
13.4 Multiple Layers of Nesting
13.5 Example of Nesting in Processing
Key Terms
Comprehension Question
Assignment: Repeating Pattern
Assignment: Choose Your Own Adventure
Chapter 14: Data Structures
After studying this chapter, a student should be able to:
identify a list, tuple, and dictionary in code
print lists, tuples, and dictionaries
print items from lists, tuples, and dictionaries
change, add, and delete values in a dictionary
14.0 Compound Data Review
14.1 Examples of Dictionaries in Python
14.2 Examples of Lists in Python
14.3 Examples of Tuples in Python
14.4 Printing Lists and List Items
Practice Questions
14.5 Printing Tuples and Tuple Items
14.6 Printing Dictionaries and Dictionary Items
Practice Questions
14.7 Changing, Adding and Removing Elements from a Dictionary
Practice Questions
Key Terms
Chapter 15: Computers and Society
After studying this chapter, a student will:
explore the underlying technology of computing devices and the internet, and their impacts on society.
investigate the impacts of information technologies on privacy, including digital security practices.
15.1 How Computers Work
15.2 How AI Works
15.3 How the Internet Works
15.4 Internet Privacy
15.5 Machine Learning
Chapter 16: Career Exploration
After studying this chapter, a student will:
Explore computer science related career paths in Saskatchewan, Canada and the world.
Assignment: Careers in Computer Science Poster
Final Project
Credits
Eramian M, Chan B, Long J, Horsch M. Introduction to Creative Computing. 1st ed. Saskatoon, SK: University of Saskatchewan: Department of Computer Science, 2016.
Finer, Jasmine. “How to Write Beautiful Python Code With PEP 8.” Real Python, Real Python, 7 Nov. 2020, realpython.com/python-pep8/.
Matthes, Eric. Python Crash Course. 2nd ed. No Starch Press, May 2019.
“Python IF, ELSE, ELIF, Nested IF & Switch Case Statement.” Meet Guru99 - Free Training Tutorials & Video for IT Courses, www.guru99.com/if-loop-python-conditionalstructures.html.
Created by Janice Cotcher. This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License .