COURSE INFORMATION
Course Title: OBJECT ORIENTED PROGRAMMING
Code Course Type Regular Semester Theory Practice Lab Credits ECTS
CEN 213 B 3 3 0 2 4 5
Academic staff member responsible for the design of the course syllabus (name, surname, academic title/scientific degree, email address and signature) NA
Main Course Lecturer (name, surname, academic title/scientific degree, email address and signature) and Office Hours: Assoc.Prof.Dr. Alda Kika akika@epoka.edu.al , N/A
Second Course Lecturer(s) (name, surname, academic title/scientific degree, email address and signature) and Office Hours: M.Sc. Edlira Cani edcani@epoka.edu.al
Teaching Assistant(s) and Office Hours: NA
Language: English
Compulsory/Elective: Compulsory
Study program: (the study for which this course is offered) Bachelor in Business Informatics (3 years)
Classroom and Meeting Time: N/A
Code of Ethics: Code of Ethics of EPOKA University
Regulation of EPOKA University "On Student Discipline"
Attendance Requirement: N/A
Course Description: Syntax and semantics of programming languages, grammars, design of programming languages, data types, variables, expressions and statements, procedures, recursion, parameter passing, dynamic and static memory management. Functional, logic, and object-oriented programming paradigms. Examples from typical and modern programming languages.
Course Objectives: The main objective of this course is to develop an understanding of the fundamental concepts of object-oriented programming. It covers object-oriented concepts such as classes and objects, encapsulation, abstraction, inheritance, polymorphism, composition, etc. The course aims to teach students the principles and tools to design and implement applications using Java language and object-oriented design and concepts.
BASIC CONCEPTS OF THE COURSE
1 Object-oriented programming paradigm
2 Encapsulation
3 Abstraction
4 Inheritance
5 Polymorphism
6 Abstract classes
7 Interfaces
8 Object-oriented design
9 Applying object-oriented concepts to programming problems using Java language
COURSE OUTLINE
Week Topics
1 Introduction to Java language. The Java Programming Language. Features of Java. Becoming Familiar with Your Programming Environment. Compiling and Running a Program. Analyzing Your First Program. Errors. Algorithm Design. (Horstmann, C.(2017). Java Concepts: Late Objects (pp. 1-22). 3rd edition. Wiley)
2 Fundamental data types. Variables. Variable Declarations. Number Types. Variable Names. Constants. Comments. Numeric Types in Java. Arithmetic Operators . Powers and Roots. Input and Output. Reading Input. The String Type. Concatenation. String Input. Escape Sequences. Strings and Characters. Substrings. The if Statement. The Conditional Operator. Comparing Numbers and Strings. Implementing an if Statement. The switch Statement. (Horstmann, C.(2017). Java Concepts: Late Objects (pp. 32-65). 3rd edition. Wiley)
3 Decisions and Loops. The if Statement. The Conditional Operator. Comparing Numbers and Strings. Implementing an if Statement. The switch Statement. The while Loop. The for Loop.The do Loop. (Horstmann, C.(2017). Java Concepts: Late Objects (pp. 84-101, pp.142-162). 3rd edition. Wiley)
4 Methods. Arrays and Arraylists. Methods as Black Boxes. Implementing Methods. Parameter Passing. Return Values. Methods Without Return Values.Arrays.Declaring and Using Arrays. Array References. Partially Filled Arrays. The Enhanced for Loop. Common Array Algorithms. Declaring Two-Dimensional arrays. Declaring and Using Array Lists.Using the Enhanced for Loop with Array Lists. Copying Array Lists.Array Lists and Methods. Wrappers and Auto-boxing. Using Array Algorithms with Array Lists. Choosing Between Array Lists and Arrays. Horstmann, C.(2017). Java Concepts: Late Objects (pp. 212- 224, pp. 262-308). 3rd edition. Wiley)
5 Objects and Classes I. Object-Oriented Programming. Implementing a Simple Class. Specifying the Public Interface of a Class. The javadoc Utility. Designing the Data Representation. Implementing Instance Methods. Constructors. Overloading. Testing a Class. Problem Solving: Tracing Objects. Object References. Shared References. The null Reference The this Reference.Calling One Constructor from Another. (Horstmann, C.(2017). Java Concepts: Late Objects (pp.375-408). 3rd edition. Wiley)
6 Objects and Classes II. Static Variables and Methods. Problem solving patterns for object data. Managing Properties of an Object. Modeling Objects with Distinct States. Describing the Position of an Object. Packages. Organizing Related Classes into Packages. Importing Packages. Package Names. Packages and Source Files. (Horstmann, C.(2017). Java Concepts: Late Objects (pp.408-421). 3rd edition. Wiley)
7 Inheritance and Interfaces. Inheritance Hierarchies. Implementing Subclasses. Overriding Methods. Calling the Superclass Constructor. Polymorphism. Dynamic Method Lookup and the Implicit Parameter. Abstract Classes. Final Methods and Classes.Protected Access. Object: The Cosmic Superclass. Overriding the toString Method. The equals Method. The instanceof Operator. Interface Types. Defining an Interface. Implementing an Interface. The Comparable Interface. (Horstmann, C.(2017). Java Concepts: Late Objects (pp.437-474). 3rd edition. Wiley)
8 Midterm
9 Input/Output and Exception Handling. Reading and Writing Text Files.Text Input and Output. Reading Words. Reading Characters. Classifying Characters. Reading Lines. Scanning a String. Converting Strings to Numbers. Avoiding Errors When Reading Numbers. Command Line Arguments. Exception Handling. Throwing Exceptions. Catching Exceptions. Checked Exceptions. Closing Resources. (Horstmann, C. (2017). Java Concepts: Late Objects (pp.331-357). 3rd edition. Wiley)
10 Graphical User Interfaces. Frame Windows. Displaying a Frame. Adding User-Interface Components to a Frame. Using Inheritance to Customize Frames. Events and Event Handling. Listening to Events. Using Inner Classes for Listeners. Processing Text Input. Text Fields.Text Areas. Creating Drawings.Drawing on a Component. Ovals, Lines, Text, and Color (Horstmann, C.(2017). Java Concepts: Late Objects (pp.493- 520). 3rd edition. Wiley)
11 Advanced user interface. Layout Management. Choices. Radio Buttons. Check Boxes. Combo Boxes. Laying Out a User Interface. Programming a Working Calculator. Menus. Exploring the Swing Documentation. (Horstmann, C.(2017). Java Concepts: Late Objects (pp.535-561). 3rd edition. Wiley)
12 Object oriented design. Classes and Their Responsibilities. Discovering Classes. The CRC Card Method. Cohesion. Relationships Between Classes Dependency. Aggregation. Inheritance. Using CRC Cards and UML Diagrams in Program Design. Attributes and Methods in UML Diagrams.Multiplicities. Aggregation, Association, and Composition.Printing an Invoice. (Horstmann, C.(2017). Java Concepts: Late Objects (pp.577-600). 3rd edition. Wiley)
13 Java Collections framework. An Overview of the Collections Framework. Linked Lists. The Structure of Linked Lists. The LinkedList Class of the Java. List Iterators. Sets. Choosing a Set Implementation. Working with Sets. Maps. Updating Map Entries. Stacks, Queues, and Priority Queues. (Horstmann, C. (2017). Java Concepts: Late Objects (pp.691-714). 3rd edition. Wiley)
14 Projects presentation
Prerequisite(s): INTRODUCTION TO ALGORITHMS AND PROGRAMMING I
Textbook(s): Java Concepts: Late Objects, 3rd Edition, 2017, Cay Horstmann, Wiley
Additional Literature: Introduction to Java Programming, 11th Edition, 2017, Y. Daniel Liang, Pearson Education
Laboratory Work: yes
Computer Usage: yes
Others: No
COURSE LEARNING OUTCOMES
1 Understand the Object Oriented paradigm and use the concepts of encapsulation, inheritance, polymorphism
2 Understanding the Syntax, Semantics and features of Java Programming Language
3 Understand and use the abstract classes and interfaces
4 Understand and use exceptions, file handling and collections
5 Understand and use object-oriented design and GUI programming
6 Gain ability to apply design and develop object oriented principles in the construction of software systems of varying complexity
COURSE CONTRIBUTION TO... PROGRAM COMPETENCIES
(Blank : no contribution, 1: least contribution ... 5: highest contribution)
No Program Competencies Cont.
Bachelor in Business Informatics (3 years) Program
1 Identify activities, tasks, and skills in management, marketing, accounting, finance, and economics. 3
2 Apply key theories to practical problems within the global business context. 5
3 Demonstrate ethical, social, and legal responsibilities in organizations. 2
4 Develop an open minded-attitude through continuous learning and team-work. 4
5 Integrate different skills and approaches to be used in decision making and data management. 4
6 Combine computer skills with managerial skills, in the analysis of large amounts of data. 5
7 Provide solutions to complex information technology problems. 5
8 Recognize, analyze, and suggest various types of information-communication systems/services that are encountered in everyday life and in the business world. 5
COURSE EVALUATION METHOD
Method Quantity Percentage
Midterm Exam(s)
1
30
Project
1
15
Lab/Practical Exams(s)
3
5
Final Exam
1
40
Total Percent: 100%
ECTS (ALLOCATED BASED ON STUDENT WORKLOAD)
Activities Quantity Duration(Hours) Total Workload(Hours)
Course Duration (Including the exam week: 16x Total course hours) 16 4 64
Hours for off-the-classroom study (Pre-study, practice) 16 2.5 40
Mid-terms 1 6 6
Assignments 3 2 6
Final examination 1 9 9
Other 0
Total Work Load:
125
Total Work Load/25(h):
5
ECTS Credit of the Course:
5
CONCLUDING REMARKS BY THE COURSE LECTURER

This is a fundamental course which requires intensive engagement of students in both theoretical and practical studies.