methods of teaching programming

25
Methods of teaching programming at high schools and universities Vera Dron, [email protected]

Upload: paley

Post on 14-Jan-2016

35 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Methods of teaching programming

Methods of teaching programming

at high schools and universities

Vera Dron, [email protected]

Page 2: Methods of teaching programming

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.

Page 3: Methods of teaching programming

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

Page 4: Methods of teaching programming

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

Page 5: Methods of teaching programming

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.

Page 6: Methods of teaching programming

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.

Page 7: Methods of teaching programming

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

Page 8: Methods of teaching programming

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.

Page 9: Methods of teaching programming

9

Development problems

9

· incomprehension of semantic;

· low level of debugging skill;

· habit of “intuitive” programming.

Page 10: Methods of teaching 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

Page 11: Methods of teaching programming

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.

Page 12: Methods of teaching programming

12

RUP

12

Rational Unified Process3:

__________________________________________________3 IBM Rational http://www.rational.com

analysis; definition of possible risks; planning; development; inculcation.

Page 13: Methods of teaching programming

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.

Page 14: Methods of teaching programming

14

Teamwork

14

customerplanner

file1... ... ... . . .. ...... . .... . ... .. ....... . ........ ... .. .. ...... . .. . .....

file2... ... ... . . .. ...... . .... . ... .. ....... . ........ ... .. .. ...... . .. . .....

team leader 2 team leader 3team leader 1

teacher

students

modules

Page 15: Methods of teaching programming

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.

Page 16: Methods of teaching programming

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

Page 17: Methods of teaching programming

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

Page 18: Methods of teaching programming

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.

Page 19: Methods of teaching programming

19

Work in pairs

19

customer

teacher

pair1

students

pair2 pair3

Page 20: Methods of teaching programming

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.

Page 21: Methods of teaching programming

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.

Page 22: Methods of teaching programming

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

Page 23: Methods of teaching programming

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.

Page 24: Methods of teaching programming

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.

Page 25: Methods of teaching programming

25

The End

25

Thank you for attention!