Design IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, October 15, 2013 Marie desJardins University of Maryland, Baltimore County Midterm Preparation All assigned class material is fair game: Assigned readings from the three textbooks (St. Amant, Processing, MYM) Other assigned readings and videos as listed in the class schedule Lecture slides and in-class discussions The focus is on conceptual understanding rather than memorization of details Be able to define and answer questions about key concepts Not memorizing details of examples mentioned in passing Be able to write and interpret Processing programs Not picky/”trick question” syntax questions Format: About 25 questions Mix of true-false, multiple-choice, matching, and open-ended (short answer or write a program fragment) questions Closed-book but with limited notes: You may bring one page of notes (8.5”x11”, front and back, typewritten or handwritten, must be prepared by you but you can talk to other students as much as you want about what to include) Data Analysis Assignment Draft Presentation on October 25, 2013 Final Presentation on October 31, 2013 Final submission due BEFORE CLASS on October 31 Late policy does not apply – NO LATE SUBMISSIONS!! To be done in with your project team Uses Excel and PowerPoint – resources are available Use the assignment to experiment with visualizations for the Semester Game project Design Problem solving often produces multiple possible solutions ...or multiple ways to implement the solution Design is the process of making those decisions and choices Design at a high level Is it cost-effective to automate kidney exchange? Should we use a relational or object-oriented database? Design at a low level How do I structure this function? What do I call this variable? Designing the Semester Game Deliverable 1: four parts 1. Architecture Major functions and what they will do 2. Data See lecture from Oct. 3 3. Look and feel Input Output 4. Extensions Optional (but you can’t add them later) Where do you start? Most programs have some combination of three main parts: For each week: Input - choices Processing - calculate outcomes Computation Output - display outcomes for each week Output - display final outcomes Program-level Design Decisions In Processing, you have several defined functions you can use: void setup () void draw () void mousePressed () void keyPressed () What parts of the architecture do you put in each of these functions? Design Decisions - Input How much do I control how the user enters input? Do I force the user to input the choices in a certain order? Do I force the user to enter all the choices for one week before going to the next week? Do I let the user change their mind? What limits do I put on the values that can be entered? Upper and lower bounds Default values Granularity (integers vs. floats vs. controlled floats, e.g. in quarters of hours) How do I capture the user’s input? Text fields vs. buttons vs. ??? How do I do error checking? Check everything after the entire week has been entered, or after each entry? How/when do I check if it adds up to 168, and what do I do if it doesn’t? Design Decisions Processing How are the choices stored? Remember the hint from class on Oct. 3? Use semester game rules to write expressions for each of the three outcomes Happiness Grades Wealth Create a function that returns a value to calculate each outcome Be sure to store the outcomes by week Design Decisions - Output This is the place to get creative! Need to show: The outcomes for each week The history of outcomes over past weeks The final outcomes Ideas? Design Walkthrough Not required, but HIGHLY RECOMMENDED Before design deliverable is due, but after it is (nearly) done Everyone on the team participates Invite your coach Walk through, together, all sections of the deliverable Make sure it makes sense to all team members Purposes: Catch errors Everyone must know enough to answer questions about the deliverable Design Deliverable Due BEFORE CLASS on October 22, 2013 Late policy does not apply – NO LATE SUBMISSIONS!! Submit on Blackboard Submit one deliverable per team Be sure to put team name and team members on the deliverable 1-2 pages (could be more, but don’t go crazy) Follow the outline of the example We’ll schedule group interviews the week following