Skip to content

Latest commit

 

History

History
170 lines (151 loc) · 6.48 KB

File metadata and controls

170 lines (151 loc) · 6.48 KB
title Introduction to Computational Thinking and Problem Solving Using Python - Learning Objectives
permalink /lo/weekly
key lo-weekly
layout article
nav_key Learning Objectives
license false
aside
toc
true
show_edit_on_github false
show_date false

Lesson 0: Computational Thinking and Problem Solving

By the end of this lesson, students should be able to:

  • State the various components of computational thinking, i.e. decomposition, abstraction, pattern recognition and algorithms
  • identify the various skills needed in computing and specifically in programming
  • state the PCDIT framework for problem solving
  • state the difference between novice and expert programmers in solving problems
  • explain the need for identifying patterns in problem solving

Lesson 1: Code Execution and Basic Data Types

By the end of this lesson, students should be able to:

  • explain how Python code is executed in sequence
  • create and use a variable
  • create basic data types such as integer, float and string
  • display basic data types using print function
  • explain the assignment operator
  • draw the environment diagram after assignment
  • check data type of a literal or variable
  • identify input and output data type of a problem

Lesson 2: Function, the First Abstraction

By the end of this lesson, students should be able to:

  • call built-in math functions
  • explain the purpose of creating a user-defined function
  • define a function with and without arguments
  • define a function with and without return values
  • define a function with multiple arguments
  • create a tuple
  • define a function that returns a tuple
  • access an element of a tuple
  • define a function with optional or keyword arguments
  • specify data types in arguments and return value
  • explain the difference between local and global variables
  • choose whether to use local or global variables
  • abstract a problem as a function
  • identify input, output and process of a function use print function to debug a function

Lesson 3: Basic Operators and Basic Control Structures

By the end of this lesson, students should be able to:

  • use basic operators with basic data types
  • predict the evaluated data types from an expression
  • evaluate math expression with various precedence
  • use compound operators
  • state the three basic control structures, i.e. sequential, branch and iteration
  • identify basic structures from a given problem
  • state the Python keywords to be used for each basic control structures
  • draw flow chart for sequential, branch and iterative structure
  • Derive concrete cases given a problem statement
  • Derive design of algorithm steps from some concrete cases

Lesson 4: Boolean Data Type and Branch Structure

By the end of this lesson, students should be able to:

  • create a boolean data type
  • convert a variable into a boolean data type
  • evaluate relational and logical operators
  • specify the precedence of relational and logical operators
  • implement branch structure using if-else statement
  • implement branch structure using if-elif-else statement
  • draw a flow chart for if-else and nested if-else
  • explain the difference between if-elif and if-if codes
  • use assert to create a test
  • identify branch structure in a problem
  • decompose a problem into multiple selections
  • abstract selection process as a function

Lesson 5: String

By the end of this lesson, students should be able to:

  • create string using various methods
  • create multi-line string
  • use basic operations on string data type
  • obtain the length of a string
  • obtain a character of a string using the index
  • create a new substring from a string using slice operator
  • explain that string is immutable
  • check if a substring is in a string
  • Use formatted string literal to display formatted string with data

Lesson 6: Iteration using While Loop and For Loop

By the end of this lesson, students should be able to: traverse an iterable using for-loop

  • enumerating a collection data to get the element and the index
  • use range function to create an iterable
  • traverse an iterable using its index
  • use print to debug while loop and for-loop code
  • identify iteration structure from a given problem
  • decompose problem into iterative process of smaller problems
  • implement simple iteration using while loop
  • speciy and identify basic building blocks of a while loop statement
  • traverse a string using while loop and counter
  • traverse a string with sentinel value
  • use a break statement to terminate a loop

Lesson 7: List and Tuple

By the end of this lesson, students should be able to:

  • create a tuple
  • explain what it means that tuple is immutable
  • access an element in a tuple using index
  • get the length of a tuple
  • check if an item is an element in a tuple
  • traverse a tuple
  • create a list using square bracket operator
  • access an element in a list using index
  • get the length of a list
  • check if an item is an element in a list
  • concatenate a list
  • obtain a sublist from a list using the slice operator
  • modify an element in a list
  • remove an element in a list
  • find the position of an element in a list
  • create an alias of a list
  • clone a list into a new list
  • add an element into a list
  • pass a list as function arguments
  • explain the effect of aliasing for list data type
  • create list comprehension
  • traverse a list using while loop and for-loop
  • draw environment diagram of a list
  • use print to display elements of a list
  • identify when list or tuple is appropriate in a problem

Lesson 8: Nested List and Nested For Loop

By the end of this lesson, students should be able to:

  • create a nested list
  • access elements in a nested list
  • traverse a nested list using both while loop and for-loop
  • draw environment diagram of a nested list
  • explain the effect of aliasing of a nested list
  • explain the difference between shallow copy and deep copy
  • use print to debug nested loop
  • identify nested loop structure in a given problem
  • decompose nested loop problem into multiple loops

Lesson 9: Dictionary and Set

By the end of this lesson, students should be able to:

  • create a dictionary as key-value pairs
  • access the value using the key
  • add key-value pair into a dictionary
  • use dictionary to implement branch structure
  • remove a key-value pair from a dictionary
  • check if a key is in a dictionary
  • check if a value is in a dictionary
  • traverse a dictionary
  • compare dictionary with a list
  • create a set
  • use basic set operations
  • add item into a set
  • compare set and dictionary
  • identify when dictionary or set is appropriate in a problem