Teaching is not just a process of imparting knowledge to an attentive child. Learning needs to be engaging, social and interactive. It is also vital that.

Slides:



Advertisements
Similar presentations
Chapter 2: Problem Solving
Advertisements

Course resources available from What is Scratch? How does Scratch fit into the Computing PoS? Progression in Computing.
LECTURE 1 CMSC 201. Overview Goal: Problem solving and algorithm development. Learn to program in Python. Algorithm - a set of unambiguous and ordered.
Program Development Procedures 1.Program definition clearly define what the problem is. clearly define Input and output data (types, precision, units used)
© Janice Regan, CMPT 102, Sept CMPT 102 Introduction to Scientific Computer Programming The software development method algorithms.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Algorithm Design CS105. Problem Solving Algorithm: set of unambiguous instructions to solve a problem – Breaking down a problem into a set of sub- problems.
Chapter 1 Program Design
Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 3P. 1Winter Quarter Structured Engineering.
1 Chapter 2 Problem Solving Techniques INTRODUCTION 2.2 PROBLEM SOLVING 2.3 USING COMPUTERS IN PROBLEM SOLVING : THE SOFTWARE DEVELOPMENT METHOD.
Chapter 3 Planning Your Solution
Review Algorithm Analysis Problem Solving Space Complexity
Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 3P. 1Winter Quarter Structured Engineering.
Adapted from slides by Marie desJardins
Chapter 2: Developing a Program Prelude to Programming Concepts and Design Copyright © 2001 Scott/Jones, Inc.. All rights reserved. 1 Chapter 2 Developing.
An ordered sequence of unambiguous and well-defined instructions that performs some task and halts in finite time Let's examine the four parts of this.
Algorithmic Problem Solving CMSC 201 Adapted from slides by Marie desJardins (Spring 2015 Prof Chang version)
TMF1013 : Introduction To Computing Lecture 1 : Fundamental of Computer ComputerFoudamentals.
Bug Session Four. Session description Objectives Session activities summary Resources Prior knowledge of sequencing instructions using Bug Bug website.
Describe the Program Development Cycle. Program Development Cycle The program development cycle is a series of steps programmers use to build computer.
Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and Elizabeth Drake Chapter 2: Flowcharts.
Overview of Programming and Problem Solving Textbook Chapter 1 1.
Programming for Beginners Martin Nelson Elizabeth FitzGerald Lecture 5: Software Design & Testing; Revision Session.
© 2011 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Stewart Venit ~ Elizabeth Drake Developing a Program.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
Flowcharts and Algorithms. Review of Terms  A computer is a machine that can represent and manipulate data –Ultimately the data and the instructions.
Cs413_design04.ppt Design and Software Development Design : to create a functional interface that has high usability Development : an organized approach.
The basics of the programming process The development of programming languages to improve software development Programming languages that the average user.
Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 3P. 1Winter Quarter Structured Engineering Problem Solving and Logic.
Programming in C++ Dale/Weems/Headington Chapter 1 Overview of Programming and Problem Solving.
EGR 115 Introduction to Computing for Engineers Branching & Program Design – Part 1 Monday 29 Sept 2014 EGR 115 Introduction to Computing for Engineers.
Algorithm Discovery and Design Objectives: Interpret pseudocode Write pseudocode, using the three types of operations: * sequential (steps in order written)
The Hashemite University Computer Engineering Department
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Component-Level Design and User Interface Design Departemen Ilmu Komputer IPB 2009.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Tevfik Bultan Lecture 4: Introduction to C: Control Flow.
Algorithms and Pseudocode
Flow Control in Imperative Languages. Activity 1 What does the word: ‘Imperative’ mean? 5mins …having CONTROL and ORDER!
Evolution of C and C++ n C was developed by Dennis Ritchie at Bell Labs (early 1970s) as a systems programming language n C later evolved into a general-purpose.
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.
Progression in KS3/4 Algorithms MONDAY 30 TH NOVEMBER SUE SENTANCE.
1 Structured Programming Arab Academy for Science and Technology CC112 Dr. Sherif Mohamed Tawfik The Course.
CSE 110: Programming Language I Matin Saad Abdullah UB 404.
Software Design and Development Development Methodoligies Computing Science.
Computer Systems Architecture Edited by Original lecture by Ian Sunley Areas: Computer users Basic topics What is a computer?
Program Design & Development EE 201 C7-1 Spring
ICS 3UI - Introduction to Computer Science
2008/09/22: Lecture 6 CMSC 104, Section 0101 John Y. Park
Algorithm and Ambiguity
Unit# 9: Computer Program Development
Chapter 16 Component-Level Design
Programming Fundamentals (750113) Ch1. Problem Solving
Global Challenge Night Sensor Lesson 2.
Looping and Random Numbers
Global Challenge Night Sensor Lesson 2.
Introduction to Algorithms and Programming
Global Challenge Night Sensor Lesson 2.
Global Challenge Night Sensor Lesson 2.
Global Challenge Night Sensor Lesson 2.
Algorithm and Ambiguity
Understanding Problems and how to Solve them by using Computers
Global Challenge Night Sensor Lesson 2.
Global Challenge Night Sensor Lesson 2.
Global Challenge Night Sensor Lesson 2.
Global Challenge Night Sensor Lesson 2.
Global Challenge Night Sensor Lesson 2.
Basic Concepts of Algorithm
Global Challenge Night Sensor Lesson 2.
WJEC GCSE Computer Science
Presentation transcript:

Teaching is not just a process of imparting knowledge to an attentive child. Learning needs to be engaging, social and interactive. It is also vital that the process is creative. Children shouldn’t just be taught a series of procedures, they need to be able to explore different, novel, personal ideas and to share them with others. And it needs to be relevant and meaningful to a child’s different experiences beyond the classroom. The type of tools we use in the classroom will help. It’s not enough for pupils to learn how to move a robot in a certain direction.

The tools used must enable students to understand how coding could address a range of problems in different ways and, preferably be adaptable to suit their own interests. But the teacher plays a most significant role. If teachers have confidence in, and knowledge of the building blocks of coding and how these relate to the real world, they can adapt these tools. They could even create their own resources and might not even need digital tools to do it. – eg. CS Unplugged A well-trained teacher can offer context to their classes by helping them understand how coding affects our daily lives, from its use in Google and Facebook to streetlamps and hand driers.

Girls DO generally approach coding differently to boys; For example, research conducted with Storytelling Alice found that middle school girls not only enjoyed “programming” a story that was relevant to them but they also enjoyed turning it into a movie; Lego Research & Goldie Blox

Teachers need to have an active understanding themselves. To date, we are lacking research into what makes good coding pedagogy – much of what we have/believe is anecdotal Design methodologies are seen as vital: – Flowcharts; NS Charts; Structure Diagrams; Structure Design Charts, DFD’s, CSD’s.... Also Computational Thinking & Coding is yet to have a significant place in teacher training.

The environment should allow the learner to: read the vocabulary -- what do these words mean? follow the flow -- what happens when? see the state -- what is the computer thinking? create by reacting -- start somewhere, then sculpt create by abstracting -- start concrete, then generalize

The language should provide: identity and metaphor – how can I relate the computer's world to my own? de-composition – how do I break down my thoughts into mind-sized pieces? re-composition – how do I glue pieces together? readability – what do these words mean?

a procedure that consists: of a finite set of instructions which, given an input from some set of possible inputs, enables us to obtain an output if such an output exists or else obtain nothing at all if there is no output for that particular input through a systematic execution of the instructions.

Software Development Cycle: 1.Problem definition 2.Development of a model 3.Specification of Algorithm 4.Designing an Algorithm 5.Checking the correctness of Algorithm 6.Analysis of Algorithm 7.Implementation of Algorithm 8.Program testing 9.PLUS Documentation

The design imperative

Along with a assignment option algorithms consist of 3 Main Flow Constructs: Sequence Iteration Selection plus Recursion

Following a top-down design, the problem at hand is reduced into smaller and smaller subproblems, until only simple statements and control flow constructs remain. Nassi–Schneiderman diagrams reflect this top-down decomposition in a straightforward way, using nested boxes to represent sub- problemstop-down designcontrol flow

1.A worker at ABC Coding is either a Permanent or Casual employee (Permanent staff are on a lower rate but receive sick pay, holidays, LSL, etc). The Permanent Rate is $25 ph and the Casual Rate is $ Thus a Permanent worker who worked 30 hours for the week would get 30x$25 = $750 pay. Design a Nassi-Shneiderman Chart to ask a user their Name, their Status (Permanent or Casual) and their hours worked for the week. Have the program calculate their pay. The program does not need to loop back and run repeatedly. That is, it needs to be re-run for each worker. (Use of Sequence & Selection constructs) 2.Design an NS Chart that adds the natural numbers up to a limit entered by the user. Thus is the user enters 4 the output would be = 10. (Use of Iteration construct).

'Least Change' Question: Write a program which takes a value of money from $3 to $999 and outputs the least number of notes and $1 and $2 coins that make up this amount. i.e. If 94 entered output should be: $94 = 1 x $ x $ x $2. Next: Wrap-up, etc.

Issues with Pseudo-Code – language syntax; cryptic; implied skill base