SlideShare a Scribd company logo
1 of 44
Existing programming teaching
materials
Section ‘Course: Object-Oriented Programming with Java’
(OOJava)
Živana Komlenov
Department of Mathematics and Informatics
Faculty of Science
University of Novi Sad
4th Workshop “Software Engineering Education and
Reverse Engineering”
Zagreb, 5 – 12 September 2004
Živana Komlenov: Existing programming teaching materials
2
Goal
• Our ultimate goal: Creation of joint teaching material
for ‘Course: Object-Oriented Programming with Java’
(OOJava).
• As an important part of the whole project special
attention should be paid to high quality examples.
• Therefore, forming a pool of examples and student
assignments has been started.
• Work is in progress, so all contributions are still
welcome.
Živana Komlenov: Existing programming teaching materials
3
Existing programming
teaching materials
• Currently 6 Java courses are taught at some of our
member universities.
• Their examples have been gathered (texts of the
examples + source code with comments (any existing
versions)), analyzed and sorted in an appropriate way.
• The emphasis is not on examples that are directly used
during the lecture, but on every other kind of
supporting examples (student self-study, assignments,
lab exercises, longer examples for seminar/semester
papers, ... )
Živana Komlenov: Existing programming teaching materials
4
Division of examples
• Principal suggestion was to divide the examples
into at least three groups:
– Supporting Java examples - extra examples, similar to
those presented during the lecture, intended to
encourage students' individual experimenting.
– Short exercises - for instance, practical assignments,
lab exercises, etc.
– Longer examples - more complicated tasks, given as
seminar assignments, with longer deadlines (up to
several months).
Živana Komlenov: Existing programming teaching materials
5
Division comments
• However, there is no perfect way to draw the line
among these groups, so all suggestions or different
concepts of the division are very welcome.
• Additionally, we are going through some open - source
Internet materials, as well as good textbooks used
worldwide in similar courses.
• The idea is to collect useful pieces of information and
include them in our project.
Živana Komlenov: Existing programming teaching materials
6
Contributors
• Institute of Informatics, Humboldt University, Berlin
• Department of Mathematics and Informatics, Faculty of
Science, University of Novi Sad
• Department of Computer Science and Engineering,
Faculty of Electrical Engineering, University of Belgrade
• Chair of Computer Science, Mathematical Faculty,
University of Belgrade
• Computer Science and Engineering Department, Faculty
of Automation and Computer Science and Engineering,
"Politehnica" University of Timisoara
Živana Komlenov: Existing programming teaching materials
7
Institute of Informatics,
Humboldt University, Berlin
• Prof. Klaus Bothe
• Course: Practical Informatics I
– First semester course
– Last time taught in winter semester 2001/2002
– Computers, algorithms, data, programs, concepts of
programming languages, imperative and object-oriented
programming, programming techniques, bases of systematic
software development
– Followed by Java examples
Živana Komlenov: Existing programming teaching materials
8
Institute of Informatics,
Humboldt University, Berlin
• Contributions:
– Java examples used in the lecture, suitable for
Supporting Java examples group
– Assignments, some included in Short exercises
– Java examples used during the exercises, suitable
for section Short exercises
Živana Komlenov: Existing programming teaching materials
9
DMI, Faculty of Science,
Novi Sad
• Prof. Mirjana Ivanović
• Course: Programming Languages
– (semester 3, 2 hours/week lecture + 1 hours/week exercises
+ 1 hours/week lab
– semester 4, 2 hours/week lecture + 1 hours/week exercises +
2 hours/week lab)
– History of programming languages. Basic characteristics of
programming languages and most common differences.
– Object-oriented methodology: design and programming.
Principal elements: classes, inheritance, dynamic binding.
Review of some hybrid object-oriented languages.
Živana Komlenov: Existing programming teaching materials
10
DMI, Faculty of Science,
Novi Sad
– Java. Program structure. Data types, classes and objects.
Control and repetitive commands. Structured data types.
Methods, class libraries.
– Scheme; PROLOG
– Exam: practical + oral
• Contributions:
– Examples from exercises
– Lab assignments, some solutions
– Written exams, some examples included in Short exercises
– Seminar assignments, included in Longer examples
Živana Komlenov: Existing programming teaching materials
11
DMI, Faculty of Science,
Novi Sad
• Prof. Zoran Budimac
• Course: Operating Systems I
– (semester 5, 2 hours/week lecture + 2 hours/week exercises +
1 hours/week lab)
– History and development of operating systems. Programming
languages suitable for OS implementation. Concurrent
programming.
– Processes. Stages. Implementation. Interprocess
communication and synchronization. Process
communication. Deadlocks.
– Modula-2 and Java examples.
Živana Komlenov: Existing programming teaching materials
12
DMI, Faculty of Science,
Novi Sad
– Memory management. Physically available internal memory.
Virtual memory organization and management. External
memory. File systems.
– Exam: practical + oral
• Contributions:
– Java examples from exercises, suitable as one of the last
parts of Supporting Java examples – thread synchronization
– Practical assignments (some solved with GUI, as applets,
etc.), included in Short exercises
Živana Komlenov: Existing programming teaching materials
13
DCSE, Faculty of Electrical
Engineering, Belgrade
• Prof. Igor Tartalja
• Course: Programming Languages and Methods of
Programming
– (semester 5+6, 2 hours/week lecture + 2 hours/week
exercises)
– Fifth semester: Concepts of object-oriented software. C++
– Sixth semester: Java. Software portability. Bytecode and
JVM. Compilers. Classes and objects. Access control.
Constructors. Methods. Parameters. Method overlapping.
Garbage collection.
Živana Komlenov: Existing programming teaching materials
14
DCSE, Faculty of Electrical
Engineering, Belgrade
– Nested classes and packages. Access rights. Packages.
Interfaces. Inheritance.
– Exceptions. Error detection. Throw command. Exception
handling. Try-catch-finally construction.
– GUI. Package AWT. Event handling.
– No homework, practical assignments, etc.
• Contributions:
– Many interesting Supporting Java examples from 'Exercises
for Programming Languages and Methods of Programming
Course' (in Serbian), Copyright 2001 by Laslo Kraus
– Written exams, some examples included in Short exercises
Živana Komlenov: Existing programming teaching materials
15
Chair of Computer Science,
Mathematical Faculty, Belgrade
• Prof. Dušan Tošić
• Course: Programming Languages
– (semester 5+6, 2 hours/week lecture + 2 hours/exercises)
– PROLOG; LISP (Scheme)
– Java. Compared to Smalltalk. Basic language elements.
Creating applications and applets in Java.
– Written exams
• Contributions:
– Some seminar assignments – games. Ideal for Longer examples.
Živana Komlenov: Existing programming teaching materials
16
CSED, Faculty of Automatics
and Computers, Timisoara
• Prof. Ioan Jurca
• Course: Object-Oriented Programming
– (semester 4, 2 hours/week lecture + 2 hours/week lab)
– Fundamental concepts of object-oriented programming. Classes
and objects: class structure, fields, methods, object creation.
– Extending classes, type compatibility, abstract classes.
– Interfaces: declaration, extension, working with interfaces.
Nested classes and interfaces: static nested types, inner classes.
– Exceptions: creating exception types, throw and throws; try,
catch, finally.
Živana Komlenov: Existing programming teaching materials
17
CSED, Faculty of Automatics
and Computers, Timisoara
– Packages: package naming; relation with the directory structure;
short overview of standard Java packages.
– Concurrent programming (threads): creating threads; thread
synchronization.
– Graphical User Interfaces: the event model, the AWT package.
• Contributions:
– Version in Romanian of the material students should use to
prepare their lab assignments. There are 12 lessons, each
consisting an explanation of a set of concepts, intersperced with
Java programs (or program fragments) and ending with the text
of one or more assignments (translation in progress).
Živana Komlenov: Existing programming teaching materials
18
Collected examples
• Examples used at our member universities,
divided as suggested:
– Supporting Java examples
– Short exercises
– Longer examples
Živana Komlenov: Existing programming teaching materials
19
Supporting Java examples
• Nice combination of examples from Berlin, Novi Sad
and Belgrade (FEE).
• Mainly material used in classical exercises or lectures.
Partly suitable for lecture slides, but on the other hand
there are examples complex enough to be used as part
of any sort of exercises.
• All examples have been translated to English and sorted
by topics they cover.
Živana Komlenov: Existing programming teaching materials
20
Supporting Java examples
– Intro
– Keyboard
– Math
– Recursion
– Array
• Search
• Sort
– String
– File
– Object
– Inheritance
– Time
– Interface
– Collection
– List
– Stack
– Queue
– Error
– Exception
– Hash
– Package
• Plane
• Figures
• LinAlgebra
– Tree
– Maze
– Applet
– GUI
– Synchronization
• Primitives
• Graphics
• Examples
– Supermarket
Živana Komlenov: Existing programming teaching materials
21
Short exercises
• Written exams
– Several solved examples from Novi Sad and Belgrade
(FEE), as well as texts of some more assignments (much
more of those are still in Serbian, stored as additional
material).
• Lab exercises
– Examples from Novi Sad, used in fall 2003/2004 when
Programming languages course was completely taught for
the first time since the new curriculum had been adopted.
Some student solutions are enclosed.
Živana Komlenov: Existing programming teaching materials
22
Short exercises
• Practical assignments
– Mainly examples concerning thread synchronization, again
from Novi Sad.
– Those assignments were given to students in fall 2003/2004
when Operating systems I course was completely taught for
the first time since the new curriculum had been adopted.
– They represent typical final assignments, with time limits of
approximately 3-4 weeks.
– There are some very good student solutions and just
formulations of other possible assignments.
Živana Komlenov: Existing programming teaching materials
23
Lab exercise example
DMI, Faculty of Science, University of Novi Sad, Serbia and Montenegro
Programming Languages, Prof. Mirjana Ivanović
Lab exercises: NataĹĄa Ibrajter, 2003/2004
Student: Miroslav Nadj
Program Parents should read data from file 'Names.txt'. This file contains
names of children available for adoption. After reading all names, program
should create instances of Child objects, store them in an array and then allow
user to enter sex and age for each child.
Future parents should be able to set preferred characteristics and as a reply get
a list of children sorted by how well they match parents' criteria.
Class Child should contain following fields: name, sex, age.
Field priority while searching: name, sex, age.
Sex entering: m - male, f - female.
Živana Komlenov: Existing programming teaching materials
24
Lab exercise example
import java.io.*;
class Child {
private String name, sex;
private int age, points;
public Child(String name) {
this.name = name;
sex = "f";
age = 0;
points = 0;
}
public void putAge(int age) {
this.age = age;
}
public void putSex(String sex) {
this.sex = sex;
}
public void putPoints(int points) {
this.points = points;
}
public int getPoints() {
return points;
}
public String getSex() {
return sex;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
Živana Komlenov: Existing programming teaching materials
25
Lab exercise example
public class Parents {
public static void printData(Child[] array) {
for (int i = 0; i < array.length; i++) {
System.out.println(" " + (i+1) + ". " + array[i].getName() + " " +
array[i].getSex() + " " + array[i].getAge() + " " +
array[i].getPoints());
}
System.out.println();
}
public static void scoreChildren(Child[] array, String nameWish,
String sexWish, int ageWish) {
int points = 0, difference = 0;
for (int i = 0; i < array.length; i++) {
if ((array[i].getName()).compareTo(nameWish) != 0) {
points += Math.abs(array[i].getName().length() - nameWish.length())*4;
}
Živana Komlenov: Existing programming teaching materials
26
Lab exercise example
if ((array[i].getSex()).compareTo(sexWish) != 0) {
points += 200;
}
if (array[i].getAge() != ageWish) {
difference = Math.abs(ageWish - array[i].getAge());
points += difference*2;
}
array[i].putPoints(points);
points = 0;
}
}
public static Child[] sortChildren(Child[] array) {
Child[] tempArray = array;
for (int i = 0; i < array.length-1; i++) {
for (int j = i+1; j < array.length; j++) {
if (tempArray[i].getPoints() > tempArray[j].getPoints()) {
Živana Komlenov: Existing programming teaching materials
27
Lab exercise example
Child temp = tempArray[i];
tempArray[i] = tempArray[j];
tempArray[j] = temp;
}
else if (((tempArray[i].getName()).compareTo(tempArray[j].getName()) > 0)
&& (tempArray[i].getPoints() == tempArray[j].getPoints() )) {
Child temp = tempArray[i];
tempArray[i] = tempArray[j];
tempArray[j] = temp;
}
}
}
return tempArray;
}
public static void main(String[] args) throws IOException {
BufferedReader file = new BufferedReader(new InputStreamReader(
new FileInputStream("Names.txt")));
Živana Komlenov: Existing programming teaching materials
28
Lab exercise example
String[] names = new String[10];
String name = file.readLine();
int n = 0;
while (name != null) {
names[n] = name;
name = file.readLine();
n++;
}
BufferedReader input = new BufferedReader(
new InputStreamReader(System.in));
Child[] children = new Child[n];
System.out.println();
System.out.println(" --- Enter sex and age ---");
System.out.println();
for (int i = 0; i < n; i++) {
children[i] = new Child(names[i]);
System.out.println("Name: " + children[i].getName());
System.out.print("Sex (m - male; f - female): ");
Živana Komlenov: Existing programming teaching materials
29
Lab exercise example
children[i].putSex(input.readLine());
System.out.print("Age: ");
children[i].putAge(Integer.parseInt(input.readLine()));
System.out.println();
}
System.out.println(" --- Enter search criteria --- ");
System.out.print("Name: ");
String nameWish = input.readLine();
System.out.print("Sex: ");
String sexWish = input.readLine();
System.out.print("Age: ");
int ageWish = Integer.parseInt(input.readLine());
scoreChildren(children, nameWish, sexWish, ageWish);
Child[] tempArray = sortChildren(children);
System.out.println(" --- Children matching the criteria --- ");
printData(tempArray);
}
}
Živana Komlenov: Existing programming teaching materials
30
Longer examples
• Examples from Novi Sad
– Practical assignments for students passing from old
curriculum to the new one, that had not taken Programming
languages written exam before that, so now they are required
to do some practical work instead.
– Enclosed are several student solutions and just formulations
of other possible assignments.
• Examples from Belgrade (Mathematical Faculty)
– Seminar assignments - different kinds of games, with student
solutions (some of them quite good).
Živana Komlenov: Existing programming teaching materials
31
Additional materials
• Sources:
– Examples from other courses at member
universities that include more complex Java
assignments (currently in Serbian)
– Examples from representative Java textbooks
Živana Komlenov: Existing programming teaching materials
32
DCSE, Faculty of Electrical
Engineering, Belgrade
• Prof. Igor Tartalja
• Course: Object-Oriented Software
– (semester 9, 2 hours/week lecture + 2 hours/week exercises)
– Combining UML modelling and Java implementations
• Contributions (in Serbian):
– Examples from 'Exercises for Object-Oriented Software
Course' (in Serbian), Copyright 2002 by Laslo Kraus
– Relatively complex practical assignments
– Written exams
Živana Komlenov: Existing programming teaching materials
33
DMI, Faculty of Science,
Novi Sad
• Prof. Miloš Racković
• Course: Artificial Intelligence I
– (semester 5, 2 hours/week lecture + 2 hours/week exercises +
1 hours/week lab)
– Basics of artificial intelligence. Knowledge representation.
Searching as a problem solving method. Strategies. Heuristic
procedures. Expert systems.
– Exam: practical + oral
• Contributions (in Serbian):
– Relatively complex practical assignments
Živana Komlenov: Existing programming teaching materials
34
Java textbooks
• Potentially useful Java textbooks, chosen on account of the
variety of neat examples included. Full source code of those has
been collected as additional material.
– ‘Java Software Solutions’, 4th Edition
– ‘Thinking in Java’, 3rd Edition
– ‘Java Gently’, 3rd Edition
– ‘Teach Yourself Java 2 in 21 Days’, 4th Edition
– ‘Effective Java’
– ‘Java Cookbook’
– ‘Java Examples in a Nutshell’, 3rd Edition
Živana Komlenov: Existing programming teaching materials
35
Java Software Solutions
• ‘Java Software Solutions’, 4th
Edition
– John Lewis and William Loftus
– William Loftus is a serial
entrepreneur and author.
– John Lewis is an Associate
Professor of Department of
Computing Sciences, Villanova
University, PA, USA
– Teaching - Fall 2004: CSC 1051 -
Data Structures and Algorithms I
Živana Komlenov: Existing programming teaching materials
36
Thinking in Java
• ‘Thinking in Java’, 3rd Edition
– Free electronic book
– Published by Prentice-Hall,
December 2002
– Bruce Eckel – his company
provides public and private
training and consulting services.
– He has published over 150 articles
and several books.
– Parts of this book are already used
for exercises in Novi Sad.
Živana Komlenov: Existing programming teaching materials
37
Java Gently
• ‘Java Gently’, 3rd Edition
– Addison-Wesley, 2001.
– Judith Bishop, University of
Pretoria, South Africa
– Based on courses given in Java since
1996, and on courses in other
languages presented to first year
science and engineering students
since 1980.
– Over 80 fully worked examples,
together with test data and output.
Živana Komlenov: Existing programming teaching materials
38
Teach Yourself Java 2
in 21 Days
• ‘Teach Yourself Java 2 in 21
Days’, 4th Edition
– Laura Lemay and Rogers
Cadenhead
– Sams, 2004.
– Clear and personable writing
– Extensive use of examples
– Logical and complete
organization
– Covers the latest developments
in Java
Živana Komlenov: Existing programming teaching materials
39
Effective Java
• ‘Effective Java’ Programming
Language Guide
– Joshua Bloch, Senior Staff Engineer
at Sun Microsystems, Inc., in the
Core Java Platform Group.
– Designed and implemented the
award-winning Java Collections
Framework, the java.math package.
– Here he shares 57 "nuggets“ - rules
and code examples showing what
works, what doesn't, and how to use
the language libraries to best effect.
Živana Komlenov: Existing programming teaching materials
40
Java Cookbook
• ‘Java Cookbook’
Solutions and Examples for Java
Developers
– Ian F. Darwin
– O'Reilly, 2001
– Comprehensive collection of
problems, solutions, and practical
examples.
– Short, focused pieces of code that are
easy to incorporate into other
programs. Focus on things that are
useful, tricky, or both.
Živana Komlenov: Existing programming teaching materials
41
Java Examples in a Nutshell
• ‘Java Examples in a Nutshell’, 3rd
Edition
– David Flanagan
– O'Reilly, 2004
– Entire book of real-world Java
programming examples to learn from.
– Covers Java 1.4 and contains 193
complete, practical examples: over
21,900 lines of densely commented,
professionally written Java code,
covering 20 distinct client-side and
server-side APIs.
Živana Komlenov: Existing programming teaching materials
42
Conclusions
• Comparison of example difficulty
– Different approach for first and second (or third) year
courses dictates differences in example choice and dfficulty.
– We should try to make the best of both views and allow
lecturers to use those parts of joint course material they find
suitable for their students.
• Teaching programming vs teaching Java
– For a first-year course, it is no longer sufficient to just teach
a language.
– In addition to explaining syntax and the construction of a
well-formed program, a modern Java course has to include
techniques for problem solving.
Živana Komlenov: Existing programming teaching materials
43
Statistics - current state of
gathered material
• Supporting Java examples
– All collected examples translated and sorted.
• Short exercises
– Written exams - Just several solved examples translated and included (all
available solutions). Texts of a lot of other assignments are mainly still in
Serbian.
– Lab exercises - Texts of all examples included. Only a few student solutions
enclosed (all of those found).
– Practical assignments – Again just several full examples collected.
Formulations of other possible assignments are partly still in Serbian.
• Longer examples
– All collected examples translated and sorted.
– 30% just as formulations of possible assignments.
Živana Komlenov: Existing programming teaching materials
44
Future work
• Work done so far is just a basis for a complete pool of
assignments. It gives us a good starting point, still leaving space
for much more effort and coordinated example collecting and
sorting.
• Only when collected examples start being combined and used,
we shall be able to define the most appropriate division strategy
and ideas for future work.
• Tasks:
– Including all sorts of additional examples.
– Precise programs of lab exercises and practical assignments
for other types of exercises, seminars, etc.
– English versions of all available assignments.
– Local versions later.

More Related Content

Similar to komlenov01.ppt

0. Course Introduction
0. Course Introduction0. Course Introduction
0. Course IntroductionIntro C# Book
 
Yannis Dimitriadis: Interweaving learning and assessment patterns in CSCL scr...
Yannis Dimitriadis: Interweaving learning and assessment patterns in CSCL scr...Yannis Dimitriadis: Interweaving learning and assessment patterns in CSCL scr...
Yannis Dimitriadis: Interweaving learning and assessment patterns in CSCL scr...Yishay Mor
 
The ViTAAL Project
The ViTAAL ProjectThe ViTAAL Project
The ViTAAL ProjectTon Koenraad
 
ABC learning design
ABC learning designABC learning design
ABC learning designJisc
 
Kowledge zoom michelle
Kowledge zoom michelleKowledge zoom michelle
Kowledge zoom michelleRoya Hosseini
 
Resume jim yu
Resume   jim yuResume   jim yu
Resume jim yuJim Yu
 
Presentation Ticheler AULC
Presentation Ticheler AULCPresentation Ticheler AULC
Presentation Ticheler AULCnvticheler
 
New dev math approach for nro cmath posted-nov2013
New dev math approach for nro cmath posted-nov2013New dev math approach for nro cmath posted-nov2013
New dev math approach for nro cmath posted-nov2013trowenhorst
 
Software Radio Course
Software Radio CourseSoftware Radio Course
Software Radio CourseProjectENhANCE
 
Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida
Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,NoidaTeaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida
Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,NoidaDr. Sandeep Kumar Singh
 
Lecture 1: Introduction to the Course (Practical Information)
Lecture 1: Introduction to the Course (Practical Information)Lecture 1: Introduction to the Course (Practical Information)
Lecture 1: Introduction to the Course (Practical Information)Marina Santini
 
051110 Enis Austria
051110 Enis Austria051110 Enis Austria
051110 Enis Austrialearningvillage
 
Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Ivano Malavolta
 
01 computer programming
01 computer programming01 computer programming
01 computer programmingmanish aryal
 
SLanguages2008 Vitaal
SLanguages2008   VitaalSLanguages2008   Vitaal
SLanguages2008 Vitaalslanguages
 
Designing and Developing a Blended Course: Best Practices for Japanese Learners
Designing and Developing a Blended Course: Best Practices for Japanese LearnersDesigning and Developing a Blended Course: Best Practices for Japanese Learners
Designing and Developing a Blended Course: Best Practices for Japanese LearnersParisa Mehran
 
Utilizing Web-based programming learning environment in University teaching
Utilizing Web-based programming learning environment in University teachingUtilizing Web-based programming learning environment in University teaching
Utilizing Web-based programming learning environment in University teachingViope Solutions Ltd
 
A Strong Object Recognition Using Lbp, Ltp And Rlbp
A Strong Object Recognition Using Lbp, Ltp And RlbpA Strong Object Recognition Using Lbp, Ltp And Rlbp
A Strong Object Recognition Using Lbp, Ltp And RlbpRikki Wright
 

Similar to komlenov01.ppt (20)

0. Course Introduction
0. Course Introduction0. Course Introduction
0. Course Introduction
 
Yannis Dimitriadis: Interweaving learning and assessment patterns in CSCL scr...
Yannis Dimitriadis: Interweaving learning and assessment patterns in CSCL scr...Yannis Dimitriadis: Interweaving learning and assessment patterns in CSCL scr...
Yannis Dimitriadis: Interweaving learning and assessment patterns in CSCL scr...
 
The ViTAAL Project
The ViTAAL ProjectThe ViTAAL Project
The ViTAAL Project
 
ABC learning design
ABC learning designABC learning design
ABC learning design
 
Kowledge zoom michelle
Kowledge zoom michelleKowledge zoom michelle
Kowledge zoom michelle
 
Resume jim yu
Resume   jim yuResume   jim yu
Resume jim yu
 
Presentation Ticheler AULC
Presentation Ticheler AULCPresentation Ticheler AULC
Presentation Ticheler AULC
 
New dev math approach for nro cmath posted-nov2013
New dev math approach for nro cmath posted-nov2013New dev math approach for nro cmath posted-nov2013
New dev math approach for nro cmath posted-nov2013
 
Software Radio Course
Software Radio CourseSoftware Radio Course
Software Radio Course
 
Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida
Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,NoidaTeaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida
Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida
 
Java for C++ programers
Java for C++ programersJava for C++ programers
Java for C++ programers
 
Lecture 1: Introduction to the Course (Practical Information)
Lecture 1: Introduction to the Course (Practical Information)Lecture 1: Introduction to the Course (Practical Information)
Lecture 1: Introduction to the Course (Practical Information)
 
051110 Enis Austria
051110 Enis Austria051110 Enis Austria
051110 Enis Austria
 
Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...
 
01 computer programming
01 computer programming01 computer programming
01 computer programming
 
SLanguages2008 Vitaal
SLanguages2008   VitaalSLanguages2008   Vitaal
SLanguages2008 Vitaal
 
Designing and Developing a Blended Course: Best Practices for Japanese Learners
Designing and Developing a Blended Course: Best Practices for Japanese LearnersDesigning and Developing a Blended Course: Best Practices for Japanese Learners
Designing and Developing a Blended Course: Best Practices for Japanese Learners
 
Utilizing Web-based programming learning environment in University teaching
Utilizing Web-based programming learning environment in University teachingUtilizing Web-based programming learning environment in University teaching
Utilizing Web-based programming learning environment in University teaching
 
A Strong Object Recognition Using Lbp, Ltp And Rlbp
A Strong Object Recognition Using Lbp, Ltp And RlbpA Strong Object Recognition Using Lbp, Ltp And Rlbp
A Strong Object Recognition Using Lbp, Ltp And Rlbp
 
OOP Java
OOP JavaOOP Java
OOP Java
 

More from MonishaAb1

css-presentation.ppt
css-presentation.pptcss-presentation.ppt
css-presentation.pptMonishaAb1
 
WHO-MSD-QR-19.2-eng.pptx
WHO-MSD-QR-19.2-eng.pptxWHO-MSD-QR-19.2-eng.pptx
WHO-MSD-QR-19.2-eng.pptxMonishaAb1
 
introduction_OO.pptx
introduction_OO.pptxintroduction_OO.pptx
introduction_OO.pptxMonishaAb1
 
003 OOP Concepts.ppt
003 OOP Concepts.ppt003 OOP Concepts.ppt
003 OOP Concepts.pptMonishaAb1
 
session07.ppt
session07.pptsession07.ppt
session07.pptMonishaAb1
 
chap11.ppt
chap11.pptchap11.ppt
chap11.pptMonishaAb1
 
CS124-L1-OOP.ppt
CS124-L1-OOP.pptCS124-L1-OOP.ppt
CS124-L1-OOP.pptMonishaAb1
 
Every_Mind_Matters_Dealing_with_change_KS34_presentation.pdf
Every_Mind_Matters_Dealing_with_change_KS34_presentation.pdfEvery_Mind_Matters_Dealing_with_change_KS34_presentation.pdf
Every_Mind_Matters_Dealing_with_change_KS34_presentation.pdfMonishaAb1
 
EmbeddedJavaSmall.ppt
EmbeddedJavaSmall.pptEmbeddedJavaSmall.ppt
EmbeddedJavaSmall.pptMonishaAb1
 

More from MonishaAb1 (9)

css-presentation.ppt
css-presentation.pptcss-presentation.ppt
css-presentation.ppt
 
WHO-MSD-QR-19.2-eng.pptx
WHO-MSD-QR-19.2-eng.pptxWHO-MSD-QR-19.2-eng.pptx
WHO-MSD-QR-19.2-eng.pptx
 
introduction_OO.pptx
introduction_OO.pptxintroduction_OO.pptx
introduction_OO.pptx
 
003 OOP Concepts.ppt
003 OOP Concepts.ppt003 OOP Concepts.ppt
003 OOP Concepts.ppt
 
session07.ppt
session07.pptsession07.ppt
session07.ppt
 
chap11.ppt
chap11.pptchap11.ppt
chap11.ppt
 
CS124-L1-OOP.ppt
CS124-L1-OOP.pptCS124-L1-OOP.ppt
CS124-L1-OOP.ppt
 
Every_Mind_Matters_Dealing_with_change_KS34_presentation.pdf
Every_Mind_Matters_Dealing_with_change_KS34_presentation.pdfEvery_Mind_Matters_Dealing_with_change_KS34_presentation.pdf
Every_Mind_Matters_Dealing_with_change_KS34_presentation.pdf
 
EmbeddedJavaSmall.ppt
EmbeddedJavaSmall.pptEmbeddedJavaSmall.ppt
EmbeddedJavaSmall.ppt
 

Recently uploaded

Editorial design Magazine design project.pdf
Editorial design Magazine design project.pdfEditorial design Magazine design project.pdf
Editorial design Magazine design project.pdftbatkhuu1
 
call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...Delhi Call girls
 
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...Call Girls in Nagpur High Profile
 
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdfThe_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdfAmirYakdi
 
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)amitlee9823
 
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...SUHANI PANDEY
 
call girls in Kaushambi (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
call girls in Kaushambi (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...call girls in Kaushambi (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
call girls in Kaushambi (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...Delhi Call girls
 
Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...
Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...
Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...amitlee9823
 
Design Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptxDesign Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptxTusharBahuguna2
 
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...kumaririma588
 
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...babafaisel
 
Pastel Portfolio _ by Slidesgo.pptx. Xxx
Pastel Portfolio _ by Slidesgo.pptx. XxxPastel Portfolio _ by Slidesgo.pptx. Xxx
Pastel Portfolio _ by Slidesgo.pptx. XxxSegundoManuelFaichin1
 
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...BarusRa
 
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️soniya singh
 
Government polytechnic college-1.pptxabcd
Government polytechnic college-1.pptxabcdGovernment polytechnic college-1.pptxabcd
Government polytechnic college-1.pptxabcdshivubhavv
 
Stark Industries Marketing Plan (1).pptx
Stark Industries Marketing Plan (1).pptxStark Industries Marketing Plan (1).pptx
Stark Industries Marketing Plan (1).pptxjeswinjees
 
call girls in Dakshinpuri (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️
call girls in Dakshinpuri  (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️call girls in Dakshinpuri  (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️
call girls in Dakshinpuri (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Brookefield Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Brookefield Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Brookefield Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Brookefield Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...amitlee9823
 

Recently uploaded (20)

Editorial design Magazine design project.pdf
Editorial design Magazine design project.pdfEditorial design Magazine design project.pdf
Editorial design Magazine design project.pdf
 
call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
 
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
 
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdfThe_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
 
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
 
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
 
call girls in Kaushambi (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
call girls in Kaushambi (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...call girls in Kaushambi (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
call girls in Kaushambi (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
 
Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...
Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...
Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...
 
Design Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptxDesign Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptx
 
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...
 
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...
 
Pastel Portfolio _ by Slidesgo.pptx. Xxx
Pastel Portfolio _ by Slidesgo.pptx. XxxPastel Portfolio _ by Slidesgo.pptx. Xxx
Pastel Portfolio _ by Slidesgo.pptx. Xxx
 
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
 
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
 
Government polytechnic college-1.pptxabcd
Government polytechnic college-1.pptxabcdGovernment polytechnic college-1.pptxabcd
Government polytechnic college-1.pptxabcd
 
young call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Service
young call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Service
young call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Service
 
young call girls in Pandav nagar 🔝 9953056974 🔝 Delhi escort Service
young call girls in Pandav nagar 🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Pandav nagar 🔝 9953056974 🔝 Delhi escort Service
young call girls in Pandav nagar 🔝 9953056974 🔝 Delhi escort Service
 
Stark Industries Marketing Plan (1).pptx
Stark Industries Marketing Plan (1).pptxStark Industries Marketing Plan (1).pptx
Stark Industries Marketing Plan (1).pptx
 
call girls in Dakshinpuri (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️
call girls in Dakshinpuri  (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️call girls in Dakshinpuri  (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️
call girls in Dakshinpuri (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️
 
Brookefield Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Brookefield Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Brookefield Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Brookefield Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 

komlenov01.ppt

  • 1. Existing programming teaching materials Section ‘Course: Object-Oriented Programming with Java’ (OOJava) Ĺ˝ivana Komlenov Department of Mathematics and Informatics Faculty of Science University of Novi Sad 4th Workshop “Software Engineering Education and Reverse Engineering” Zagreb, 5 – 12 September 2004
  • 2. Ĺ˝ivana Komlenov: Existing programming teaching materials 2 Goal • Our ultimate goal: Creation of joint teaching material for ‘Course: Object-Oriented Programming with Java’ (OOJava). • As an important part of the whole project special attention should be paid to high quality examples. • Therefore, forming a pool of examples and student assignments has been started. • Work is in progress, so all contributions are still welcome.
  • 3. Ĺ˝ivana Komlenov: Existing programming teaching materials 3 Existing programming teaching materials • Currently 6 Java courses are taught at some of our member universities. • Their examples have been gathered (texts of the examples + source code with comments (any existing versions)), analyzed and sorted in an appropriate way. • The emphasis is not on examples that are directly used during the lecture, but on every other kind of supporting examples (student self-study, assignments, lab exercises, longer examples for seminar/semester papers, ... )
  • 4. Ĺ˝ivana Komlenov: Existing programming teaching materials 4 Division of examples • Principal suggestion was to divide the examples into at least three groups: – Supporting Java examples - extra examples, similar to those presented during the lecture, intended to encourage students' individual experimenting. – Short exercises - for instance, practical assignments, lab exercises, etc. – Longer examples - more complicated tasks, given as seminar assignments, with longer deadlines (up to several months).
  • 5. Ĺ˝ivana Komlenov: Existing programming teaching materials 5 Division comments • However, there is no perfect way to draw the line among these groups, so all suggestions or different concepts of the division are very welcome. • Additionally, we are going through some open - source Internet materials, as well as good textbooks used worldwide in similar courses. • The idea is to collect useful pieces of information and include them in our project.
  • 6. Ĺ˝ivana Komlenov: Existing programming teaching materials 6 Contributors • Institute of Informatics, Humboldt University, Berlin • Department of Mathematics and Informatics, Faculty of Science, University of Novi Sad • Department of Computer Science and Engineering, Faculty of Electrical Engineering, University of Belgrade • Chair of Computer Science, Mathematical Faculty, University of Belgrade • Computer Science and Engineering Department, Faculty of Automation and Computer Science and Engineering, "Politehnica" University of Timisoara
  • 7. Ĺ˝ivana Komlenov: Existing programming teaching materials 7 Institute of Informatics, Humboldt University, Berlin • Prof. Klaus Bothe • Course: Practical Informatics I – First semester course – Last time taught in winter semester 2001/2002 – Computers, algorithms, data, programs, concepts of programming languages, imperative and object-oriented programming, programming techniques, bases of systematic software development – Followed by Java examples
  • 8. Ĺ˝ivana Komlenov: Existing programming teaching materials 8 Institute of Informatics, Humboldt University, Berlin • Contributions: – Java examples used in the lecture, suitable for Supporting Java examples group – Assignments, some included in Short exercises – Java examples used during the exercises, suitable for section Short exercises
  • 9. Ĺ˝ivana Komlenov: Existing programming teaching materials 9 DMI, Faculty of Science, Novi Sad • Prof. Mirjana Ivanović • Course: Programming Languages – (semester 3, 2 hours/week lecture + 1 hours/week exercises + 1 hours/week lab – semester 4, 2 hours/week lecture + 1 hours/week exercises + 2 hours/week lab) – History of programming languages. Basic characteristics of programming languages and most common differences. – Object-oriented methodology: design and programming. Principal elements: classes, inheritance, dynamic binding. Review of some hybrid object-oriented languages.
  • 10. Ĺ˝ivana Komlenov: Existing programming teaching materials 10 DMI, Faculty of Science, Novi Sad – Java. Program structure. Data types, classes and objects. Control and repetitive commands. Structured data types. Methods, class libraries. – Scheme; PROLOG – Exam: practical + oral • Contributions: – Examples from exercises – Lab assignments, some solutions – Written exams, some examples included in Short exercises – Seminar assignments, included in Longer examples
  • 11. Ĺ˝ivana Komlenov: Existing programming teaching materials 11 DMI, Faculty of Science, Novi Sad • Prof. Zoran Budimac • Course: Operating Systems I – (semester 5, 2 hours/week lecture + 2 hours/week exercises + 1 hours/week lab) – History and development of operating systems. Programming languages suitable for OS implementation. Concurrent programming. – Processes. Stages. Implementation. Interprocess communication and synchronization. Process communication. Deadlocks. – Modula-2 and Java examples.
  • 12. Ĺ˝ivana Komlenov: Existing programming teaching materials 12 DMI, Faculty of Science, Novi Sad – Memory management. Physically available internal memory. Virtual memory organization and management. External memory. File systems. – Exam: practical + oral • Contributions: – Java examples from exercises, suitable as one of the last parts of Supporting Java examples – thread synchronization – Practical assignments (some solved with GUI, as applets, etc.), included in Short exercises
  • 13. Ĺ˝ivana Komlenov: Existing programming teaching materials 13 DCSE, Faculty of Electrical Engineering, Belgrade • Prof. Igor Tartalja • Course: Programming Languages and Methods of Programming – (semester 5+6, 2 hours/week lecture + 2 hours/week exercises) – Fifth semester: Concepts of object-oriented software. C++ – Sixth semester: Java. Software portability. Bytecode and JVM. Compilers. Classes and objects. Access control. Constructors. Methods. Parameters. Method overlapping. Garbage collection.
  • 14. Ĺ˝ivana Komlenov: Existing programming teaching materials 14 DCSE, Faculty of Electrical Engineering, Belgrade – Nested classes and packages. Access rights. Packages. Interfaces. Inheritance. – Exceptions. Error detection. Throw command. Exception handling. Try-catch-finally construction. – GUI. Package AWT. Event handling. – No homework, practical assignments, etc. • Contributions: – Many interesting Supporting Java examples from 'Exercises for Programming Languages and Methods of Programming Course' (in Serbian), Copyright 2001 by Laslo Kraus – Written exams, some examples included in Short exercises
  • 15. Ĺ˝ivana Komlenov: Existing programming teaching materials 15 Chair of Computer Science, Mathematical Faculty, Belgrade • Prof. DuĹĄan ToĹĄić • Course: Programming Languages – (semester 5+6, 2 hours/week lecture + 2 hours/exercises) – PROLOG; LISP (Scheme) – Java. Compared to Smalltalk. Basic language elements. Creating applications and applets in Java. – Written exams • Contributions: – Some seminar assignments – games. Ideal for Longer examples.
  • 16. Ĺ˝ivana Komlenov: Existing programming teaching materials 16 CSED, Faculty of Automatics and Computers, Timisoara • Prof. Ioan Jurca • Course: Object-Oriented Programming – (semester 4, 2 hours/week lecture + 2 hours/week lab) – Fundamental concepts of object-oriented programming. Classes and objects: class structure, fields, methods, object creation. – Extending classes, type compatibility, abstract classes. – Interfaces: declaration, extension, working with interfaces. Nested classes and interfaces: static nested types, inner classes. – Exceptions: creating exception types, throw and throws; try, catch, finally.
  • 17. Ĺ˝ivana Komlenov: Existing programming teaching materials 17 CSED, Faculty of Automatics and Computers, Timisoara – Packages: package naming; relation with the directory structure; short overview of standard Java packages. – Concurrent programming (threads): creating threads; thread synchronization. – Graphical User Interfaces: the event model, the AWT package. • Contributions: – Version in Romanian of the material students should use to prepare their lab assignments. There are 12 lessons, each consisting an explanation of a set of concepts, intersperced with Java programs (or program fragments) and ending with the text of one or more assignments (translation in progress).
  • 18. Ĺ˝ivana Komlenov: Existing programming teaching materials 18 Collected examples • Examples used at our member universities, divided as suggested: – Supporting Java examples – Short exercises – Longer examples
  • 19. Ĺ˝ivana Komlenov: Existing programming teaching materials 19 Supporting Java examples • Nice combination of examples from Berlin, Novi Sad and Belgrade (FEE). • Mainly material used in classical exercises or lectures. Partly suitable for lecture slides, but on the other hand there are examples complex enough to be used as part of any sort of exercises. • All examples have been translated to English and sorted by topics they cover.
  • 20. Ĺ˝ivana Komlenov: Existing programming teaching materials 20 Supporting Java examples – Intro – Keyboard – Math – Recursion – Array • Search • Sort – String – File – Object – Inheritance – Time – Interface – Collection – List – Stack – Queue – Error – Exception – Hash – Package • Plane • Figures • LinAlgebra – Tree – Maze – Applet – GUI – Synchronization • Primitives • Graphics • Examples – Supermarket
  • 21. Ĺ˝ivana Komlenov: Existing programming teaching materials 21 Short exercises • Written exams – Several solved examples from Novi Sad and Belgrade (FEE), as well as texts of some more assignments (much more of those are still in Serbian, stored as additional material). • Lab exercises – Examples from Novi Sad, used in fall 2003/2004 when Programming languages course was completely taught for the first time since the new curriculum had been adopted. Some student solutions are enclosed.
  • 22. Ĺ˝ivana Komlenov: Existing programming teaching materials 22 Short exercises • Practical assignments – Mainly examples concerning thread synchronization, again from Novi Sad. – Those assignments were given to students in fall 2003/2004 when Operating systems I course was completely taught for the first time since the new curriculum had been adopted. – They represent typical final assignments, with time limits of approximately 3-4 weeks. – There are some very good student solutions and just formulations of other possible assignments.
  • 23. Ĺ˝ivana Komlenov: Existing programming teaching materials 23 Lab exercise example DMI, Faculty of Science, University of Novi Sad, Serbia and Montenegro Programming Languages, Prof. Mirjana Ivanović Lab exercises: NataĹĄa Ibrajter, 2003/2004 Student: Miroslav Nadj Program Parents should read data from file 'Names.txt'. This file contains names of children available for adoption. After reading all names, program should create instances of Child objects, store them in an array and then allow user to enter sex and age for each child. Future parents should be able to set preferred characteristics and as a reply get a list of children sorted by how well they match parents' criteria. Class Child should contain following fields: name, sex, age. Field priority while searching: name, sex, age. Sex entering: m - male, f - female.
  • 24. Ĺ˝ivana Komlenov: Existing programming teaching materials 24 Lab exercise example import java.io.*; class Child { private String name, sex; private int age, points; public Child(String name) { this.name = name; sex = "f"; age = 0; points = 0; } public void putAge(int age) { this.age = age; } public void putSex(String sex) { this.sex = sex; } public void putPoints(int points) { this.points = points; } public int getPoints() { return points; } public String getSex() { return sex; } public String getName() { return name; } public int getAge() { return age; } }
  • 25. Ĺ˝ivana Komlenov: Existing programming teaching materials 25 Lab exercise example public class Parents { public static void printData(Child[] array) { for (int i = 0; i < array.length; i++) { System.out.println(" " + (i+1) + ". " + array[i].getName() + " " + array[i].getSex() + " " + array[i].getAge() + " " + array[i].getPoints()); } System.out.println(); } public static void scoreChildren(Child[] array, String nameWish, String sexWish, int ageWish) { int points = 0, difference = 0; for (int i = 0; i < array.length; i++) { if ((array[i].getName()).compareTo(nameWish) != 0) { points += Math.abs(array[i].getName().length() - nameWish.length())*4; }
  • 26. Ĺ˝ivana Komlenov: Existing programming teaching materials 26 Lab exercise example if ((array[i].getSex()).compareTo(sexWish) != 0) { points += 200; } if (array[i].getAge() != ageWish) { difference = Math.abs(ageWish - array[i].getAge()); points += difference*2; } array[i].putPoints(points); points = 0; } } public static Child[] sortChildren(Child[] array) { Child[] tempArray = array; for (int i = 0; i < array.length-1; i++) { for (int j = i+1; j < array.length; j++) { if (tempArray[i].getPoints() > tempArray[j].getPoints()) {
  • 27. Ĺ˝ivana Komlenov: Existing programming teaching materials 27 Lab exercise example Child temp = tempArray[i]; tempArray[i] = tempArray[j]; tempArray[j] = temp; } else if (((tempArray[i].getName()).compareTo(tempArray[j].getName()) > 0) && (tempArray[i].getPoints() == tempArray[j].getPoints() )) { Child temp = tempArray[i]; tempArray[i] = tempArray[j]; tempArray[j] = temp; } } } return tempArray; } public static void main(String[] args) throws IOException { BufferedReader file = new BufferedReader(new InputStreamReader( new FileInputStream("Names.txt")));
  • 28. Ĺ˝ivana Komlenov: Existing programming teaching materials 28 Lab exercise example String[] names = new String[10]; String name = file.readLine(); int n = 0; while (name != null) { names[n] = name; name = file.readLine(); n++; } BufferedReader input = new BufferedReader( new InputStreamReader(System.in)); Child[] children = new Child[n]; System.out.println(); System.out.println(" --- Enter sex and age ---"); System.out.println(); for (int i = 0; i < n; i++) { children[i] = new Child(names[i]); System.out.println("Name: " + children[i].getName()); System.out.print("Sex (m - male; f - female): ");
  • 29. Ĺ˝ivana Komlenov: Existing programming teaching materials 29 Lab exercise example children[i].putSex(input.readLine()); System.out.print("Age: "); children[i].putAge(Integer.parseInt(input.readLine())); System.out.println(); } System.out.println(" --- Enter search criteria --- "); System.out.print("Name: "); String nameWish = input.readLine(); System.out.print("Sex: "); String sexWish = input.readLine(); System.out.print("Age: "); int ageWish = Integer.parseInt(input.readLine()); scoreChildren(children, nameWish, sexWish, ageWish); Child[] tempArray = sortChildren(children); System.out.println(" --- Children matching the criteria --- "); printData(tempArray); } }
  • 30. Ĺ˝ivana Komlenov: Existing programming teaching materials 30 Longer examples • Examples from Novi Sad – Practical assignments for students passing from old curriculum to the new one, that had not taken Programming languages written exam before that, so now they are required to do some practical work instead. – Enclosed are several student solutions and just formulations of other possible assignments. • Examples from Belgrade (Mathematical Faculty) – Seminar assignments - different kinds of games, with student solutions (some of them quite good).
  • 31. Ĺ˝ivana Komlenov: Existing programming teaching materials 31 Additional materials • Sources: – Examples from other courses at member universities that include more complex Java assignments (currently in Serbian) – Examples from representative Java textbooks
  • 32. Ĺ˝ivana Komlenov: Existing programming teaching materials 32 DCSE, Faculty of Electrical Engineering, Belgrade • Prof. Igor Tartalja • Course: Object-Oriented Software – (semester 9, 2 hours/week lecture + 2 hours/week exercises) – Combining UML modelling and Java implementations • Contributions (in Serbian): – Examples from 'Exercises for Object-Oriented Software Course' (in Serbian), Copyright 2002 by Laslo Kraus – Relatively complex practical assignments – Written exams
  • 33. Ĺ˝ivana Komlenov: Existing programming teaching materials 33 DMI, Faculty of Science, Novi Sad • Prof. MiloĹĄ Racković • Course: Artificial Intelligence I – (semester 5, 2 hours/week lecture + 2 hours/week exercises + 1 hours/week lab) – Basics of artificial intelligence. Knowledge representation. Searching as a problem solving method. Strategies. Heuristic procedures. Expert systems. – Exam: practical + oral • Contributions (in Serbian): – Relatively complex practical assignments
  • 34. Ĺ˝ivana Komlenov: Existing programming teaching materials 34 Java textbooks • Potentially useful Java textbooks, chosen on account of the variety of neat examples included. Full source code of those has been collected as additional material. – ‘Java Software Solutions’, 4th Edition – ‘Thinking in Java’, 3rd Edition – ‘Java Gently’, 3rd Edition – ‘Teach Yourself Java 2 in 21 Days’, 4th Edition – ‘Effective Java’ – ‘Java Cookbook’ – ‘Java Examples in a Nutshell’, 3rd Edition
  • 35. Ĺ˝ivana Komlenov: Existing programming teaching materials 35 Java Software Solutions • ‘Java Software Solutions’, 4th Edition – John Lewis and William Loftus – William Loftus is a serial entrepreneur and author. – John Lewis is an Associate Professor of Department of Computing Sciences, Villanova University, PA, USA – Teaching - Fall 2004: CSC 1051 - Data Structures and Algorithms I
  • 36. Ĺ˝ivana Komlenov: Existing programming teaching materials 36 Thinking in Java • ‘Thinking in Java’, 3rd Edition – Free electronic book – Published by Prentice-Hall, December 2002 – Bruce Eckel – his company provides public and private training and consulting services. – He has published over 150 articles and several books. – Parts of this book are already used for exercises in Novi Sad.
  • 37. Ĺ˝ivana Komlenov: Existing programming teaching materials 37 Java Gently • ‘Java Gently’, 3rd Edition – Addison-Wesley, 2001. – Judith Bishop, University of Pretoria, South Africa – Based on courses given in Java since 1996, and on courses in other languages presented to first year science and engineering students since 1980. – Over 80 fully worked examples, together with test data and output.
  • 38. Ĺ˝ivana Komlenov: Existing programming teaching materials 38 Teach Yourself Java 2 in 21 Days • ‘Teach Yourself Java 2 in 21 Days’, 4th Edition – Laura Lemay and Rogers Cadenhead – Sams, 2004. – Clear and personable writing – Extensive use of examples – Logical and complete organization – Covers the latest developments in Java
  • 39. Ĺ˝ivana Komlenov: Existing programming teaching materials 39 Effective Java • ‘Effective Java’ Programming Language Guide – Joshua Bloch, Senior Staff Engineer at Sun Microsystems, Inc., in the Core Java Platform Group. – Designed and implemented the award-winning Java Collections Framework, the java.math package. – Here he shares 57 "nuggets“ - rules and code examples showing what works, what doesn't, and how to use the language libraries to best effect.
  • 40. Ĺ˝ivana Komlenov: Existing programming teaching materials 40 Java Cookbook • ‘Java Cookbook’ Solutions and Examples for Java Developers – Ian F. Darwin – O'Reilly, 2001 – Comprehensive collection of problems, solutions, and practical examples. – Short, focused pieces of code that are easy to incorporate into other programs. Focus on things that are useful, tricky, or both.
  • 41. Ĺ˝ivana Komlenov: Existing programming teaching materials 41 Java Examples in a Nutshell • ‘Java Examples in a Nutshell’, 3rd Edition – David Flanagan – O'Reilly, 2004 – Entire book of real-world Java programming examples to learn from. – Covers Java 1.4 and contains 193 complete, practical examples: over 21,900 lines of densely commented, professionally written Java code, covering 20 distinct client-side and server-side APIs.
  • 42. Ĺ˝ivana Komlenov: Existing programming teaching materials 42 Conclusions • Comparison of example difficulty – Different approach for first and second (or third) year courses dictates differences in example choice and dfficulty. – We should try to make the best of both views and allow lecturers to use those parts of joint course material they find suitable for their students. • Teaching programming vs teaching Java – For a first-year course, it is no longer sufficient to just teach a language. – In addition to explaining syntax and the construction of a well-formed program, a modern Java course has to include techniques for problem solving.
  • 43. Ĺ˝ivana Komlenov: Existing programming teaching materials 43 Statistics - current state of gathered material • Supporting Java examples – All collected examples translated and sorted. • Short exercises – Written exams - Just several solved examples translated and included (all available solutions). Texts of a lot of other assignments are mainly still in Serbian. – Lab exercises - Texts of all examples included. Only a few student solutions enclosed (all of those found). – Practical assignments – Again just several full examples collected. Formulations of other possible assignments are partly still in Serbian. • Longer examples – All collected examples translated and sorted. – 30% just as formulations of possible assignments.
  • 44. Ĺ˝ivana Komlenov: Existing programming teaching materials 44 Future work • Work done so far is just a basis for a complete pool of assignments. It gives us a good starting point, still leaving space for much more effort and coordinated example collecting and sorting. • Only when collected examples start being combined and used, we shall be able to define the most appropriate division strategy and ideas for future work. • Tasks: – Including all sorts of additional examples. – Precise programs of lab exercises and practical assignments for other types of exercises, seminars, etc. – English versions of all available assignments. – Local versions later.