Transcript Slide 1

Object Oriented Programming

Computer Systems Engineering (D2) and Programming (P) 1

Course Responsible and Contact Information

• Jerker Bengtsson – Office • room F207 in the F-Building – E-mail • [email protected]

– Course webpage • www2.hh.se/staff/jebe/oop2007/index.html

2

Course Objectives

• To provide knowledge in object oriented programming techniques • To demonstrate how to improve software development with aspects on efficiency, maintainability, reusability.

• To improve programming skills through practical exercises and labs (using Java) 3

Course Planning

• Lectures – 14 lectures in total • Exercises – 7 instructor assisted (1x2hrs/week) – all related to the lecture material • Course examination – laboratorial exercises (mini programming project) – a written exam at the end 4

Course Litterature

• Book information –

”Object Oriented Software Development in Java: Principles, patterns and framworks”,

Xiaoping Jia,

ISBN 0-321-21073-5

• Additional reading material posted on the course webpage 5

Laboratorial Exercises

• A mandatory programming project • The objective is – to apply and practice OOP techniques – to practice working in ”small” teams – to practice solving a ”larger” programming problem • Project will be graded (F,3,4 or 5) – weights 1/3 of the final grade • To pass (grade 3), you must – Hand in your complete project according to spec.

– Do a small presentation (groupwise) 6

Progression

• Progression from earlier courses – A first course in programming • Primitive types, variables, program control structures, basic I/O, functions, classes etc.

– Algorithms & Data structures • recursion, efficient algorithms for searching & sorting etc, abstract data types and structures like trees, lists etc. – Low-level programming (Computer org.) • Register programming, memory management, implementing hardware drivers, C- /assembly programming 7

Software Development

Requirements analysis In the Software engineering course Design Implementation and unit testing Integration and system testing In this course we relate mostly to these phases Maintenance 8

Software Development

• To be able to handle complex systems, we need good software models • How?

– decompose programs into many small ”modules” – use efficient techniques to put together large programs • Why?

– Modular programs are easier to • understand, and design • implement, test and debug • develop by teams of engineers • maintain • reuse code 9

Course Introduction

• What is Object Oriented Programming?

10