Skills Reference
Comprehensive teaching guides for each programming skill covered in CS2000. Each guide includes what to teach, common student mistakes, and practical examples.
Skill 1: Designing Basic Functions (Pyret)
Learn to design functions with proper type annotations, docstrings, and test cases using Pyret's function design pattern.
Skill 2: Construct/Transform Tables (Pyret)
Master table operations including creation, filtering, sorting, and transforming data using Pyret's table functions.
Skill 3: Iteration with Lists (Pyret)
Learn to use for-each loops and mutable variables to process lists element by element in Pyret.
Skill 4: Structured & Conditional Data (Pyret)
Define and work with custom data types using data definitions and cases expressions in Pyret.
Skill 5: Recursion with Lists (Pyret)
Implement recursive functions over lists using the base case and recursive case pattern in Pyret.
Skill 6: Recursion with Trees (Pyret)
Design tree data structures and implement recursive tree traversal algorithms in Pyret.
Skill 7: Variable Scope (Pyret & Python)
Understand variable scoping rules, global vs local variables, and scope differences between Pyret and Python.
Skill 8: Basic Function Design (Python)
Design Python functions with type hints, docstrings, and proper testing practices.
Skill 9: Iteration with Lists (Python)
Learn Python's for loops and iteration patterns for processing lists.
Skill 10: Aliasing & Mutation (Python)
Understand Python's object references, aliasing effects, and how mutation works with shared data.
Skill 11: Identifying Privacy Issues in Problem Formulation
Learn to identify privacy concerns and develop appropriate mitigation strategies in computational problem-solving contexts.
Skill 12: Identifying Stakeholders in Problem Formulation
Learn to identify stakeholders and analyze conflicts between their values and interests in computational problem-solving contexts.