Designing Technology Solutions (MD Tech credit)

Designing Technology Solutions

In this course, students are introduced to engineering design and development through software engineering and robotics technology.  Students will explore and develop an understanding of technological issues and their influence on society.  Through hands-on laboratory experiences, students will complete individual and collaborative projects that enable them to demonstrate understanding of design processes, identify and define problems, and realize design solutions.  Students will integrate a foundation in software engineering and robotics to develop solutions within the following technological contexts: medical, agricultural/biotech., energy and power, information and communication, transportation, manufacturing, and construction technologies. This course satisfies the MD technology credit for high school graduation.

Download the course flyer

View and download the units:


CS Principles: Computation in Action

CS Principles: Computation in Action

CS Principles: Computation in Action engages students in socially-relevant, project-based learning activities designed to foster computational thinking within the Big Ideas and Concepts of the AP CS Principles course: Creativity, Abstraction, Data, Algorithms, Programming, Internet, and Impact. Students will put the principles of CS into action by creating interdisciplinary computational artifacts that combine CS with music, art, literature, and science (life, physical, and social). AP CS Principles promises exciting opportunities for CS educators and students for broadening participation with up-to-date technologies and relevant content. Invigorate your school’s CS program with the CS Principles: Computation in Action curriculum. This curriculum package includes lesson plans, activities, assessments, and projects with solutions. This package contains sample lessons written for a CSTA/Microsoft project and do not represent a full, year-long curriculum. They were written using a pre-release version of the AP CS Principles framework.

Read the overview: CS Principles – Computation in Action

Download and use the CS Principles Lesson Writing Guide

See the standards: Standards in the Preview Lessons

Download the units:


XNA Game Studio Video Tutorials

Watch this series of 14 video tutorials directly based on Rob Miles’ Learn Programming Now with XNA Game Studio. See other curriculum resources in the sections below.


Game Development with XNA: Semester 1

Revitalize your Computer Science program with game programming.
Game Development with XNA: Semester 1 is an exciting and engaging computer science semester course that allows students to apply their foundational programming skills to game and simulation development using C# and the XNA framework. Teaching resources and C#/XNA Game Studio software are free.

C# is a modern and professional object-oriented programming language which when combined with the Microsoft XNA framework creates the XNA Game Studio – a professional game development environment for Xbox 360, Kinect, and Windows Phone development.  Students will:

  • Explore game and simulation development as communication and art,
  • Apply knowledge of variables, conditionals, loops, Object-Oriented programming, recursion, and data structures to game creation.

The free curriculum package includes a Teacher Roadmap, semester curriculum framework, daily lesson plans, demonstration projects, 14 video tutorials, 22 lab assignments and solutions, student activities, and assessment tools with keys and exemplars.

Download the XNA Semester 1Teacher Roadmap.  Please read it before starting the curriculum.

Download the curriculum here.


Game Development with Advanced XNA, 6-week curriculum

The Advanced XNA Development Module guides students through the creation of an object-oriented game. Along the way, they learn how to apply inheritance and polymorphism within a game context. These topics align with the Advanced Placement Computer Science exam. The module contains four units:

  • Unit 1 : Students will create an object-oriented video game, which will be used as the basis for further study of object-oriented (OOP) concepts like inheritance and polymorphism in subsequent units.
  • Unit 2: Students will advance from creating game components as structures to coding them as classes. Students will learn the difference between structures and classes, and managing data by value and reference.
  • Unit 3: Students will learn to code an inheritance relationship between two classes, by placing their common code into a superclass and extending it as subclasses. They will override methods using an inheritance relationship to specialize the behaviors in the subclasses.
  • Unit 4: Students will apply their knowledge of OOP to create of a game based upon a social cause. They will work in collaborative teams as designers, programmers, artists, and managers to design, develop, test, and refine their game.

Download the Teacher Roadmap.  Please read it before starting the curriculum.

Download the entire curriculum or grab it in parts:

Unit 1: Object Oriented Games - Using Structures


  1. Represent a game component’s properties and behaviors as an object, by coding a structure.
  2. Encapsulate the data and methods related to an object as a structure to increase its level of cohesion.
  3. Define objects as structures so that they can be reused.
  4. Given an incomplete program, code a structure to fulfill the requirements of the missing component.
  5. Organize object interaction

Download Unit 1.

Unit 2: From Structures to Classes


  1. Compare and contrast structures and classes.
  2. Contrast managing data by value versus reference.
  3. Describe how garbage collection manages memory.
  4. Translate a structure into a class that exists as a separate C# file.
  5. Construct objects of game classes and call on their methods.
  6. Given two objects, write methods to allow the classes to interact with one another according to set specifications.

Download Unit 2.

Unit 3: Inheritance and Polymorphism


  1. Given similar classes, create an inheritance hierarchy by extending a base class to create specialized subclasses.
  2. Override methods to specialize behaviors in subclasses.
  3. Partially override methods using the base keyword to reuse code and augment it with additional functionality.

Download Unit 3.

Unit 4: Summative Project Experience: Imagine Cup


  1. Design a game that is related to a social issue.
  2. Use a game design document to organize and structure a game design.
  3. Use Object-Oriented Programming concepts and skills to code a game as an example of:
    • objects and classes
    • encapsulation
    • cohesion
    • coupling
    • inheritance
    • overriding and partial overriding
  4. Test and revise a game based on user feedback.

Download Unit 4.


Kodu Game Lab Math Module (4th and 5th graders)


  • Students will examine how to use Kodu Game Lab to create simulations and games that explore mathematical problems and examine relationships among data.
  • The Kodu programming environment provides an age-appropriate user interface to create and program objects within a 3D world.
  • In addition to studying algebraic and geometric concepts, students will learn core concepts in programming and game design, such as conditional execution of statements and object-oriented programming.
  • This elementary school grade curriculum is  aligned to the National Council of Teachers of Mathematics (NCTM) Principles and Standards for School Mathematics.

Download the curriculum and Kodu files here.

Download Kodu Game Lab here.

Follow me on Twitter