1 / 25

Methods of teaching programming

Methods of teaching programming. at high schools and universities. Vera Dron, dronvo@rain.ifmo.ru. Outline. Education levels of a student:. · beginners (7-8 grades). · ”Puzzle”-method; · Hand tracing;. · intermediate (9-11 grades). · advanced (university student).

paley
Download Presentation

Methods of teaching programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Methods of teaching programming at high schools and universities Vera Dron, dronvo@rain.ifmo.ru

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

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

  4. Choosing language According to the Pascal Standard (ISO 7185), there were two original goals for Pascal1: • 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. Advantages of the Pascal as a first programming language: • highly structured; • strongly typed; • readable code. __________________________________________________ 1 Pascal-centralwww.pascal-central.com 4

  5. Syntax problem · 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 Ex. ... if a>b then; writeln(a,b) else ... ERROR: “;” expected ... if a>b then; writeln(a,b); else ... ERROR: error in statement 5

  6. Puzzle: method “Puzzle”-method2: • 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. __________________________________________________ 2 codesign with Andrew Breslav 6

  7. Puzzle: example 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 7

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

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

  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. 5 20 5 5 10 5 15 15 10

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

  12. RUP Rational Unified Process3: • analysis; • definition of possible risks; • planning; • development; • inculcation. __________________________________________________ 3 IBM Rational http://www.rational.com 12

  13. “Teamwork”-method “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. 13

  14. Teamwork 14

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

  16. XP The Rules and Practices of eXtreme Programming4: • Planning • user stories are written; • make frequent small releases; • the project is divided into iterations; • Designing • simplicity; • choose a system metaphor; • no functionality is added early; • refactor whenever and wherever possible; • Coding • 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 http://www.extremeprogramming.com 16

  17. AM Core Principles of Agile Modeling5: • assume simplicity; • embrace change; • incremental change; • model with a purpose; • multiple models; • rapid feedback. __________________________________________________ 5 The OfficialAgile Modeling Site http://www.agilemodeling.com 17

  18. “Work in pairs”-method “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. 18

  19. Work in pairs 19

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

  21. SWITCH-technology Basics6: 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. __________________________________________________ 6A.A.Shalyto. Technology of Automata Programminghttp://is.ifmo.ru 21

  22. Educational experiment • 1998-2001 Common Teaching 1 • Lectures and Exams • 2001-2002 Common Teaching 2 • Lectures, Course Works and Exams • 2002-2003 Experimental Teaching • Lectures and Projects • Project Documentation Verification • More than 40 fully Developed and Documented Projects 22

  23. Project execution flow • 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; • verificationlogs. 23

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

  25. The End Thank you for attention! 25

More Related