Public portfolio - Lauri Malmi Updated August 2008

Contents

  1. Introduction
  2. Pedagogical training
  3. Teaching experience
  4. Prepared learning resources
  5. Evaluations
  6. Other activities related to teaching and evaluations
  7. My view of teaching and learning
  8. Examples of course implementations

Introduction

This document summarizes my teaching merits.  I have been teaching and organizing computer science courses at Helsinki University of Technology (TKK) since 1986, except for 3 years period in 1992-1995 when I was preparing my doctoral thesis.  For all this time, I have been involved in teaching introductory programming courses and data structures and algorithms, even though I have taught a number a advanced courses, as well.  During this time I have put a lot of effort in developing new teaching and working methods, and building software to assist learning on large courses. At TKK, the sizes of introductory programming courses range from 150 till more than 500 students per course per year.  As the human teaching resources are very limited, it has been highly important to develop activating working methods and automatic software to provide enough feedback for students on their work.  After year 2000 this development work has more and more turned to research that falls into the field Computing Education Research.  This is beneficial for education because we can immediately apply our research contributions to develop our courses.  On the other hand, the large courses provide excellent possibilities to test new tools and approaches as well as evaluate them.  Our contributions have been recognized.  Finnish Higher Education Evaluation Council has twice chosen my unit "Basic Computing Education unit" at TKK as a national Center of Excellence in Education (2001-2003 and 2004-2006).

This document is structured into two parts.  Sections 1-5 list mostly factual information about my experience as a teacher, and the course material I have prepared.  A highly important part here is the automatic assessment and visualization software for supporting programming education that has been implemented in my COMPSER research group.  The software is only listed here, and my reserch work is described in a separate document.  The latter part of this document includes my vision about learning and teaching and a few examples of implementing the vision.

1. Pedagogical training

I have taken the following courses on pedagogics of teaching in a university.

Note. One old credit corresponds to 40 hours of work, and is about 1.5 ECTS credits. 

In addition, I have three times given courses for the TKK faculty members on academic portfolio work and how to prepare a public portfolio.

2. Teaching experience

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.

2.1 Positions as a teacher

When I worked in the Computing Center I gave several one or two-day courses for researchers on using the presentation graphics programs and I also gave them personal advice in their problems.

In the Laboratory of Information Processing Science (current name: Laboratory of Software Technology), 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 (field: Computer Science and Engineering, especially Education methods of basic programming) for a five year period. The period was extended till fall 2007. In December 2008 I was appointed as a tenured professor (field: Modelling, analysis and visualization of programs).

2.2 List of courses I have given and my role as the teacher

The extent of the courses are given in old credits.

Courses related to introductory programming (1st - 2nd year studies)

Advanced courses for 3rd-4th year students. Post-graduate seminars and other doctoral education Other courses

I have given several times short versions of programming courses and the course of data structures and algorithms for classes of students working in the industry.

My role in the courses

In all listed courses, I have been the teacher in charge taking care of lectures and course material.  As most introductory courses have had several hundreds of students yearly, I have also supervised a group of 3 to 15 part time teaching assistants (typically 2nd-3rd year students) who have instructed students in closed labs and evaluated course projects and some examinations under my instructions.  For largest courses, there has also been a part time chief assistant taking care of course organization, implementation of assignments on some automatic assessment tool and web pages.

For some courses, as listed above, the course has been designed and given jointly with some of my colleagues.  This has been highly fruitful form of collaboration in developing the courses.  We have reflected together, how the course succeeded and should be improved in the future.

2.3 Supervised theses

Doctoral theses

    Both theses above were prepared in my own research group. 

Licentiate's these
s     Korhonen's, Kinnunen's and Karavirta's theses were prepared in my own research group.

Master's theses

I have supervised 33 MSc theses and instructed 4 theses (before I had professorship).    Fifteen out of these have been completed in my own  research group, including the following:

  1. Rosi Keskinen, Computer-Aided Instruction at Helsinki University of Technology, 1992
  2. Asko Eerola, Kelvin - Style Analysis Tool for C programs, 1995
  3. Kenneth Oksanen, Memory Reference Locality in Binary Search Trees, 1995
  4. Ari Korhonen, World Wide Web in Computer-Aided Learning of Algorithms and Data Structures, 1997
  5. Jan Lönnberg, Visual Software Testing, 2003
  6. Otto Seppälä, Visual Java Debugger for Computer Science Education, 2003
  7. Panu Silvasti, Collecting Statistical Data of Usage of Algorithmic Exercise Applets, 2003
  8. Petteri Torvinen, Statistical Analysis of Usage of Algorithmic Exercise Applets, 2004
  9. Markku Rontu, Visual Queries for a Student Information System, 2004
  10. Juha Sorva, Ox - A Tool For Testing Java Exercises, 2005
  11. Ville Karavirta, XAAL - Extensible Algorithm Animation Language, 2005
  12. Jussi Nikander, Managing Automatically Assessed Exercises in TRAKLA2, 2005
  13. Petri Ihantola, Automatic Test Data Generation for Programming Exercises with Symbolic Execution and Java Path Finder, 2006
  14. Jouni Karppinen, Data Warehouse for programming courses, 2007
  15. Ahmad Taherkhani, Static Program Analysis for Recognizing Sorting Algorithms, 2008
    For a number of thesis (Karavirta, Lönnberg, Nikander, Rontu, Silvasti, Torvinen, Ihantola) the other instructor has been Ari Korhonen.

    All other theses have been prepared in a number of companies.  The topics here have varied a lot.

  1. Kristian Ukkonen, UMTS Network Simulator Implementation Using Parallel and Distributed Computing to Optimize Runtime, 2001
  2. Teemu Halmu, Simulation of Real-Time Properties of the Dental Unit from the Viewpoint of the Product Development, 2001
  3. Jari Nopanen, Applicability of Open Source Operating System as a Platform for Standard Enterprise Resource Planning Application, 2001
  4. Yu Zhang, Java Performance Research, 2002
  5. Kaarlo Eno, The Use of a Simulator in Teaching Engineering at Vocational Schools, 2004
  6. Mikko Soikkeli, Terminal Service for Electronic Documents, 2005
  7. Leo Wikström, Reengineering Process: Tool and Method Support, 2005
  8. Simo Ojanen, Mobile Data Communications in an RFID Based Supply Chain Asset Management System, 2005
  9. Aki Vainio, Measurement Visualization Algorithms, 2005
  10. Samuli Lehto, Performance Management in the J2EE-environment of Tekes, 2005
  11. Samuli Kärkkäinen, Form Description Languages for Current Web Browsers, 2005
  12. Liisa Selkäinaho, Collection and Analysis of Usage Data in a Massively Multiplayer Online Game, 2006
  13. Ilari Lähteenmäki, Interface Definition and Techonology Selection for an Integration of a Software System, 2006
  14. Mikko Veijonen, Towards Service-oriented Architecture, 2006
  15. Pekka Hirvonen, Hierarchical, requirement-Driven Approach for Automating Module Testing of Graphical User Interfaces, 2006
  16. 7 other works in 2006-2008
Currently supervising 8 doctoral theses and 2 MSc theses in my own group and 8 MSc thesis projects carried out elsewhere.

About my role in the thesis projects

My role during the thesis projects depends on whether the work is carried out in my own reseach group or whether it is carried out in external companies or organizations, which is very common at TKK. In all cases I supervise how the thesis report is written, which includes defining the structure of the thesis, formulation of research questions, discussion of relevant literature, selection of applied methodology and reporting and analysing the results.  For my own group members I typically have weekly or biweekly informal meetings with the student where we discuss current issues and problems in the thesis, and I comment the manuscript.  The need for instruction depends, however, heavily on the student.  In external thesis projects there is typically a local instructor at the company/organization who instructs in technical details and guides the working process locally.  In these cases I typically meet the student 4-6 times during the project and give comments on the report.

Since 2003 Dr. Ari Korhonen has co-instructed most theses in my group, typically giving more feedback on technical solutions.

2.4 Other assessed theses

Dissertation assessment
  1. Anders Berglund, Learning Computer Systems in a Distributed Project Course - The What, Why, How and Where. Member of examination committee, Uppsala University, Sweden, 2005.
  2. Kirsti Ala-Mutka, Automatic Assessment Tools in Learning and Teaching Programming. Tampere University of Technology, Finland.  Pre-examiner and opponent, 2005.
Assessment of Licentiate’s theses
  1. Päivi Hurri, Identifying Similarity in Hypertext Documents, University of Helsinki, 2001.
  2. Anu Moisio, Implementing ICT-supported Training in Organizations – a Service and Relationship Management View, Helsinki University of Technology, 2005.

3. Prepared learning resources

3.1 Book

I wrote a text book of programming in Pascal (publication G1, 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 was sold over 10000 copies in Finland and it was adopted in a large number of universities and polytechnics 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 any more.

3.2 Static learning resources

Static resources include web pages and printed material delivered to the students.

Course web pages typically include a number of topics.

For data structures and algorithms we have developed an electronic textbook (in Finnish, http://trakla.cs.hut.fi/ebook_fi/index.html) covering most topics on the course. The material includes descriptions of the algorithms, facts about their performance and a number of algorithm animations.  See especially graph algorithms part (http://trakla.cs.hut.fi/ebook_fi/ebook-Graafit_l_verkot.html) for the animations.  They were prepared with Flash by Miika Korhonen under my and Ari Korhonen's instructions.  I have written most parts of the following chapters: basic concepts, linear structures, tree structures, dictionaries and graph algorithms, and edited some parts of the others.

3.3 Educational software

The basic courses that I have given at TKK have been very large courses, each having 200 to 1200 students per year.  Because of the lack of personnel resources I have put a lot of effort in developing various software tools to support teaching and evaluation of student work.  The tools include:



4. Evaluations

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 TKK nominated me as the teacher of the year in the university in 1999. 

4.2 Center of Excellence in Education

The unit in which I work (a part of the Laboratory of Software Technology) gives basic computing courses at TKK. It 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.  Before this the unit was a local Center of Excellence in Education at TKK for the period 1999-2000.

I have been coordinating and supervising the work in the unit since late 1990's.

5. Other activities related to teaching and evaluations

5.1 Coordination of introductory programming

Since 1999 I have been formally coordinating the basic programming courses at the Laboratory of Software Technology, and since 2008 in the Department of Computer Science and Engineering. However, in practice I have been carrying out this since early 1990's. This work includes the following tasks, all of which, of course, in collaboration with my teacher colleagues: In 1999-2002 I also coordinated of software tools courses (Word, Excel, web, ...).

5.2 Activities in a larger scope in education

During my career as a teacher I have acted as a member of several committees related to education in computer science. The translations are my own, since typically internal committees work only in Finnish.

Administration committees

Committees for developing education
Committes for implementing the Bologna Process at TKK
Committees for teacher education at TKK
The Committee of Degree Programme of Computer Science and Engineering prepares all decisions of the curriculum structure and requirements, and gives instructions to many administrational processes related to the curriculum. The Committee of Educational Merits at TKK prepared the instructions, how teaching merits should be reported and evaluted when people are nominated to teacher positions at TKK.  One important consequence of this was launching the pedagogical program (15 old credits) for teachers since 1999. I have been a member of the committee supervising this program since 1999.

I have also coordinated the Bologna process of renewing the advanced courses of Software Systems major.

In 2002 I was in the organizing committee of IPN Seminar on Staff and Faculty Development in Scandinavia. For more information, see publications B16 and 17 and proceedings F1.
 

6. About learning and teaching

In this section I present my understanding of what learning is, and what are my aims in my work as a teacher.

Learning is a highly complex process, where a student gathers and processes new information and gradually builds new cognitive structures and/or modifies his/her existing cognitive structures.  These structures are called mental models (Norman,1983). The goal of learning is to construct viable mental models that allow the learner to apply the knowledge successfully, for example, to explain phenomena or solve real-life problems.  Mental models are personal. Often they are not accurate and complete models of reality.  However, they may be tuned to better fit the reality by testing them and tuning them based on observations and feedback.

This model obviously has similar features as constructivism (Glaserfeld, 1989).  However, I do not accept the philosophical implications of Glaserfeld's theory.  My understanding is that there is objective world around us and we can say things that are true.

Teacher's main role is to design the learning process for students and give guidance and feedback for them during their studies.  In practice this means several things.

Some practical guidelines supporting the overall goals are: The vision above is not easy to achieve.  In Section 7 I give two examples, how I have tried to implement it in actual education.

7. Example courses

7.1   Data structures and algorithms (DSA)

This course is a second course of programming at TKK.  The general aim is to give a broad overview of data structures and algorithms covering topics such as basic data structures, priority queues, sorting algorithms, search trees, hashing methods, and graph algorithms. The main learning goals is to understand how they work and where are they applicable.

A number of highlights of the course:

7.2   Laboratory of Software Techniques

This course is an advanced course for CS majors taking Software Techniques as their specialization.  The course has two major goals:
  1. It gives basic understanding on experimental research work.  This is implemented as an experimental algorithm research task where students compare the perfomance of a number of different algorithms solving the same problem, e.g, sorting or string searching algorithms.  Instead of algorithms they can also evaluate the performance of some software tools such as databases on some transaction loads.
  2. It gives an experience of the process of writing and publishing a scientific paper.
To implement these goals the course includes the following phases.
  1. Literature survey.  Students search relevant literature for the given topic and write a summary report where they present the working of algorithms, analytic and experimental results they have found.
  2. Experimental design plan.  They prepare a plan, how they are going to compare the performance of the target algorithms.  This includes identification of parameters and factors which they consider interesting and arguing their significance for the task.  They might look for real data to use as input load for the tests, or they might model the test loads using parameters and factors only.  The design is discussed with the course staff to give feedback on it.
  3. Implementation and experimentation.  In this phase students implement all algorithms and other necessary test code.  They carry out the experiments and apply some statistical methods to analyse the reliability of their results.
  4. Writing the report.  The literature part, test plan and the results and their analysis, and final conclusions are written as an article, typically 10-20 pages.
  5. Peer review.  In this phase students review the works of 2-3 of their peer groups and give feedback on their works.  The guidelines for the review are similar as used in conferences and journals.
  6. Camera-ready report.  Based on the feedback the students prepare the final version of the article, which is assessed by course staff.
  7. Mini conference.  Best papers are selected by course staff, and the students give a 20 minute conference presentation for their peers. Typically a number of other faculty members also participate the conference as the audience.  The course staff (typically doctoral students or students at the end of their MSc studies) works as a program committee and discusses the pros and cons of each paper.  All papers are reviewed by two people.
As a whole the students get a good hands-on experience on the challenges of experimental work and how scientific community works.

For more information, see publication B32.

References

/Bloom, 1956/ B. S. Bloom, Taxonomy of Educational Objectives, Handbook 1: Cognitive Domain, Addison-Wesley, 1956.

/Engeström, 1986/.  Y. Engeström.  Perustietoa opetuksesta. Valtion painatuskeskus, 1982. (in Finnish)

/Glaserfeldt, 1989/.  E. Glaserfeldt, Cognition, Construction of Knowledge, and Teaching.  Synthese, vol 80, 1989, pp. 121-140.

/Norman, 1983/. D.A. Norman. Some Observations on Mental Models.  In: Mental models.  Lawrence Erlbaum Associates, 1983, pp. 7-14.

/Seppälä, 2004/. O. Seppälä, Program state visualization tool for teaching CS1. Proceedings of Third Program Visualization Workshop. Research Report CS-RR-407, Department of Computer Science, The University of Warwick, UK, 2004. pp. 118-125.