27
Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics Faculty of Sciences University of Novi Sad, Serbia

Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

Embed Size (px)

Citation preview

Page 1: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

Elective Course OOP II: Creation, Experiences, Students’ Opinions

Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović

Department of Mathematics and InformaticsFaculty of Sciences

University of Novi Sad, Serbia

Page 2: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

2/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Agenda

Introduction

The topics

Assignments and grading

Students’ opinions

Discussions

Page 3: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

3/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Introduction

Object-oriented programming I: existing, mandatory course for all CS students, 3rd semester- Covers OO concepts, the Java language, some Java SE

libraries

Object-oriented programming II: elective course, 4th semester

OOP II is the continuation OOP I, with the focus on advanced Java topics- The main goal was to teach the students practical Java

skills required by the industry

Page 4: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

4/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Agenda

Introduction

The topics

Assignments and grading

Students’ opinions

Discussions

Page 5: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

5/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

The interdependency of topics

New Java 5 lang. features

Enumerations Generics

CollectionsJFC/Swing

OO design

Network programming

Distributed programming

I/O system

Java EE

Threads

Strings

Page 6: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

6/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Topic details (1/5)

New Java 5 language features- Enumerated types. Generics. Autoboxing/Unboxing.

Varargs. Enhanced for loop. Static imports. Annotations. Covariant return types.

Strings in Java- Methods of the String class. Immutability and

performance. StringBuilder. Formatting strings. Regular expressions.

Java enumerated types- Motivation. Writing and using enumerated types.

Enumerations as classes – properties and methods. Inheritance.

Page 7: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

7/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Topic details (2/5)

Generic types in Java- Motivation. Basic usage. Sub-typing. Generic wildcards.

Raw type and legacy code. Java collections framework

- Overview of the JCF. Core collection interfaces. Collection implementations. Element ordering. Comparator and Comparable interfaces. Collection algorithms.

Java threading features- Concepts of concurrency. Thread context switch.

Synchronization techniques – synchronized methods and statements, locks. Concurrent collections. Timers. The liveness property.

Page 8: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

8/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Topic details (3/5)

Creating GUI with JFC/Swing- Overview of the concepts comprising Java-based GUI

applications. Top-level containers. Layout managers. Event-driven programming. Overview of basic Swing components – buttons, labels, etc. Detailed insight into advanced Swing components – lists, tables, and trees.

Customizing JFC/Swing-based GUI- Working with panes of top-level containers. Writing

custom layout managers. Component development. Java 2D.

Page 9: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

9/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Topic details (4/5)

The Java I/O system- Stream basics. I/O streams. Byte streams. Character

streams. The Decorator design pattern. Buffered streams. Useful I/O classes – File, PrintWriter, and Scanner. NIO.

Java network programming- Networking basics. Network addressing in Java.

Uniform Resource Identifiers. TCP sockets. UDP datagrams. Multiplexing.

Distributed programming with Java- Distributed software architectures. CORBA. RMI.

Serialization. Reflection API. Classloaders. Case-study – mobile agents.

Page 10: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

10/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Topic details (5/5)

Java EE pt. 1- Multi-tier software architectures. Overview of the Java

technology. Introduction to Java EE. Java Persistence API. Enterprise JavaBeans.

Java EE pt. 2- Service-Oriented Architectures and web services. Java

Server Faces.

Object-oriented design- UML. Design patterns.

Page 11: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

11/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Agenda

Introduction

The topics

Assignments and grading

Students’ opinions

Discussions

Page 12: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

12/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Assignments and grading

A student could score the maximum of 100 points, attained from:- Practical assignments: 32 points- Theoretical tests: 28 points- The final exam: 40 points

In order to qualify for the final exam, a student needed to attain:- Min. 16 points (50%) from practical assignments- Min. 14 points (50%) from theoretical tests

The passing grade was 55

Page 13: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

13/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Practical assignments

There were 12 practical assignments in total: 5 individual and 7 group

Individual assignments covered the following topics:- Strings in Java (1 point)- Enumerated types (1 point)- Generic types in Java (2 points)- Java collections framework (2 points)- Java threading features (2 points)

Individual assignments were conducted in a computer laboratory, each within a 90 minute timeframe

Page 14: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

14/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Group assignments

For the remaining 7 practical assignments, students were divided into groups of 3 or 4

In order to qualify for group assignments, a student had to attain at least 4 points (50%) from individual assignments

Group assignments covered all the remaining topics, except for the Java I/O system, totaling 24 points

Each group was given the same task description and had to submit the solution within 1 week

Page 15: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

15/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Grading group assignments

Students had to defend submitted solutions, through individual discussions

The total number of points given to a student for each assignment was based on several criteria:- The overall percentage of the problem that had been

solved- The amount of work completed by each student- The level of understanding the student had for his/hers

own code- The level of understanding the student had for the code

programmed by his/hers coworkers- The student’s comprehension of the underlying theory

Page 16: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

16/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Grades

Initially, 53 students enrolled the course 28 students (58%) passed individual assignments 22 students qualified for the final exam

- 42% of the initial number- 79% of those who had passed individual assignments

As of June 2011, 13 students passed the final exam:- 6: 15%- 7: 32%- 8: 23%- 9: 15%- 10: 15%

Page 17: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

17/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Agenda

Introduction

The topics

Assignments and grading

Students’ opinions

Discussions

Page 18: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

18/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Students’ opinions – on topics (1/2) How satisfied were you with

the course topics? How would you describe the

difficulty of topics?

Page 19: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

19/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Students’ opinions – on topics (2/2)

Do you consider the course topics to be valuable for your future profession?

Page 20: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

20/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Students’ opinions – on group assignments

How would you describe the difficulty of group assignments?

Would you rather work on the problems individually, in the computer laboratory?

Page 21: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

21/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Overall positive impressions

“I believe that this course, without superlatives and exaggerations, is one of the most useful courses in our entire education.”

“Only for ambitious programmers, difficult, but very useful. The best course up to this point.” (2nd year student)

“I think we’ve learned a lot of useful stuff that we will be able to employ in the future. The set of chosen topics is phenomenal, difficult, but phenomenal.”

Page 22: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

22/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Overall negative impressions

The number one negative impression: too many assessments of the theoretical knowledge

Also, no chances for improving the score

Poor reactions to the UML and Design patterns topic

“A lot of new, strange, and difficult topics covered very fast. We were expected to do a lot of stuff on our own, which we were not used to.”

“Way too much work for an elective course.”

Page 23: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

23/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Agenda

Introduction

The topics

Assignments and grading

Students’ opinions

Discussions

Page 24: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

24/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Discussions on group assignments Mixed impressions with group assignments

Students were (surprisingly) very honest about the amount of work they have (not) completed

However, in many cases they were not able to divide the work equally

Irresponsible behavior of some students towards other members of their group

Overall, grading group assignments correctly was a difficult task

Page 25: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

25/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Problems with Java EE

A large portion of students were simply not able to setup GlassFish with Eclipse on their home computers

Students had many small problems while working on the Java EE assignments, but from which they were not able to recover on their own

So there were a lot of e-mails exchanged back and forth- A lot of reading of GlassFish-generated exception stack

traces

Page 26: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

26/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Future improvements of the course

Enrich lectures with more practical examples

Reduce the impact of the theoretical tests on the final grade- Currently, it is more than 70%

Update the course with recent developments of Java language and technology

Add new topics?- Automated testing appears to be a good candidate

Page 27: Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics

27/26Elective Course OOP II: Creation, Experiences, Students' Opinions - DAAD WS 2011, Ohrid, MK

Thank You for your attention!

Any questions? Suggestions?