The Secret to Solving Big Problems

Slides:



Advertisements
Similar presentations
How to play SUDOKU adapted from Tilda Rosander.
Advertisements

Choose the right picture
© Janice Regan, CMPT 102, Sept CMPT 102 Introduction to Scientific Computer Programming The software development method algorithms.
CS 280 Data Structures Professor John Peterson. Project Questions?
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Bug Session Two. Session description In this session the use of algorithms is reinforced to help pupils plan out what they will need to program on their.
Choose the right picture
Introduction To C++ Programming 1.0 Basic C++ Program Structure 2.0 Program Control 3.0 Array And Structures 4.0 Function 5.0 Pointer 6.0 Secure Programming.
Thinking About How You Read
Investigations: “Number Games and Story Problems”
Welcome to... The Big Picture. This presentation contains a sequence of images. The Big Picture Each image shows slightly more of one big picture. After.
Top-Down Design and Modular Development
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
Problem Solving Strategies EDU 412/413 Special Thanks to: Matthieu Petit.
Finding Asymptotes Rational Functions.
 Understand  Plan  Solve  Check Your Work › I can use many different strategies while using UPS Are you using UPS ?
An Interactive Lesson Designed by Nicole Larson. Common Core Standards 1.G.1. Distinguish between defining attributes; build and draw shapes to possess.
Making Decisions uCode: October Review What are the differences between: o BlueJ o Java Computer objects represent some thing or idea in the real.
Team Name: Group C.  Zisimos  Team Leader, Software Engineer  Richard  Hardware Engineer  Michael  Hardware Engineer  Jason  Software Engineer.
UNIT 2 TESTING TECHNIQUES Testing begins with a proposal for software/system application development/maintenance and end with the system is formally accepted.
Equivalent fractions. Pizza 3/4 6/8 9/12 Multiply by 1 5 x 1 =5 235 x 1 =235 2/3 x 1 =2/3 a x 1 = a.
TYPE YOUR STORY TITLE HERE Type your name here PUT A PICTURE HERE.
Recursion Colin Capham Recursion – an introduction to the concept.
Solve an equation 7y – 6y + 12 = 4y. Simplify 7y – 6y + 12 = 4y 7y – 6y + 12 = 4y becomes y + 12 = 4y when we combine like terms.
Solving Linear Equations Substitution. Find the common solution for the system y = 3x + 1 y = x + 5 There are 4 steps to this process Step 1:Substitute.
Lesson 21 Objective: Solve two step word problems involving all four operations and assess the reasonableness of answers.
Dillon: CSE470: SYSTEM INTEGRATION 1 Build Plan l Development or integration strategies l Decide the order in which components of the system will be developed.
Finding the Mean David R. David N.. Mean The average of the numbers in a set of data is the mean.
Moon Phases Puzzles. Name and describe all the Moon phases New Moon: Not visible Waxing crescent: Getting bigger, crescent 1 st quarter: Getting bigger,
Choose the right picture Choose the right word. 5.
How to Really Review Papers CS 8803 AIC. Prvulovic: CORD 2 Paper Reviewing Algorithm Read the paper Think about it Take a look at related work Leave it.
How to do a card trick.
SYSTEMS OF LINEAR INEQUALITIES
Greedy algorithms: CSC317
Game Design For Development
Data Structures Lab Algorithm Animation.
Name: Aimee McLaughlin
An Instructional Power Point by The Curriculum Corner
October 18, 2017 Parallel Circuit.
Radicals.
Multiplying Radicals Steps Example: Multiply coefficients together 1.
Examples of Multiplying Radicals
How to eat a room-sized pizza using Java.
Compound Inequalities
Optimizing Malloc and Free
OOP vs Structured Programming
Software System Integration
Please use speaker notes for additional information!
How to Really Review Papers
CISC101 Reminders Assn 3 due Friday, this week. Quiz 3 next week.
Bacteria Objectives To identify & obtain necessary information to solve problems. To solve substantial problems by breaking them down into smaller parts.
Computational Thinking for KS3
Starter question – to be done on the mini-whiteboard.
INDIVIDUAL ASSIGNMENT #2, DUE: 2/1/08
ITEC 2620M Introduction to Data Structures
23 ×
Fundamentals of Data Representation
Standards for Mathematical Practice
Author: Ms. Jennifer Computer Studies
Problem Solving Designing Algorithms.
Algorithms.
Make sure you think & read carefully!
Integration Reading: McConnell, Code Complete, Ch. 29
Algorithms, Part 3 of 3 Topics Top down-design Structure charts
Top-Down Design & JSP Skill Area Part D
Becoming a Good Test Taker
7.2 Scientific Notation Standard: SWBAT covert numbers from Standard Notation to Scientific Notation and from Scientific Notation to Standard Notation.
Algorithms, Part 3 of 3 Topics Top down-design Reading
Planning an integrated Document to meet someone’s needs
Building pattern  Complete the following tables and write the rule 
Presentation transcript:

The Secret to Solving Big Problems or “How do you eat an elephant?”

One Byte at a Time Problem solving approaches Divide and conquer Incremental development

An Approach to Word Problems Given a specification for a problem Understand the problem Do you know what the big picture problem result should be? Think about each of the smaller problems that comprise the bigger problem. Do you know how each of these should work? What is provided as part of the problem? (Nim, NimDriver) Of the smaller problems, inventory which of these you have solved before. Look for patterns in how you have solved the problem in the past. Which of the solutions do you have readily available in code? Toolkit Prior labs or PAs that you have solved.

An Approach to Solving Word Problems Determine an overall structure of the program Which of these “mini”-solutions will be methods and which will be in the main flow? (Think about methods being small blocks that you can put together in any order in the main flow.) Create the base classes and “stubs” for each method so that you can test incrementally. Determine the order of solving each of the smaller problems Will you go top down? Overall flow vs component parts Will you go bottom up? Build components first, then link them together Implement the first “solution” AND TEST

The Game of Nim By now you should understand how the game works. So, given the specification, what are the smaller component problems to be solved? (5 minutes in groups). REPORT Which of these component problems were solved for you by the author? (1 minute) - REPORT Which of these component problems do you already have a solution for? (2 minute)

Game of Nim continued What should the overall structure look like? Where will you construct each of the mini solutions? Think about 3 of the mini problems. How will you know if you have solved the problem? Develop a test strategy so you know if that mini problem has been solved. (5 minutes) - REPORT

What about RATS! How does the overall game work? What are the smaller problems that you need to solve? (5 minutes) – REPORT Which problems have you already solved in labs, PAs or Toolkit? Where (in which class) will each of these mini-solutions reside? (2 minutes) – REPORT Of the problems that you must solve, how will you know that you have created the correct solution? Choose 3 of the problems and design a test for each of these. (5 minutes) - REPORT

As you finish PA6 Make sure your components are working correctly and make sense. If you have more than 50 lines of code(roughly) in a method, split it up. Design a smaller solution or a series of smaller solutions. (As you get better, you will split methods which are much smaller). Test each component as you go along. This can be done whether you are developing bottom up or top down.

Always, SMALLER IS BETTER I have helped a lot of students with MASS O’ CODE If you write smaller components that you know work, there is less need to debug large chunks.