Coding 1

R.4 Lists Review

  • Recall operations that can be used with lists
  • Identify which operations modify values within a list
  • Identify which operations add or remove elements from a list
  • Recall important properties of lists
  • Compare and contrast strings, as a collection of characters, with lists
  • Recall operations that can be used with strings
  • Describe how an escape sequence can be used to display a special characters or whitespace
  • Identify which elements of an existing collection will be selected by a slice operation

R.5 Data Structures review

  • Recall operations that can be used with tuples
  • Predict which values will be assigned to each variable when unpacking a tuple
  • Recall operations that can be used with dictionaries
  • Identify which data types a collection can be typecast to or from
  • Given a set of data, choose which collection type would be most appropriate for storing it
  • Determine which nested collections would best model a given set of data
  • Describe how sequential bracket notation is used to reference data in a nested collection
  • Explain how information can be requested from a server using HTTP
  • Recall common requirements and errors associated with web APIs

R.6 User-Defined Functions Review

  • Differentiate between a function definition and a function call
  • Predict the initial value of function parameters when a function is called
  • Differentiate between function parameters that do and do not have default values
  • Identify function parameters that can be assigned a collection of zero or more arguments
  • Differentiate between local scope and global scope
  • Differentiate between modifying a value and re-assigning a reference
  • Recall common side effects a function may have Create and call user-defined functions
  • Use a user-defined function as or within an expression
  • Create and call functions with parameters that have default values
  • Create and call functions with a parameter that collects variable-length arguments
  • Call functions with arguments in non-positional order by referencing parameter names
  • Correct scope errors when accessing a variable or parameter

7.1 Reading Files

  • Differentiate between a computer’s long-term storage and short-term memory
  • Explain how file contents are loaded into a program’s memory
  • Differentiate between common text file formats
  • Explain how Python keeps track of the position of an opened file while reading text from it
  • Identify which symbols in a string will be removed by the strip method

7.2 Writing Files

  • Identify “read” as the default mode for opening a file when no mode is specified
  • Describe the effects of different modes when opening a file
  • Give examples of problems solved by storing data in a file
  • List the available keyword arguments for the print() function
  • List the benefits of printing multiple values at once using comma-separated notation

7.3: Structured Data

  • List the benefits of using structured text files to store information
  • Identify the appropriate csv reader or writer to use in a given situation
  • Explain why serialization and deserialization is necessary to transfer a program’s data to and from computer storage as structured text
  • Describe the process of serializing and deserializing Python data to and from structured text
  • Describe the differences between CSV and JSON text files

7.4: Media Files

  • Describe characteristics of sound instances
  • Differentiate between pausing and stopping a sound instances

8.1: File Systems

  • Describe how a file system defines the location of files and directories
  • Identify symbols used to describe file paths
  • Describe how file permissions affect the available actions on a file or directory Access the file system within a program
  • Modify the file system within a program
  • Modify the file system using a graphical interface
  • Organize the files of a Python app logically using directories

8.2: User-Defined Modules

  • Describe the benefits of organizing code into modules and packages
  • Identify the intended main file of a project
  • Describe how importing a module impacts the current namespace
  • Describe how Python searches for modules when importing them
  • Describe the relationship between modules and packages

8.3: Exceptions

  • Explain the benefits of handling exceptions raised in a program
  • Explain the difference between using else and finally clauses in a try-except block
  • Identify exceptions in Python
  • Discuss when it is appropriate to raise an exception
  • Identify that exceptions are instances with their own attributes

8.4: Comprehensions

  • Describe how list comprehensions can be used in place of multiple lines of equivalent code
  • Identify whether using a list comprehension or a
  • for loop would make code more readable in a given situation

CS204: Coding in Python 4

Course Description
This course completes the in-depth journey with coding in Python from CS203. During the
course, students will master object-oriented programming concepts through the use of
classes and domain-driven design. Students will also explore several different possible
future paths for study and careers in computer science including web development, data
science, and cybersecurity.
In addition, students will research the effects of technology on society and investigate
how to build software with a goal of solving social problems. Throughout the course,
students will continuously demonstrate their knowledge through traditional assessments
and expand their professional project portfolio with a capstone coding project. Upon
completion, students will be prepared to step into a variety of coding fields as an
entry-level Python programmer.

Unit 9: Object OrientationUnit 10: Careers in Python Unit 11: Capstone Project
Lesson 9.1
User-Defined Classes
Lesson 9.2
Customizing Classes
Unit 9 Quiz
Research Project
Effects of Technology
Lesson 9.3
Composition
Lesson 9.4
Inheritance
Lesson 9.5
Domain-Driven Design
Unit 9 Test
Unit 9 Project
Lesson 10.1
Survey of Data Science
Lesson 10.2
Survey of Web Development
Lesson 10.3
Survey of Cybersecurity
Research Project
Solving Social Problems
Industry Skill
Phase 11.1
Envision
Phase 11.2
Design
Phase 11.3
Build
Phase 11.4
Test
Phase 11.5
Present
Phase 11.6
Reflect

9.1: User-Defined Classes

  • Describe how a class can be used to model a real-world object
  • Describe the components of a class
  • Describe the relationship between a class and its instances
  • Identify the syntax used to define and initialize a new class

9.2: Customizing Classes

  • Give examples of magic methods in Python classes
  • Give examples of how magic methods indirectly affect other built-in Python functionality
  • Describe the uses of properties

9.3: Composition

  • Explain the benefits of composition
  • Differentiate between a composite instance and a non-composite instance
  • Describe the “has-a” relationship between a composite instance one of its composed instances

9.4: Inheritance

  • Explain the benefits of inheritance
  • Identify the superclass of a subclass
  • Model how attributes and methods are inherited from a superclass by a subclass
  • Describe the “is-a” relationship between a subclass and a superclass
  • Differentiate between superclasses

9.5: Domain-Driven Design

  • Explain the benefits of domain-driven design
  • Group traits and tasks by the context of their domain
  • Define classes that model the contexts of a domain

10.1: Survey in Data Science

  • Describe the field of data science
  • Identify careers in data science
  • List the skills, both coding and non-coding, needed to succeed in the field of data science
  • Compare and contrast data visualizations
  • List uses of data science in the real world,
  • including supporting scientific endeavors and swaying public opinion

10.2: Survey of Web Development

  • Describe the field of web development
  • Identify careers in web development
  • List the skills, both coding and non-coding, needed to succeed in the field of web development
  • Model the transmission and storage of information on the web, identifying the parts that a Python web developer has control over

10.3: Survey of Cybersecurity

  • Describe the field of cybersecurity
  • Identify careers in cybersecurity
  • List the skills, both coding and non-coding, needed to succeed in the field of cybersecurity
  • List different forms of cryptography and compare their relative security
  • List common real-world examples of cybersecurity and identify their strengths and weaknesses
  • Discuss real-world issues of digital privacy

11.1: Envision

  • Brainstorm ideas and present the result as a list of detailed features
  • Choose a project of reasonable scope for given time-frame
  • Design modularly to allow for low-priority features to be dropped

11.2: Design

  • Break a given program / problem down into smaller features / sub-problems
  • Propose a code outline for a large-scale project
  • Create a project schedule based on deadline and milestone requirements

11.3: Build

  • Divide a project into multiple releases or versions
  • Create a kanban board that tracks tasks in a large project
  • Create a large-scale project comprised of multiple code files

11.4: Test

  • Review code with other students
  • Revise code based on code reviews
  • Demonstrate how to run an appropriate process for gathering user feedback
  • Revise a program’s code based on user feedback

11.5: Present

  • Create a meaningful presentation of a program, explaining points of interest
  • Present clearly and confidently

11.6: Reflect

  • Present failures as well as successes as a normal part of a retrospective
  • Propose improvements to code or processes for future iterations
  • Demonstrate respect for team members and classmates