Methods of teaching programming at high schools and universities Vera Dron,

Slides:



Advertisements
Similar presentations
Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
Advertisements

CHAPTER 2 GC101 Program’s algorithm 1. COMMUNICATING WITH A COMPUTER  Programming languages bridge the gap between human thought processes and computer.
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Compiler Construction by Muhammad Bilal Zafar (AP)
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Alternate Software Development Methodologies
ITEC 370 Lecture 25 Lifecycles. Review Questions? F give prototype demonstration –Testing plan for your software Life cycles –Scrum (Roles, Meetings,
Agile
6 December ’s  60’s “Cowboys” wrote software anyway that they could Difference between best programmers and worst as high as 28:1 (many sources)
Linux Summit 2004, Helsinki Foundation for Open Project Documentation Anatoly Shalyto Lev Naumov Computer Technology.
XP – eXtreme Programming A gentle introduction. Cleviton Vinícius Jobson Ronan Thiago Rodrigues.
Chapter 6 Prototyping, RAD, and Extreme Programming
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
Extreme Programming Mark Steverson. What Is Extreme Programming? ● Extreme Programming (XP) is a lightweight, agile methodology developed by Kent Beck.
1 CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Lecture Notes 8/30/05 Program Design & Intro to Algorithms.
Automata-Based Programming Anatoly Shalyto Computer Technology Department Saint-Petersburg State University of Information Technology,
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
1 Shawlands Academy Higher Computing Software Development Unit.
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Current Trends in Systems Develpment
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Software Engineering Management Lecture 1 The Software Process.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
The Software Development Life Cycle. Software Development SDLC The Software Development Life-Cycle Sometimes called the program development lifecycle.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
XP Overview Short Life cycle Risky / Dynamic Requirements Increase developer productivity.
The Software Development Process
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
 Programming - the process of creating computer programs.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
How Are Computers Programmed? CPS120: Introduction to Computer Science Lecture 5.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
The Hashemite University Computer Engineering Department
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Tevfik Bultan Lecture 4: Introduction to C: Control Flow.
Chapter – 8 Software Tools.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Progression in KS3/4 Algorithms MONDAY 30 TH NOVEMBER SUE SENTANCE.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Chapter 1 Assuming the Role of the Systems Analyst.
Testing under the Agile Method CSCI 521 Software Project Management based on the book Testing Extreme Programming by Lisa Crispin and Tip House.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Methodologies and Algorithms
Software Testing.
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Chapter - 8 Implementation.
The Software Development Cycle
Planning User stories are written.
Teaching slides Chapter 1.
Chapter 3 – Agile Software Development
Problem Solving Skill Area 305.1
Programming Fundamentals (750113) Ch1. Problem Solving
Refactoring.
Programming Fundamentals (750113) Ch1. Problem Solving
Extreme Programming.
The Software Development Cycle
CSCI 360: Software Architecture & Design
Presentation transcript:

Methods of teaching programming at high schools and universities Vera Dron,

2 Outline Education levels of a student: 2 ·intermediate (9-11 grades) ·beginners (7-8 grades) ·advanced (university student) · ”Puzzle”-method; · Hand tracing; · ”Teamwork”-method; · “Work in pairs”-method; · Automata approach.

3 Three basic stages in programming : Stages in teaching: · Language · Testing · Design Basic stages in teaching novice programmers · Design · Development · Testing problem-solving or logic skill knowledge of a programming language · semantics - the underlying meaning of language constructs · syntax - the representation of these constructs 3

4 Choosing language Advantages of the Pascal as a first programming language: 4 According to the Pascal Standard (ISO 7185), there were two original goals for Pascal 1 :  to make available a language suitable for teaching programming as a systematic discipline based on fundamental concepts clearly and naturally reflected by the language;  to define a language whose implementations could be both reliable and efficient on then-available computers.  highly structured;  strongly typed;  readable code. __________________________________________________ 1 Pascal-central

5 Syntax problem 5 · incomprehension of basic principles of compiler work Ex. Student writes: instead of:... for i:=1 to 20 do begin c:=c*2; writeln(2,’^’,i,’=’,c); end; writeln(...);... for i:=1 to 20 do c:=c*2; writeln(2,’^’,i,’=’,c); writeln(...);... · inability to interpret mistake, when compiler doesn’t propose its correction... if a>b then; writeln(a,b) else... ERROR: “;” expected... if a>b then; writeln(a,b); else... ERROR: error in statement Ex.

6 Puzzle: method 6 “Puzzle”-method 2 : __________________________________________________ 2 codesign with Andrew Breslav  write a program, containing constructs, in which students make mistakes;  divide the program into parts, sticking to the following rules:  one word can not be divided;  parts are to be combined uniquely;  confuse the parts.

7 Puzzle: example end; writeln(a); end var a, b : longint; begin writeln(‘Enter two numbers’); readln(a,b); write(‘the greatest common divisor of ’,a,‘ and ’,b,‘ is ’); while (a<>b) do begin if (a>b) then a:=a-b else b:=b-a; 7

8 8 ·beginners (7-8 grades)

9 Development problems 9 · incomprehension of semantic; · low level of debugging skill; · habit of “intuitive” programming.

10 Hand tracing var a,b : longint; begin writeln(‘Enter two numbers’); readln(a,b); write(‘the greatest common divisor of ’,a,‘ and ’,b,‘ is ’); while (a<>b) do begin if (a>b) then a:=a-b else b:=b-a; end; writeln(a); end. a b

11 ·intermediate (9-11 grades)

12 RUP 12 Rational Unified Process 3 : __________________________________________________ 3 IBM Rational  analysis;  definition of possible risks;  planning;  development;  inculcation.

13 “Teamwork”-method 13 “Teamwork”-method, based on RUP:  teacher plays a part of customer and planner, his/her role is to write a task and describe dependences between parts of a program;  students are divided into several teams, which communicate only via their programs;  one student, called “team leader”, is selected in every team. His/her role is to organize development in the team.

14 Teamwork 14

15 ·intermediate (9-11 grades)

16 XP 16 The Rules and Practices of eXtreme Programming 4 :  Planning  Designing  Coding  user stories are written;  make frequent small releases;  the project is divided into iterations;  simplicity;  choose a system metaphor;  no functionality is added early;  refactor whenever and wherever possible;  the customer is always available;  code the unit test first;  all production code is pair programmed;  only one pair integrates code at a time. __________________________________________________ 4 eXtreme Programming

17 AM 17 Core Principles of Agile Modeling 5 :  assume simplicity;  embrace change;  incremental change;  model with a purpose;  multiple models;  rapid feedback. __________________________________________________ 5 The Official Agile Modeling Site

18 “Work in pairs”-method 18 “Work in pairs”-method, based on XP and AM:  teacher plays a part of customer, his/her role is to write a task and supply students with user story at every iteration;  students are divided into several pairs, every pair has its own task;  at the end of every iteration after testing pair displays its program.

19 Work in pairs 19

20 ·advanced (university student) · Automata approach.

21 Technology of Automata Programming 21 SWITCH-technology Basics 6 : __________________________________________________ 6 A.A.Shalyto. Technology of Automata Programming  state;  set of states;  input variables + events = input actions;  states + input actions = automata with no output;  automata with no output + output actions = automata;  states are encoded with multiple values;  observation of the automata states;  correlated automata systems;  logging;  project documentation.

22 Educational experiment 22  Common Teaching 1 –Lectures and Exams  Common Teaching 2 –Lectures, Course Works and Exams  Experimental Teaching –Lectures and Projects –Project Documentation Verification –More than 40 fully Developed and Documented Projects

23 Project execution flow 23  analysis;  structuring (class decomposition);  classes diagram;  structuring (automata decomposition);  automata interaction diagrams;  automata verbal descriptions;  automata interface definition;  automata transitional graph definition;  isomorphic source code generation;  verification logs.

24 Content of a project 24  Project Documentation:  problem definition;  user interface description;  justifications;  automata and classes descriptions;  automata and classes diagrams;  verification protocols;  references;  Source Code.

25 The End 25 Thank you for attention!