Methods of teaching programming

Download Report

Transcript Methods of teaching programming

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;
·intermediate
(9-11 grades)
· Hand tracing;
·advanced (university student)
· ”Teamwork”-method;
· “Work in pairs”-method;
· Automata approach.
2
2
Basic stages in teaching novice programmers
Three basic stages in programming:
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
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-central www.pascal-central.com
4
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
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
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
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
8
Development problems
· incomprehension of semantic;
· low level of debugging skill;
· habit of “intuitive” programming.
9
9
Hand tracing
var
a,b : longint;
begin
writeln(‘Enter two numbers’);
readln(a,b);
write(‘the greatest common divisor of
while (a<>b) do
begin
if (a>b) then
a:=a-b
else
b:=b-a;
end;
writeln(a);
end.
a
b
10
’,a,‘ and ’,b,‘ is ’);
20
15
5
15
5
10
5
5
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
11
RUP
Rational Unified Process3:





analysis;
definition of possible risks;
planning;
development;
inculcation.
__________________________________________________
3 IBM Rational http://www.rational.com
12
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
13
Teamwork
customer
planner
teacher
students
team leader 1
file1
file2
... ... ... . . .. ...
... . .... . ... .. ...
.... . ........ ... .. .
. ...... . .. . .....
... ... ... . . .. ...
... . .... . ... .. ...
.... . ........ ... .. .
. ...... . .. . .....
team leader 2
team leader 3
modules
14
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
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
16
AM
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
17
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
18
Work in pairs
customer
teacher
students
pair1
pair2
19
pair3
19
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
20
Technology of Automata Programming
SWITCH-technology Basics6:










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.
__________________________________________________
6 A.A.Shalyto. Technology of Automata Programming http://is.ifmo.ru
21
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
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;
verification logs.
23
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
24
The End
Thank you for attention!
25
25