Presentation is loading. Please wait.

Presentation is loading. Please wait.

Boris Milašinović Faculty of Electrical Engineering and Computing University of Zagreb, Croatia 15th Workshop on "Software Engineering Education and Reverse.

Similar presentations


Presentation on theme: "Boris Milašinović Faculty of Electrical Engineering and Computing University of Zagreb, Croatia 15th Workshop on "Software Engineering Education and Reverse."— Presentation transcript:

1 Boris Milašinović Faculty of Electrical Engineering and Computing University of Zagreb, Croatia 15th Workshop on "Software Engineering Education and Reverse Engineering", 23-30 August 2015, Bohinj, Slovenia

2 Brief history of OOP course at FER Present position of OOP course Course topics Assesment methods Future of OOP course 2

3 1998 – 2006 as an elective course in the 9th semester (C++) Dropped out during the implementation of the Bologna declaration CMU removed OOP from mandatory curriculum in 2011. Had we been visionaries? Dropped out due to two reasons Lack of resources Intention to be replaced with several other courses targeting various aspects of the object-oriented paradigm Problem: Repetition of few basic OOP lectures in several courses without any depth Many years of fierce battle to correct a mistake and return OOP to curriculum 3

4 2014/2015: Elective (additional) course at 3rd and 5th semester available to all students 297 students enrolled more than 80 widthrawn before midterm exam 137 passed the course 2015/2016 – mandatory course at 3rd semester of Computing study expecting cca 300 students 60 study hours of lectures, 15 hours of labs Java 8 chosen as a language Start with old constructs but use modern features after e.g. lambda expressions, streams 4

5 Introduction and basic principles Java programming language. Programming tools. Command line tools. Abstraction. Encapsulation. Classes and objects. Static members. Access modifiers. Nested and anonymous classes. Constructors. Class relationships. Memory management and garbage collectors. Inheritance. Polymorphism. Abstract classes. Interfaces. Introduction to design patterns. Exceptions. Files and streams. Collections. Basics of collections, sets, lists, maps. Other collections. General collection algorithms. Simple and complex comparators. Generics. Introduction to multithreading: basics, working with thread pools. Events. GUI. Basics, windows, layout. Simple graphical components. Menus. Development and use of custom graphical components. User interfaces and multithreading. Program testing. Program performance analysis. 5

6 Introduction and basic principles not of any use, just losing few hours delaying the first homework Introduction to design patterns. Not enough time (and need) for all patterns Out of context Shoud be mentioned that it is a pattern when occurs Introduction to multithreading: basics, working with thread pools. Events. GUI. Basics, windows, layout. Simple graphical components. Menus. Development and use of custom graphical components. User interfaces and multithreading. Simple GUI -> Threading -> GUI 6

7 Java programming language. Java as a machine independent platform. Programming tools. Command line tools. Coding conventions. Refactoring. Abstraction. Encapsulation. Classes and objects. Static members. Access modifiers. Constructors. Class relationships. Inheritance. Polymorphism. Abstract classes. Interfaces. Nested and anonymous classes. Exceptions. Files and streams. Collections. Basics of collections, sets and implementations, lists and implementations. Maps. Other collections. General collection algorithms. Generics. Simple and complex comparators. Development of applications with graphical user interface. Basics, windows, visual component layout and supporting managers. Simple graphical components. Introduction to multithreading and multithreaded applications: basics, thread pools. Components for complex data display: models and views. Menus. Development and use of custom graphical components. User interfaces and multithreading. Program testing. Program performance analysis. 7

8 2014/15: Labs: 40%, mid-term exam 30%, final exam 30% Labs were used to show accumulated homework Students feel homework was hard but like it because that think it is the way to learn Java/OOP Demand for more points for labs Inital idea of writing exams on computes (in labs or own laptops) discarded due to power supply problems  Received many critics for written exams 2015/16 Labs: 50%, mid-term exam 25%, final exam 25% 8

9 Future (2019 ? - ) depends on FER policy Probably in 2nd or 3rd semester Shoud electrical engineers learn OOP? And in which extent Should we learn Algorithms and Data Structures before, after or simultaneusly with OOP? 9


Download ppt "Boris Milašinović Faculty of Electrical Engineering and Computing University of Zagreb, Croatia 15th Workshop on "Software Engineering Education and Reverse."

Similar presentations


Ads by Google