11 Design

MYP Year 5 Digital Design, a preparation for DP Computer Science

11 Design Mascot 2

Inquiry

Statement of inquiry for unit 1:
Software development is an iterative process that allows one to express functionally innovative solutions to existing problems.

Statement of inquiry for unit 2:
Digital technologies are in a state of constant innovation, allowing new functionality for software development.

Key concept:
Development

Related concepts:
Function, innovation

Global context:
Personal & cultural expression

I have some expectations for how students approach this course, please be familar with them. Please also ensure you are familiar with the Design Departments classroom code and corridor code

Design Journal requirements

I expect Year 11 students to have a sound understanding of each of the criteria and strands of the Design cycle. If you are new to MYP please identify yourself to me in the first week so we can discuss the implications.

While I have a template for design folios available, by Year 11 you should (ideally) be creating your own according to your own tasks. So, with that in mind, you have complete autonomy over the style of presentation: you can make it with slides, videos, an e-folio website or other creative idea. Just be careful that you still thoroughly address everything the assessment criteria is looking for.

I will share through Google Classroom an individual "Design Journal" document with header links for each of the various strands. This is where you should post your assessable content as the semester progresses. If you get creative and use slides/videos/websites etc, then links to those should be placed under the relevant sections of this document so I can still find everything in the one place.

As you complete assessments in your Design Journal, I recommend checking your work against:

Unit 1: Introduction to Python programming

This unit will introduce students to the Python programming language. The first 6 or so weeks will be based on introductory programming skills.

Introduction to programming activities

Project 1

After the October half-term, students will use the design cycle to build their first Python programming project. At this point in the course, you should be adept with console/text based programming and have completed a couple of practice exercises involving file i/o and using web-api. It is expected you will draw upon those skills in devising your first project.

In considering project ideas, plan on having three weeks of class time dedicated for Criterion C. That's 8 hours of in-class time plus whatever out-of-class time you wish to dedicate to the project. That time allowance should a guiding influence as to the expected scope/complexity of your project.

Some ideas to help you find a project:

  • Try reimplementing an existing project. Much as how beginning musicians start by covering songs other people have written, it might be good to start by re-implementing programs others have made
  • Try connecting programming to another hobby. Programming is a very useful skill in that you can apply it to a wide variety of fields, even ones completely unrelated to computer science. For example, if you're interested in politics you could try analyzing voting pools and trends, if you're interested in music you could try writing a digital soundboard, if you're interested in sports you could try writing a fantasy football tracker or predictor... Having interests beyond computer science is useful here.
  • Try connecting programming to anoterh subject. Use your programming skills to create something that could be useful for one of your other subjects, a graph generator for Math or Science, a grammar quiz tool for English or French, or something else. It could be something that is just useful or interesting to you, or perhaps something worth sharing with that subject teacher or your classmates.
  • Try keeping track of things that irritate you. If you find anything in your life that you dislike doing or find repetitive, ask yourself if it's something you could automate. To get a sense of what sorts of things computers can automate, see Automate the Boring Stuff. This guide uses Python, but you can do all of the things it mentions using any programming language. Or, perhaps try googling "home automation tutorial" for more physical solutions.
  • Some places to start for project inspiration may include:

While I am open to the idea of project pairs for Criterion C, I prefer the idea of independent projects and would need to be convinced of the merit of a proposed pairing with detail as to the complexity of the project and the equal allocation of programming tasks between partners.

Notes regarding Criterion A for your project 1 design cycle:

  • We'll use Criterion A's research focus to help you come up with project ideas.
  • A1: In light of the above, for now, skip strand A1 (since you don't have a "problem" to solve yet) and at A2.
  • A2: Identify the questions you want answered from this research process. What questions+answers will help you come up with a good project. Justify the inclusion of each question.
  • A3: Research into project ideas. Prepare brief notes (including citations) on each idea you have looked at.
  • A4: Should be a brief but coherant summary of what you learnt through your research into project ideas, and some recommendations/guidance for moving forward.

In Year 11, you may plan your time as you see fit. The following is a suggested timeline, but if you choose to work at a different pace or do some at home, to free up more time for Criterion C that is entirely your choice.

Date Objectives
Wed 07 Nov A2 (research plan), start A3 (researching)
Fri 10 Nov Finish A3 (researching)
Wed 14 Nov A4 (summary), B1 (success criteria)
Fri 17 Nov B2 (design ideas)
Wed 21 Nov B3 (compare/analyse your ideas)
Fri 23 Nov No class
Wed 28 Nov B4 (final design)
Fri 30 Nov, Wed 05 Dec, Fri 07 Dec, Wed 12 Dec, Fri 14 Dec C2 (programming)
Break Finish programming over break if necessary
Wed 09 Jan C3 (prepare presentations)
Fri 11 Jan C4 (changes made)
Wed 16 Jan D1 (prepare tests), D2 (conduct tests)
Fri 18 Jan D3 (future improvements)

Unit 2: Programming Python with Pygame

This unit will add the Pygame library to your Python programming repertoire.

Pygame programming activities

  • To be released closer to the time

Project 2

With the game development methods that Pygame brings, it is anticipated students will create a graphical project, most likely (though not necessarily) a computer game of some kind for Project 2. Either way, your intention is to showcase all you have learnt over the year with Python.

In considering project ideas, plan on having five weeks of class time dedicated for Criterion C. That's 10 hours of in-class time plus whatever out-of-class time you wish to dedicate to the project. That time allowance should a guiding influence as to the expected scope/complexity of your project.

Criterion A: Investigate

Task A1: Explain the problem

You will find a client who has "a need or problem" that they think can be solved through software. You can use a friend or family member to act as your client. This will form the basis of your research for Criterion A investigation phase.

To adequately address strand A1 you should:

  • Identify a problem
  • Identify for whom it is a problem, ie: your proposed client.
  • Describe your proposed client (or target audience). What is relevant about them to the problem (their likes, lifestyle, demographics etc)
  • Explain why the problem is a problem for the client.
  • Explain why solving the problem is important to the client. What is the impact of the problem being solved or remaining unsolved?

Task A2: Identify your research

Now you have a problem to solve, it's time to do some research into it so your solution can be as meaningful as possible.

To adequately address strand A2 you should:

  • Identify research questions for further investigation. (Don't create questions based on things you already know the answers to!)
  • Prioritise your research questions using some form of scale to indicate those that are crucially important compared to those that are optional/nice-to-have in order to solve your problem.
  • Justify each of your research questions by providing a rational for it's inclusion and the level of priority you assigned.

Task A3: Investigate existing products

Draw inspiration from existing software programs that you have access to or can research properly.

What has someone else made that solves (or attempts to solve, or partially solves) the problem? It could be the same problem or a similar problem. Their solution may work really well, or not at all. The idea is to learn from what others have tried before you.

To adequately address strand A3 you should:

  • Ideally investigate at least 3 existing products for inspiration
  • Identify and discuss the strengths of each product
  • Identify and discuss the weaknesses of each product
  • Identify and discuss what ideas you can take from each product.
  • Include referencing/bibliography for your research

Some videos I think are really interesting and would make great research for your Criterion A:

Task A4: Design brief

To adequately address strand A4 you should:

  • Summarise the problem you are solving from A1 (only a couple of lines).
  • Summarise what you learnt from your research in A3
  • Based on what you have learnt, what guidance/advice would you recommend to any one else attempting to solve the problem you will seek to solve.

Criterion B: Devise ideas

Task B1: Design specification

The design specification is where you generate a list of project success criteria that you will use to judge how successful you have been with the project. Each success criterion should be as specific and measurable as possible. Remember, you will use your success criteria when you complete your project evaluation and reflection, so the more measurable you can make them the better.

To assist you in brainstorming your success criteria, you should use the following categories as headings, and then create criteria for each category.

  • Functionality: What will your program do? How will it behave? Under what conditions?
  • Aesthetics: What will it look like? Sound like? Will there be any movement/animation/colour?
  • Technology: What will the client require to run it?
  • Feasibility: What time constraints, resource constraints, knowledge constraints do you face?

To adequately address strand B1 you should:

  • Be as specific as possible
  • Use technical language where possible
  • Provide a rationale/reasoning to justify the inclusion of each success criteria (ideally refer to what you learnt through the programming lessons and your criterion A research)

Task B2: Design ideas

Create different ideas that might solve the problem.

  • Label all parts so other people can understand your ideas.
  • You can draw screenshots or storyboards or what you anticipate the final solution may look like. You may draw sketches, take photos, or use modelling software if you prefer.
  • If you draw by hand, please be as neat as possible. Use a ruler!

You should design at least 3 different sets of proposals.

If you need blank templates for your Criterion B design sketches, you can use this Criterion B Prototype Sketches Template

Task B3: Design selection

How well do each of your proposed designs satisfy your success criteria from B1?

To adequately address strand B3 you should:

  • Compare each of your B2 proposals against each of your B1 success criteria.
  • With the comparison in mind, which of the proposals best solves the problem and why? Are there any changes you will make to this design to further improve it?
  • Reference your various elements of your B1 success criteria in your justification.

Task B4: Final design proposal

Create a final design that draws on all your thoughts from the previous strands. You should provide enough information that another person could make one identical to the idea in your head. (Alternatively: You could create a screencast video that discusses your design mockups provided you cover all of the points below)

Rather than just being a storyboard of screenshots, this strand will also require you to articulate the logic of how your program will function.

To adequately address strand B4 you should:

  • Label your design diagrams with information pertaining to size, shape, position, color, font, animation/action/behaviour.
  • Identify the tools you will require to create the proposal (software, hardware) and techniques you will use
  • Detail how your product will function. This can either be a flow chart, pseudo code, or a set of bullet points that describes the behaviour of your product at each point. Provide enough detail to fully explain how your product will behave/function.

As a guide, how detailed should your diagram/drawing be? The intent is that you are creating a specific plan/blueprint for your project. This is an example I created for a platformer-style game, take note of the level of (1) detail, (2) accuracy in drawing and measuring out, (3) labelling. This is a diagram that any one could follow in order to create that game.

As a guide, how do you articulate the logic of your program? Here are some example bullet points that would describe product behaviour:

  • The player starts with 10 health (or 3 lives, or 0 points, or….)
  • When the up arrow is pressed: Player will jump for a few moments and gradually descent to land on a platform
  • When the bullet hits the player: The player loses 5 health (or 1 life, or the game ends...)
  • When the player touches a treasure chest: The player gains 50 points (or 10 health, or the game moves to the next level) etc
  • When the colour sensor sees blue: The left wheel will turn at maximum speed, the right wheel will stop.

Criterion C: Create the solution

Task C1: Time and resources plan

Plan how you will create your solution. You can use a table, a gantt-chart, or other suitable method to present your plan.

To adequately address strand C1 you should:

  • Identify the core tasks required to create the solution
  • Identify the critical path.
  • Show how you intend to use all available classtime for Criterion C in a meaningful manner, plus any additional out-of-class time you may anticipate requiring.
  • Use technical language where possible to describe the task
  • Identify resources required for each task (hardware, software, software libraries, manuals)
  • Identify how much time does each step genuinely require?
  • If you are completing this project in pairs or a group, indicate who will be responsible for each task.

Task C2 & C3: Demonstrate technical skills & produce solution

Time to make your program!

Remember:

  • Aim to stick to the schedule you created for yourself in C1.
  • Start by building your program to resemble your designs from B4 but remember you may alter this design if you realise changes are required along the way.

You will be assigned a lesson for demonstrating your completed product.

  • Demo day

In judging the level of technical skills demonstrated for C2, the following factors are considered:

  • Size/scope of project (relative to the time allotted)
  • Complexity of project and the skills demonstrated
  • Variety/range of skills demonstrated. Take a look at an indicative programming skills list that may help as a guide.
  • Degree of assistance/independence shown

The judging the solution produced for C3, following factors are considered:

  • Completeness of project
  • Functionality of project
  • Errors encountered
  • Each success criteria (from B1) is individually and explicitly demonstrated

Task C4: Justify changes

To adequately address task C4 you should:

  • List and explain any changes you made to your final design (from B4) while creating your product
  • List and explain any changes you made to your time and resource plan (from C1) while creating your product

Criterion D: Evaluation

The Criterion D deliverable should take the form of a narrated screen-cast video.

Your video needs to include the following:

  • Task D1: Write a script or outline for your video before recording it.
  • Task D2: Demonstrate the achievement of each of your success criteria identified in task B1
  • Task D3: Discuss what changes you would make to your product if given more time. This could either be to better address success criteria not fully completed, or to add enhancements to your product
  • Task D4: Within the video, identify who your client (or target audience) for the project was, and discuss whether you have achieved the original objective identified back in task A1. How has completed product impacted on your client (or target audience). Perhaps a brief on camera interview with your client (or a couple of representatives of the target audience).

In order to address this criterion thoroughly, I anticipate most videos to be around 4 or 5 minnutes.