Title: Methods of teaching programming
1Methods of teaching programming
at high schools and universities
Vera Dron, dronvo_at_rain.ifmo.ru
2Outline
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
3Three basic stages in programming
Basic stages in teaching novice programmers
problem-solving or logic skill
DesignDevelopmentTesting
knowledge of a programming language
semantics - the underlying meaning of language
constructs syntax - the representation of these
constructs
Stages in teaching
LanguageTestingDesign
3
4Choosing 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
5Syntax problem
incomprehension of basic principles of compiler
work
Ex. Student writes
instead of
... for i1 to 20 do begin cc2
writeln(2,,i,,c) end writeln(...) ...
... for i1 to 20 do cc2
writeln(2,,i,,c) writeln(...) ...
inability to interpret mistake, when compiler
doesnt propose its correction
Ex.
... if agtb then writeln(a,b) else ... ERROR
expected
... if agtb then writeln(a,b) else ... ERROR
error in statement
5
6Puzzle 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
7Puzzle example
var
a, b longint begin
writeln(Enter two numbers) readln(a,b)
write(the greatest common divisor of ,a, and
,b, is )
while (altgtb) do
begin if (agtb) then
aa-b else bb-a
end writeln(a) end
7
8Outline
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
9Development problems
incomprehension of semantic low level of
debugging skill habit of intuitive
programming.
9
10Hand tracing
var a,b longint begin writeln(Enter two
numbers) readln(a,b) write(the greatest
common divisor of ,a, and ,b, is ) while
(altgtb) do begin if (agtb) then aa-b
else bb-a end writeln(a) end.
a
b
20
5
5 5 10 5
15
15
10
11Outline
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
12RUP
Rational Unified Process3
- analysis
- definition of possible risks
- planning
- development
- inculcation.
__________________________________________________
3 IBM Rational http//www.rational.com
12
13Teamwork-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
14Teamwork
14
15Outline
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
16XP
The Rules and Practices of eXtreme Programming4
- 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.extremeprogramm
ing.com
16
17AM
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
18Work 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
19Work in pairs
19
20Outline
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
21SWITCH-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.
__________________________________________________
6 A.A.Shalyto. Technology of Automata
Programming http//is.ifmo.ru
21
22Educational 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
23Project 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
24Content 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
25The End
Thank you for attention!
25