250 likes | 385 Views
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).
E N D
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) · ”Teamwork”-method; · “Work in pairs”-method; · Automata approach. 2
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
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
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
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
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
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
Development problems · incomprehension of semantic;· low level of debugging skill;· habit of “intuitive” programming. 9
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
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
RUP Rational Unified Process3: • analysis; • definition of possible risks; • planning; • development; • inculcation. __________________________________________________ 3 IBM Rational http://www.rational.com 12
“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
Teamwork 14
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
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
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
“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
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
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
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
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
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
The End Thank you for attention! 25