BSc in Computer Science / Бакалавр в Области Компьютерных Наук

Course Details

Course Information Package

Course Unit TitleOBJECT ORIENTED PROGRAMMING
Course Unit CodeACSC382
Course Unit Details
Number of ECTS credits allocated6
Learning Outcomes of the course unitBy the end of the course, the students should be able to:
  1. To describe and explain the principles of object orientation – abstraction, data encapsulation and information hiding, message passing, inheritance and polymorphism and their implementation in Java programming language.
  2. To compare, clearly explain and apply the transition from data types in procedural programming paradigm to abstract data types, from simple variables to classes and instances, from library of functions to packages of classes.
  3. Building ability of students to write programs applying the principles of object orientation in different object-oriented programming languages.
  4. To show practical competence and skills of students to write high quality programs in Java using exception handling mechanism, streams and object serialization.
  5. To show skills for organizing complex programs using built-in classes and packages in Java programming environment.
Mode of DeliveryFace-to-face
PrerequisitesACSC182,ACSC183Co-requisitesNONE
Recommended optional program componentsNONE
Course Contents

The nature of object-orientation: Programming paradigms. The notion of object. Principles of object-oriented programming. Java programming language – characteristics, comparison with other programming languages, JDK installation and use.

Procedural programming elements in Java: data, functions, types, statements, control structures and data structures.

Classes and Objects: Abstraction. Instances, state and behaviour. Constructors. Objects communication by messages.

Packages: Modularity. Reusable components. Namespace. Standard Java packages.

Encapsulation: Information hiding. Data and method access types.

Inheritance: The dual meaning of inheritance. Superclasses and subclasses.. Abstract classes. Interfaces.

Polymorphism: Extensibility, based on building class hierarchy. Static and dynamic binding.

Exception handling: Errors and exceptions. Exception handling in Java.

I/O and Serialization: java.io package, streams and serialization.

Event handling and User interface programming: java.awt and swing for user interface programming.

Applets in Java: Applications and applets. Mechanism of implementing Java applets.
Recommended and/or required reading:
Textbooks
  • C. Thomas Wu, An Introduction to Object-Oriented Programming wit Java, 5th ed., McGraw-Hill, 2006.
References
  • Martin Kalin, Object-Oriented Programming with Java, Prentice-Hall Inc., 2001.
  • Bruce Eckel, Thinking in Java 3rd ed., Prentice Hall, 2003.
  • Kenneth A. Lambert, Martin Osborne, Java – A Framework for Program Design and Data Structures, 2nd ed., Thomson Learning, 2004.
  • Deitel & Deitel, C How to Program. Introducing C++ and Java, 3rd ed., Prentice Hall, 2003.
  • Gary J. Bronson, Object-Oriented Program Development, Using Java. A Class-Centered Approach, Thomson Course Technology, 2006.
  • Java Documentation
Planned learning activities and teaching methodsFor the delivery of the class material, power point presentations are primarily used, along with the whiteboard. The lecture notes, consisting of slides presented in class, and additional material, are made available to the students through the course website. The students have intensive lab work with tests, assignments and homework.
Assessment methods and criteria
Tests15%
Lab and assignments 25%
Final Exam60%
Language of instructionEnglish
Work placement(s)NO

 Печать  E-mail