IS5000xx Foundations of Problem Solving Dr Lahen Ouarbya.

Slides:



Advertisements
Similar presentations
Sheltered Instruction Observation Protocol
Advertisements

Curriculum Development and Course Design
Lecture Roger Sutton 21: Revision 1.
Learning Objectives Explain similarities and differences among algorithms, programs, and heuristic solutions List the five essential properties of an algorithm.
Chapter 10 Algorithmic Thinking. Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Learning Objectives List the five essential.
Lecture 1: Basics of Math and Economics AGEC 352 Spring 2011 – January 12 R. Keeney.
Lecturer: Fintan Costello Welcome to Hdip 001 Introduction to Programming.
Chapter 2: Algorithm Discovery and Design
Lecture Notes 1/21/04 Program Design & Intro to Algorithms.
CS300 Planning and Executing a Project Terry Hinton Helen Treharne.
School of Computing Science CMT1000 © Ed Currie Middlesex University 1 CMT1000: Introduction to Programming Ed Currie Lecture 1B: Problem Solving.
1 Chapter 8 Designing Small Programs. 2 A ‘Procedure’ v A set of instructions which describe the steps to be followed in order to carry out an activity.
Chapter 1 Program Design
Chapter 2: Algorithm Discovery and Design
Chapter 3 Planning Your Solution
Test Preparation Strategies
Foundations of Problem Solving chapter 2 Dr Lahen Ouarbya.
DCT 1123 PROBLEM SOLVING & ALGORITHMS INTRODUCTION TO PROGRAMMING.
Problem Solving for Programming Session 4 Calculating and Keeping Track of Values.
COMPSCI 101 S Principles of Programming Lecture 1 – Introduction.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Carolyn Seaman University of Maryland, Baltimore County.
Introduction. » How the course works ˃Homework ˃Project ˃Exams ˃Grades » prerequisite ˃CSCI 6441: Mandatory prerequisite ˃Take the prereq or get permission.
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
Simple Program Design Third Edition A Step-by-Step Approach
Dr Scott Turner. Why do you needed to develop problem solving skills?  One definition of programming is it is applied problem solving  You have a problem.
1 State Space of a Problem Lecture 03 ITS033 – Programming & Algorithms Asst. Prof.
Chapter An Introduction to Problem Solving 1 1 Copyright © 2013, 2010, and 2007, Pearson Education, Inc.
Introduction to Programming Lecture 1 – Overview
Invitation to Computer Science, Java Version, Second Edition.
An Overview of Programming in Python CSC 161: The Art of Programming Prof. Henry Kautz 9/9/2009 Slides stolen shamelessly from Dr. Mark Goadrich, Centenary.
Unit 2 A Flat World.  Objectives Objectives  FocusFocus  Warming up Warming up  7.1 Asking people to do things 7.1 Asking people to do things  7.2.
1 Overview Comments on notebooks & mini- problem Teaching equitably Analyzing textbook lessons End-of-class check (Brief discussion) Introduction to multiplication.
Algorithms CS139 – Aug 30, Problem Solving Your roommate, who is taking CS139, is in a panic. He is worried that he might lose his financial aid.
HAVING YOUR SAY Scottish Procurement Directorate Joint Improvement Team and Learning Disability Alliance Scotland.
September 21, 2010 IOT POLY ENGINEERING I1-14 DRILL : Hamburger U. At a restaurant, the hamburgers are fried on both sides for 60 seconds each. The frying.
Computer Programming & Utilization(CS 101) Pushpak Bhattacharya.
Introduction Fall 2001 Foundations of Computer Systems Prerequisite:91.166* or * Section A Instructor: Dr. David Hutchinson Office:
CMP-MX21: Lecture 5 Repetitions Steve Hordley. Overview 1. Repetition using the do-while construct 2. Repetition using the while construct 3. Repetition.
A Puzzle for You. Puzzle Someone is working for you for 7 days You have a gold bar, which is segmented into 7 pieces, but they are all CONNECTED You have.
CSCI N100 Principles of Computing Basic Problem-Solving.
2 Chapter 21 Understanding Structure Programming Logic and Design, Second Edition, Comprehensive 2.
Chapter 10 Algorithmic Thinking. Learning Objectives Explain similarities and differences among algorithms, programs, and heuristic solutions List the.
Understanding Computing and Programming at KS2 Debs Ayerst.
Algorithms and Pseudocode
CSM06: Information Retrieval Notes about writing coursework reports, revision and examination.
Chapter 2: Algorithm Discovery and Design Invitation to Computer Science.
Week 1 Lecture 1 Slide 1 CP2028 Visual Basic Programming 2 “The VB Team” Copyright © University of Wolverhampton CP2028 Visual Basic Programming 2 v Week.
Program Design. Simple Program Design, Fourth Edition Chapter 1 2 Objectives In this chapter you will be able to: Describe the steps in the program development.
#1 Make sense of problems and persevere in solving them How would you describe the problem in your own words? How would you describe what you are trying.
CSCI N207 Data Analysis Using a Spreadsheet. Course Goals This is a technical course in which data analysis is the main emphasis and spreadsheet is the.
Progression in KS3/4 Algorithms MONDAY 30 TH NOVEMBER SUE SENTANCE.
DIFFERENTIATION STRATEGIES WELCOME Differentiation Strategies: How to Meet the Instructional Needs of Each Student in Your Classroom DOE# IS Brandman.
Learning & Language Modules: Learning strategies Neuropsychology of Learning; Left & Right Brain Individual learning style & 7 Intelligence Profile Language.
SCIENCE TEST 35 Minutes; 40 Questions; 7 Passages 5 – 7 questions per passage 5 minutes per passage Evaluates your ability to reason scientifically 3 Question.
Algorithms and Flowcharts
Week 4 Lecture 1 Models as aids to problem solving.
Introduction to Programming Lecture 1 – Overview
Introduction to Algorithms
CMSC201 Computer Science I for Majors Lecture 02 – Algorithmic Thinking Prof. Katherine Gibson Based on slides by Shawn Lupoli and Max Morawski at UMBC.
Topic: Introduction to Computing Science and Programming + Algorithm
Lecture 2 Introduction to Programming
Introduction to Computer Programming
Definition In simple terms, an algorithm is a series of instructions to solve a problem (complete a task) We focus on Deterministic Algorithms Under the.
Objective of This Course
Comp1202: Building Better Programs
Software Engineering (Second Year) Dr
Introduction to Algorithms
Basic Concepts of Algorithm
The Foundation of Good Lesson Plans
Presentation transcript:

IS5000xx Foundations of Problem Solving Dr Lahen Ouarbya

3 Content of the course –At the end of the problem solving part of the course, the student will be able to: –Understand basic problem solving algorithms and corresponding data structures –Devise algorithms and build programs that solve concrete problems –Perform test on algorithms and programs and correct faults –Discuss and criticise basic programming principles –Read and understand simple programs and present them to others in a workshop setting –Different algorithm will be examined during this course

4 Delivery of the course The course will be taught via lectures only –One 2-hour lecture per week

5 Assessment Two courses and one exam –Coursework 1 (first term) is worth 20% –Coursework 2 (second term) is worth 20% –Exam (end of the year (May)) is worth 60%

6 Resources –We will start by working through the textbook How to think like a programmer by Paul Vickers. –The course web page on learn.gold will contain: –Lecture slides –Assignments and model solutions –Any important news about the course –Discussion forum

7 About the title of this course –What is the relationship between programming and problem solving?

8 About the title of this course –A computer program is a solution to a problem. –It is not the computer that solves a problem: it is you, the programmer who solves it by: –Identifying the problem –Understanding the problem –Identifying what factors are known and unknown –Figuring out a systematic procedure for finding the unknown values, given the known ones –Telling the computer what to do.

9 From problem solutions to programs (I) Programming involves distinct skills such as –Ability to code in one or more programming languages; understanding concepts such as variables, loops, conditionals; knowing where to put brackets, arrows, semi-colons, quote marks etc; knowing how to run programs on different computers –Ability to analyse problems and formulate solutions which are explicit, unambiguous and systematic, so that they can be coded in a programming language –This strand of lectures focusses on the second skillset.

10 From problem solutions to programs (II) –Human beings are very good at solving problems, we do it all the time: –Getting from your home to this room –Cooking dinner for 6 people –Making sure you can pay your bills every month –What we are sometimes less good at is explaining and reasoning about problem solutions.

11 From problem solutions to programs (III) –We will start by taking a closer look at “everyday” problems that we usually solve with very little thought, and see what is involved in analysing them as computational problems –This may involve trying out different ways of formulating or visualising problems –We will gradually introduce computational concepts such as variables, loops, conditionals etc –We will cover different ways of representing solutions such as flowcharts and pseudocode.

12 Class exercise –Suppose your cousin from the country is staying at your house. He has never been to London before or travelled on an underground train. You have decided to meet in Trafalgar Square after the class. –Get together in groups of 3 or 4 and compose a list of instructions for your cousin, which will ensure that he reaches Trafalgar Square by the agreed time without getting lost, run over or arrested.

13 Class exercise: discussion Some discussion points: –Does the problem naturally break down into sub- problems? –What kind of terminology have you used? Can you be sure your cousin will have understood it? –Are any of your instructions vague or ambiguous? For instance, could your cousin have taken the wrong exit from a tube station? –What assumptions have you made?

14 Class exercise: discussion (cont) –Are there multiple solutions? If so, how do you evaluate them and choose the best one? –For example, solutions could include: –Walking all the way –Taking a taxi –Getting a lift all or part of the way –Hiring a chauffeur-driven Rolls-Royce –Cycling –Using public transport –Flying to Paris and taking the train through the Channel Tunnel –What constraints might influence your choice of solution?

15 Complicating the problem –Your cousin doesn’t speak English –However, you can speak and write his language –Will your previous solution still work? –If not, what will have to change?

16 The How to think like a programmer (HTTLAP) approach 1.Understand the problem 2.Devise a plan to solve the problem 3.Carry out the plan 4.Assess the result 5.Describe what you have learned 6.Document your solution An extended version can be downloaded from

17 1. Understanding the problem A poor understanding of a problem can prevent you finding an optimal solution, or any solution at all. Two examples: 1.An ant is at the corner of the ceiling and wants to get to a bowl of sugar, which is on the floor at the far corner of the room. How would you calculate the shortest path it can follow? 2.Two trains are 100 miles apart on a single track, and heading towards each other at 60mph and 40mph respectively. A bird is flying back and forth between them at 70mph. How far will the bird have travelled before they collide? Please do NOT shout out the answers; give everyone a chance to think it through.

18 Summary of today’s lecture –Practicalities of the course –Relation between programming and problem solving –Starting to look at everyday problems in a computational way –A first look at the HTTLAP strategy (more next time)

19 Activity for week 1 –Download and read through the HTTLAP strategy. –Think about how you could apply it to the following problem: –You have a friend who comes from a very wealthy family. He is reasonably intelligent and well-educated, but has never had to do anything for himself around the house or seen the inside of a kitchen. Write out precise and explicit instructions he can follow to make a pot of coffee and pour a cup, using an electric filter machine. –Make a list of discussion points for next week’s lecture