1 Problem-based learning (PBL)

Problem-based learning (PBL) can be understood as a learning method or in some cases as broader approach to learning  (Schmidt 1983) that supports social constructivist (Vygotsky 1978; Gunstone 2002) and experiential learning theories (Dewey 1953 and 1991; Kolb 1984). PBL has been widely used in medical sciences ever since 1960’s (Norman 2002). Since then it has been used in many other disciplines, as well, for example, in law and business schools (Huey 2001) and natural sciences (Williams 2001).

Studying consists of group meetings and self-directed learning. Students are divided into small groups (5 – 8 students) that are given a case or a problem related to some course topic. The case/problem triggers discussion about the subject and therefore triggers learning process. Based on discussion, students brainstorm for a while to make it clear what they already know about the subject and what they still need to learn to better understand the case/problem. Therefore the meaning of brainstorm is that students can identify what they already know about the subject and where are the gaps in their knowledge.  After brainstorming the students set learning goals for themselves. These steps are done in an opening session, which is followed by self-directed learning. During the self directed learning each student studies to meet the agreed learning goals. They can use whatever learning method they wish. Thereafter the group meets again for the closing session where the students discuss about what they have learned. They try to make a synthesis of all knowledge they have and thus try to better understand the case/problem. After the group has closed the case/problem they get a new case.  More precise description of the group meeting procedure (7 step method) is below.

A tutor is present at group meetings to help students with the learning process. However, his/her role is rather a facilitator and a domain expert than a teacher. Tutor is not expected to lecture or teach but facilitate group meeting, for example, by asking questions/comments that gives students more fruitful direction to talk about.

Tutor's tasks can be defined as follows:

The function of problems/cases is to give a starting point and motivation to learning process. The idea is to use true-life problems/cases that simulates situations that a professional might run into his/hers work. This authenticity helps students to see why it is important to acquire new information and thus motivates them to study. Problem/case can be represented in many forms e.g. short texts, pictures or video clips.


7-step method

Opening session:

  1.  Examination of the case. The group gets familiar with the case material.
  2.  Identification of the problem. An initial title for the case is specified.
  3.  Brainstorming. The students present their association and ideas about the problem to find out what is already known and how does the case relate to their previous knowledge. The ideas are said aloud and written on self-stick notes, which are      organized on a white board.
  4.  Sketching of an explanatory model. An initial version of the explanation for the problem is constructed and most important concepts and their relations are identified.
  5. Establishing the learning goals. Those parts of explanatory model that are mysterious, fuzzy, or simply unknown are           identified and the central ones are chosen as learning goals for the group.
Study period:
  1. Independent studying. Each student  studies independently to accomplish all learning goals. This phase includes information gathering and usually a substantial amount of reading.
Closing session:
  1. Discussion about learned materials. Equipped with newly acquired knowledge, the group reconvenes to discuss the case. The discussion includes explanation of central concepts and mechanisms, analysis of the material and evaluation of its validity and importance.

(Schmidt 1983; Nuutila, Törmä and Malmi unpublished manuscript)



Modified PBL

Background

Problem-Based Learning (PBL) has been applied on  basic course in programming course for several years at Helsinki University of Technology (Nuutila, Törmä & Malmi 2000). According to our observation students in PBL groups have been motivated and have gained good learning results. Encouraged by these experiences we launched a new variation of PBL (Kinnunen and Malmi, 2002) where tutors’ role was radically reduced and thus less resource was needed. These modifications were launched to investigate how students could cope with reduced tutor resources and still get the benefit of PBL method. If students could cope with this change, we could apply the PBL method to larger scale (400 - 500 student) courses, too.

Modified version of PBL was applied on T-106.213 Basic course in programming L1 and T-106.216 Basic course in programming Y1 during years 2001- 2002 altogether  three times.  L1 and Y1 courses are parallel courses so that L1 is an autumn semester course and Y1 is spring semester course.  Both courses are 5 cr (approximately 200 hours) and they consist of programming exercises, programming project and an exam. Lectures are available but voluntary. The goal of the course is: course initiates the student into the core concepts and methods of object-oriented computer programming, using the Java programming language. After passing the course, the students should be able to autonomously expand their knowledge of programming and Java.


During 2001-2003 83 volunteer students took part of basic course in programming where modified version of PBL was used. One extra cr was given to the students that participated to the PBL sessions (8 - 10 times/course).

Modified version of PBL: tutorless PBL

Usually there is a tutor present during every opening and closing session. In our modified PBL version groups had a tutor present only during the first two opening sessions and the first closing session.  Primarily tutor’s role was to help students to get familiar with the PBL method and help them to get started. After those two meetings the groups met without the tutor. However, students had an opportunity to meet the tutor once a week for an hour so that they could sort out any problems they had encountered during the group meeting or self-directed learning.


Examples of problems/cases

Adventure game

Adventure game is one classic type of  computer games.  For example Adventure Nethack, Ultima and King's Quest are adventure games.

An adventure game consists of  world that divides itself into finite number of different kinds of ares (e.g. countries, cities, rooms). There are passages  through which one can move from one area to the other. In the area there can be items (e.g. books, keys, jewelry, food, guns) that can be treated differently. One can: ask items about their quality, take them along, consume them ... In the word there is a group of creatures. One creature represents the player and the player can control that creatures actions. Other creatures can be either friendly or hostile. They can do different things and one can ask them about different matters.  The goal of the game can be e.g. to increase fortune and/or glory or to get to the certain place.

Design simple game scenario where you define adventure game's world (areas, items and functions) and the goal of the game. Define also what kind of classes there should be and what kind of characteristic, relationships and functions instances of classes have. Draw a chart that clarifies your plan.

In your plan you do not have to call attention to user interface, graphic or real-time. Good structure of the game world is essential.

On line bookstore

Design a way to store information about items on sale and a way to handle customers' shopping carts on on line bookstore. You do not know the size of the product range or the quantity of customers purchases beforehand. It must be possible to search products by the title, author or ISBN number. It must also be possible to represent the products in alphabetical order according the authors name.

What kinds of objects, classes and methods you need if you execute this kind of system with Java? How can you use Java's API classes (e.g. how could you use API classes to handle collections)?

Scuttle the boat

Design one player Scuttle the boat game and it's implementation using Java. Consider following questions:

   Top

To the main page