Create hands-on, meaningful, and relevant projects where students produce artifacts that require rigorous CS content-knowledge and software engineering skills.

Like 
Goal:
  • Assign activities that make students proud of their work; assignments that produce artifacts that connect to the real-world.
Reason:
  • Demonstrating skills they learn through meaningful projects increases confidence.
  • Current and relevant lessons increase the likeliness of student engagement.
  • Big picture CS reasoning skills are crucial for everyone because CS pervades every industry.
Action:
  • Design structured projects or thematic assignments that build off of student interest (games, movies, music, etc.). These allow students to express themselves while working on tough problems.
    • Require students to plan, build, test (often with peer feedback), and reflect on the projects they create.
  • Include big picture professional skills into the objectives of all your CS courses so there is a framework for connecting class work to CS/Software engineering industry work.
    • Important big picture professionals skills include: 1) Project Management & General Engineering Practice, 2) Professional Behavior, 3) Computational (Algorithmic) Thinking, 4) Problem Solving, and 5) Role of Computers in Society

Example of a big picture professional skill, Computational (Algorithmic) Thinking, lesson from the Academy for Software Engineering in New York:

  • The following is a decomposition of conditionals (if statements) into three distinct learning objectives.
    • Each of the three outcomes below are measured separately by assessments (both formative and summative), and help teachers identify specific weaknesses in a student’s thinking and habits in order to provide ongoing individualized support.
      • 1. Predict the output of a program by tracing through non-nested (and possibly single nested) conditionals.
      • 2. Identify the conditionals necessary to implement a program (in natural language).
      • 3. Provide the conditionals (in natural language) necessary to implement a program, construct the code to implement the program.
  • This careful decomposition of objectives is an important part of addressing Computer Science as it applies to all students in the NY Academy for Software Engineering.