methods of teaching programming
DESCRIPTION
Methods of teaching programming. at high schools and universities. Vera Dron, [email protected]. Outline. Education levels of a student:. · beginners (7-8 grades). · ”Puzzle”-method; · Hand tracing;. · intermediate (9-11 grades). · advanced (university student). - PowerPoint PPT PresentationTRANSCRIPT
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 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.
highly structured; strongly typed; readable code.
__________________________________________________1 Pascal-central www.pascal-central.com
5
Syntax problem
5
· incomprehension of basic principles of compiler work
Ex. Student writes: instead of:...for i:=1 to 20 dobegin 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”-method2:
__________________________________________________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
OutlineOutline
Education levels of a student:Education levels of a student:
8
··intermediate (9-11 grades)intermediate (9-11 grades)
·beginners (7-8 grades)
··advanced (university student)advanced (university student)
· · ”Puzzle”-method;”Puzzle”-method;· Hand tracing;
· · ”Teamwork”-method;”Teamwork”-method;· · “Work in pairs”-method;“Work in pairs”-method;
· · Automata approach.Automata approach.
9
Development problems
9
· incomprehension of semantic;
· low level of debugging skill;
· habit of “intuitive” programming.
10
Hand tracing
vara,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.
ab
10
2015
515
5 5 10 5
11
OutlineOutline
Education levels of a student:Education levels of a student:
11
·intermediate (9-11 grades)
··beginners (7-8 grades)beginners (7-8 grades)
··advanced (university student)advanced (university student)
· · ”Puzzle”-method;”Puzzle”-method;· · Hand tracing;Hand tracing;
· ”Teamwork”-method;· · “Work in pairs”-method;“Work in pairs”-method;
· · Automata approach.Automata approach.
12
RUP
12
Rational Unified Process3:
__________________________________________________3 IBM Rational http://www.rational.com
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
customerplanner
file1... ... ... . . .. ...... . .... . ... .. ....... . ........ ... .. .. ...... . .. . .....
file2... ... ... . . .. ...... . .... . ... .. ....... . ........ ... .. .. ...... . .. . .....
team leader 2 team leader 3team leader 1
teacher
students
modules
15
OutlineOutline
Education levels of a student:Education levels of a student:
15
·intermediate (9-11 grades)
··beginners (7-8 grades)beginners (7-8 grades)
··advanced (university student)advanced (university student)
· · ”Puzzle”-method;”Puzzle”-method;· · Hand tracing;Hand tracing;
· · ”Teamwork”-method;”Teamwork”-method;· “Work in pairs”-method;
· · Automata approach.Automata approach.
16
XP
16
The Rules and Practices of eXtreme Programming4: 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 http://www.extremeprogramming.com
17
AM
17
Core Principles of Agile Modeling5:
assume simplicity; embrace change; incremental change; model with a purpose; multiple models; rapid feedback.
__________________________________________________5 The Official Agile Modeling Site http://www.agilemodeling.com
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
customer
teacher
pair1
students
pair2 pair3
20
OutlineOutline
Education levels of a student:Education levels of a student:
20
··intermediate (9-11 grades)intermediate (9-11 grades)
··beginners (7-8 grades)beginners (7-8 grades)
·advanced (university student)
· · ”Puzzle”-method;”Puzzle”-method;· · Hand tracing;Hand tracing;
· · ”Teamwork”-method;”Teamwork”-method;· · “Work in pairs”-method;“Work in pairs”-method;
· Automata approach.
21
Technology of Automata Programming
21
SWITCH-technology Basics6:
__________________________________________________6 A.A.Shalyto. Technology of Automata Programming http://is.ifmo.ru
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
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
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!