Teaching Object-Oriented Programming

A Constructivism-Based Approach

Kleanthis C. Thramboulidis

Electrical and Computer Engineering, University Of Patras

Home Page

Course Outline

Tha Goody's Example

RPN Calculator Assignments

GUI programming in Java

Event Handling in Java

Exception Handling

Concurrent Programming


The Textbook

Terms of Use





Copyright 2002,2005 

Kleanthis Thramboulidis



Concurrent Programming

Concurrency in Goody's

                                                                see figure

"The Goodys example is considered and the following situation is described. Helen and Nick are instances of the employee class in the OSG. Helen has been assigned the task of performing the process required to serve the clients orders that include at least one croissant. On the other hand, Nick serves the clients orders that include at least one cup of coffee. It is assumed that there is no client order including both croissant and cup of coffee and that there is only one microwave oven (MWO) for use by both employees. Students are asked to provide abstract descriptions of the processes executed by Helen and Nick in response to the assigned requests. Figure 2 presents example algorithms, given by students, describing the processes that are executed by Helen and Nick in response to the client orders. The resources required for the execution of the croissant-order are different from those required for the execution of the coffee-order, except from the MWO that has to be used in both types of orders." [1].  

(for more information see related paper)

The algorithm of Dekker simplified

"Solving the mutual exclusion problem in Goody's using Dekkers algorithm." [1]

(for more information see related paper)

The dentist problem: Semaphore, the redhead secretary

"In order to introduce the concept of semaphore, a solution is requested from students to our dentist problem, which includes one dentist and 12 weaklings. Weaklings are very busy with a lot of activities. However, from time to time they have to visit the dentist, who may see only one weakling at a time.

Students are asked to come up with a solution to this problem using the already presented material. They soon realize that it is impossible to apply Dekkers algorithm and that it is impossible to write a correct algorithm with the tools they have at their disposal. However, they already know that their dentist has solved the problem many years ago and that, he/she does not know anything about the algorithm of Dekker."

[1]  (for more information see related paper)


Download the related java application

Simple instructions for using the software


[1] K. Thramboulidis, A Constructivism-based Approach to Teach Advanced Computing Concepts in Introductory Java Courses, Journal of Informatics Education and Research (forthcoming).  Abstract

Last Updated: 23 February 2005