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

Slides:



Advertisements
Similar presentations
IVANA NIŽETIĆ Faculty of Electrical Engineering and Computing, University of Zagreb, Croatia Long-lasting teaching materials in spite of changing technology.
Advertisements

OBJECT ORIENTED PROGRAMMING M Taimoor Khan
Goran Šuković, University of Montenegro 1/21 Compiler Construction Course at University of Montenegro 7 th Workshop on “Software Engineering Education.
Introduction To System Analysis and Design
OOP in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
CMSC 132: Object-Oriented Programming II
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
Executable XML Present by 吳昆澤. Outline  Introduction  Simkin  Jelly  o:XML  Conclusion.
BORIS MILAŠINOVIĆ FACULTY OF ELECTRICAL ENGINEERING AND COMPUTING UNIVERSITY OF ZAGREB, CROATIA Experiences after three years of teaching “Development.
Programming Languages Structure
Course Map The Java Programming Language Basics Object-Oriented Programming Exception Handling Graphical User Interfaces and Applets Multithreading Communications.
Final Overview Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
OOP in Java Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Principles of Procedural Programming
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
Sadegh Aliakbary Sharif University of Technology Fall 2011.
New experiences with teaching Java as a second programming language Ioan Jurca “Politehnica” University of Timisoara/Romania
Introduction To System Analysis and design
Modern concepts of programming - Course presentation - Prof. Dr Dragan Jankovic.
Introduction 01_intro.ppt
Object Oriented Programming CEN 221. Course Description Classes, objects, inheritance, polymorphism, graphical user interfaces, event handling, exception.
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
CSC 113 Java Programming II
Sadegh Aliakbary Sharif University of Technology Fall 2010.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
An analysis of exam results in the Object-Oriented Programming course at „Politehnica” University of Timisoara Ioan Jurca.
Technical Programming Option Presentation 2015 Mirela Gutica.
Ranga Rodrigo. The purpose of software engineering is to find ways of building quality software.
Sadegh Aliakbary Sharif University of Technology Fall 2012.
ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department.
Introduction To System Analysis and Design
7th Workshop SEERE, Risan, 8-15 September, "New Java course material and available pool of.ppt presentations" D. Pešović, M. Ivanović, Ž. Komlenov.
Module Overview n Module Title: OO Programming n Module Code: MIT3446 n Module Value: 3.0 n Duration: 15 weeks n Class-Contact Hours: Lecture15 hrs n Lab/Tutor30hrs.
Selected Topics in Information Technology Programming Language - JAVA Semester 1/2554.
1. Introduction Adaptive hypermedia & AHyCo Algorithms and Data Structures course materials in AHyCo Knowledge assessment with AHyCo Conclusion and further.
1-1 C Sc 335 Course Overview Object-Oriented Programming and Design Rick Mercer.
1 Chapter 8 – Classes and Object: A Deeper Look Outline 1 Introduction 2 Implementing a Time Abstract Data Type with a Class 3 Class Scope 4 Controlling.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
10/5/2009 These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
Teaching the simulator design in Java Zaharije Radivojević, Miloš Cvetanović 11th Workshop “Software Engineering Education and Reverse Engineering” Ohrid,
Lecture 10 Concepts of Programming Languages Arne Kutzner Hanyang University / Seoul Korea.
GUIs Graphical User Interfaces. Everything coming together Known: – Inheritance – Interfaces – Abstract classes – Polymorphism – Exceptions New: – Events.
Object-Oriented Programming Chapter Chapter
Source Mastering UML with Rational Rose 2002 Information System Engineering Introduction to UML.
Object Oriented Programming (FIT-II) J. H. Wang Jan. 31, 2008.
Introduction Mehdi Einali Advanced Programming in Java 1.
Source Mastering UML with Rational Rose 2002 Information System Engineering Introduction to UML.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Object-Oriented Programming Course Introduction Svetlin Nakov Technical Trainer Software University
J AVA T RAINING IN A HMEDABAD By TOPS Technologies 1 TOPS Technologies Java Course.
1 Welcome Alireza Humber College Lecture 1 Game 540 Alireza
CSE 310 Object Oriented Programming Summer 2016 Suraiya Tairin.
Spring 2008 Mark Fontenot CSE 1341 – Honors Principles of Computer Science I Note Set 1 1.
CSCI/CMPE 4334 Operating Systems Review: Exam 1 1.
JAVA TRAINING IN NOIDA. JAVA Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented and specifically.
Mind Q Systems Leader s In Training /7, 2nd Floor, Srinivasa Nagar Colony (W) Above HDFC Bank, S.R. Nagar Hyderabad Tel: /92.
CSC207 Fall 2016.
CSc 020: Programming Concepts and Methodology II
Computer Application in Engineering Design
Object-Orientated Programming
CMPE419 Mobile Application Development
Introduction to Programming 2
Advanced Programming Fall 2017.
Java Programming Course
SE-1021 Software Development 2
CMPE419 Mobile Application Development
Template for Presentation (feel free to customize look)
Presentation transcript:

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

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

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 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

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

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

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

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

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

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