In this section I present my aims in my work as a teacher and my view.
I believe that the following factors contribute beneficially to learning:
I have taken the following courses on pedagogics of teaching in a university.
In addition, I have twice given courses on portfolio work and preparing public portfolios for the HUT faculty members.
Here are included only those facts about my working career, which are related to teaching. My other working experience is included in my Curriculum vitae.
3.1 Positions as a teacher
When I worked in the Computing Center I gave several one or two-day courses for researches in using the presentation graphics programs and I also gave them personal advice in their problems.
In the laboratory of Information processing science I have worked as a lecturer (assistant professor) 9 years, full time teacher (4 months) and acting associate professor (6 months) or acting professor (2 years). In November 2001 I was appointed as a professor of Computer Science (subtitle: Education methods of basic programming) for a five year period. For the whole time I have been responsible for basic courses in programming, data structures and algorithms. In addition I have given several special courses.
3.2 List of courses I have given
3.3 Supervised Doctoral theses
3.4 Supervised Licentiate's theses
3.5 Supervised Master's theses
I have acted as a supervisor and/or instructor for nine MSc theses
4.1 Personal evaluations
The Finnish Society of Electronics Engineers gave me the EEE award (Excellent Education in Electronics), 21.3.2000.
The Study committee of HUT nominated me as the teacher of the year in the university in 1999.
4.2 Organizational evaluations
The unit (part of the laboratory of information processing science) giving basic computing courses in HUT has been selected twice (for periods 2001-2003 and 2004-2006) as a Center of Excellence in Education in Finland. Selection has been carried out by FINHEEC, Finnish Higher Education Evaluation Council. I am coordinating the work in the unit.
Before this the unit was a local center of excellence in education in HUT for the period 1999-2000.
5.1 Books
I wrote a text book of programming in Pascal (/6/, 433 pages) in 1988. The key motivation for this task was that at that time almost all available text books written in finnish were more or less language manuals. I wanted to present a different pedagogical view of teaching programming and Pascal. Thus I applied cognitive theory of learning in this book trying to give a clear motivation for different programming structures, to orientate the students to the basic problems and principles behind computer programs and to make them apply their skills to solving problems. The book has been sold over 10000 copies in Finland and it was adopted in a large number of universities and institutes of technology as the basic programming text book in later 80's and early 90's. When Pascal has been replaced by C, C++ or Java as the basic programming language, the book is not used much more.
5.2 Educational software
The basic courses that I have given in HUT have been vast mass courses, each having 200 to 1200 students per year. I have given the lectures, prepared the course material and taken care of the course organization including 2 - 13 student assistants per course, who have given class exercises and personal advice for the students.
Because of the lack of personal resources I have put a lot of effort in developing various software tools for aiding teaching and evaluation of student work. This has been the only means for giving them more feedback of their work when personal feedback has been impossible due to the masses.
The software developed have been documented in my research issues and in publications /7-9, 11, 13, 14, 16-19, 24, 27-28, 31-32, 35, 37, 39-45, 50-51, 55-56/. See Section 7. Not all of this work has ended up in tools that are used regularily. However, there have been many successes. For example, the WWW-TRAKLA system for teaching data structures and algorithms has proved its value. In 1999 and 2000 each student on the course had to solve about 20-25 assignments dealing with manual simulation of various algorithms. Over half out of 500 students got at least 90 percent of maximum points and about two thirds of them got at least 80 percent. Such results could not be achieved by checking assignments manually. Thus, the system gives a solid base for teaching them more advanced topics and applying algorithms in practical problems. The new system TRAKLA2 has been implemented in the Matrix project during years 2002-2003.
Committee memberships
Here are included only those facts about my research, which are related to teaching. My other research activities are included in my Curriculum vitae.
7.1 Research related to teaching
During 1990's I have started and supervised several small projects for developing software to support teaching and learning programming, data structures and algorithms. This work has been carried out typically in whole-year programming projects of graduate student groups or as master's thesis. Here is a summary of results. The references refer to my list of publications.
In my licentiate's thesis /7/ I developed and implemented a method for detecting plagiarism in student programs written in Pascal. The method was based on analyzing a program in three different ways. First, a summary of lexical tokens was counted to produce a lexical profile of the program for comparison. Second, the program was transformed into an abstract syntax tree and two such trees could be compared with each other. Third, the program was interpreted and the execution profiles of various statements were gathered for comparison. An observation was made that the combination of these profiles was a reliable finger-print for programs which had been implemented independently of each other. A student group implemented the same algorithms for detecting plagiarism in C programs /8, 9/.
CALPAS /14/ was a computer-aided course of Pascal programming which was originally developed using Authorware professional tool and later implemented with Toolbook for Windows environment.
KELVIN /17/ is a tool for checking and giving feedback of the style of C programs. This tool stores all lexical information of the program into an abstract syntax tree which allows the tool to analyze and give feedback of both lexical and syntactical structures of the program.
TRAKLA /11, 13, 27, 31/ is a system developed for delivering and automatic checking of algorithmic assignments. Students get assignments by email and return their answers by email, too, to TRAKLA server which compares the answers to model solutions. In the assignments the student has to show how a certain data structure is changed step by step when a given algorithm with given input data is executed. The input data is tailored personally for each student which makes copying answers impossible. Later on, a graphical graphical user interface (TRAKLA-EDIT) was developed which allows the students to manipulate the data structures graphically. In the years 1996-1997 this interface was implemented for WWW (WWW-TRAKLA). The system has been highly successful aid for teaching the students the basic sorting, searching and graph algorithms. In 1997, I started the LEAD project in which the system is extended to a whole learning environment.
The main contribution in the LEAD project was building the Matrix framework for algorithm annimation and visual algorithm simulation, which was the main contents of Ari Korhonen's Licentiate's thesis. Under my supervision he has continued the work (his doctoral thesis will be completed by the end of 2003). Ari Korhonen has been the technical leader of the Matrix project since 2000, and my role has been to supervise the teachers and learners point of view in algorithm animation and simulation. The results of the Matrix project have been published in several papers /35, 37, 39-40, 43, 50, 55-56/.
Some interesting results about the evaluating the effect of algorithm simulation on learning data structures and algorithms are presented in /41-42, 44/.
CENVIRON /16/ was a plan to implement a learning environment for teaching the C language. The aims of the project were changed when we tested and decided to adopt the Ceilidh system (http://www.cs.nott.ac.uk/~ceilidh/), in which many of our ideas were already implemented.
BALT /18/ is a tool for visualizing various balanced trees and tree-balancing algorithms and for analyzing their performance. VIA /11/ was implemented by a student group and it visualizes various graph algorithms.
HUTLAG /24/ is a WWW-based authoring system for writing adventure games in the context of language learning. The students create and play games with it such that the teacher can add various assignments within the game.
The projects CALPAS, KELVIN, TRAKLA-EDIT, WWW-TRAKLA and CENVIRON were financed by the Helsinki University of Technology. I implemented BALT wholly myself. The rest of the projects were carried out by student groups which I supervised.
I have carried out various experiments in teaching methods. Reports of these are written in /30, 32-33, 52/.. Most of these relate to Problem Based Learning in teaching programming.
7.2 Current projects
See the home page of the Computer Science Education Research Group, COMPSER (http://www.cs.hut.fi/Research/COMPSER/).
7.3 International co-operation
In 1994, the laboratory of information processing science adopted the Ceilidh system for checking and evaluating programming assignments in the laboratory of information processing science. The system was originally implemented by the LTR (Learning Technology Research) group in the university of Nottingham in England. We made a number of changes in the system and started co-operation with LTR (Eric Foxley and Edmund Burke) when developing new features in Ceilidh. This co-operation, unfortunately, did not continue a long time. In 1997, Tampere University of Technology in Finland, also adopted Ceilidh based on our experiences.
In 2002 and 2003 I participated with my colleague Ari Korhonen to an international working group (within the ITICSE'2002 and ITICSE'2003 conferences). The groups prepared two important reports on promoting educational impact of algorithm visualization.