Skip to main content

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)

5 topics

Learn to design functions with proper type annotations, docstrings, and test cases using Pyret's function design pattern.

Topics covered:
Type annotationsFunction designDocstringsTest casesExamples and where clauses

Skill 2: Construct/Transform Tables (Pyret)

6 topics

Master table operations including creation, filtering, sorting, and transforming data using Pyret's table functions.

Topics covered:
Table creationload-tablefilter-withorder-bybuild-columntransform-column

Skill 3: Iteration with Lists (Pyret)

4 topics

Learn to use for-each loops and mutable variables to process lists element by element in Pyret.

Topics covered:
Mutable variables (var)for each loopsList iterationAccumulation patterns

Skill 4: Structured & Conditional Data (Pyret)

5 topics

Define and work with custom data types using data definitions and cases expressions in Pyret.

Topics covered:
data definitionscases expressionsStructured dataConditional dataVariants

Skill 5: Recursion with Lists (Pyret)

5 topics

Implement recursive functions over lists using the base case and recursive case pattern in Pyret.

Topics covered:
Recursive functionsList structureBase casesRecursive casesList processing

Skill 6: Recursion with Trees (Pyret)

4 topics

Design tree data structures and implement recursive tree traversal algorithms in Pyret.

Topics covered:
Tree data structuresRecursive traversalBinary treesN-ary trees

Skill 7: Variable Scope (Pyret & Python)

5 topics

Understand variable scoping rules, global vs local variables, and scope differences between Pyret and Python.

Topics covered:
Variable scopeGlobal variablesLocal variablesFunction scopeScope resolution

Skill 8: Basic Function Design (Python)

5 topics

Design Python functions with type hints, docstrings, and proper testing practices.

Topics covered:
Python functionsType hintsDocstringsTestingFunction signatures

Skill 9: Iteration with Lists (Python)

3 topics

Learn Python's for loops and iteration patterns for processing lists.

Topics covered:
Python loopsIteration patternsLocal variables

Skill 10: Aliasing & Mutation (Python)

5 topics

Understand Python's object references, aliasing effects, and how mutation works with shared data.

Topics covered:
Object referencesAliasingMutationShared dataVariable assignment vs modification

Skill 11: Identifying Privacy Issues in Problem Formulation

5 topics

Learn to identify privacy concerns and develop appropriate mitigation strategies in computational problem-solving contexts.

Topics covered:
Privacy analysisData protectionPrivacy threatsMitigation strategiesEthical computing

Skill 12: Identifying Stakeholders in Problem Formulation

5 topics

Learn to identify stakeholders and analyze conflicts between their values and interests in computational problem-solving contexts.

Topics covered:
Stakeholder analysisValue-sensitive designStakeholder matrixValues conflictsEthical computing