Object-Oriented Programming
Overview
Java is an excellent language to introduce object-oriented programming. After commencing with the traditional procedural programming constructs the course moves swiftly onto the object-oriented paradigm. During the course we will cover: the creation of classes, overloading constructors and methods, arrays, polymorphism, encapsulation, the public, protected and private interfaces, inheritance, abstract classes and unit testing.
The course will also introduce elements of software engineering including the waterfall method. The course will also include a lecture on the use of data structures including, stacks, queues, hash tables and lists.
Course Aims
Java will be used to introduce Object Oriented Programming, commencing at an introductory level. The course will cover encapsulation, inheritance, polymorphism, exception handling, unit testing and software engineering.
Course Objectives
-
To introduce Java syntax.
-
To introduce the object-oriented paradigm.
-
To introduce unit testing.
Programme Details
- Java Syntax and Semantics, variables, the program development process.
- Programming constructs, loops and conditionals.
- Classes and objects in Java.
- Extending classes with inheritance.
- Abstract classes, more inheritance and interfaces.
- Exceptions.
- Arrays including multi-dimensional arrays.
- Java Collections.
- Generic Types.
- Unit Testing.
Learning Outcomes
By the end of the course students will be expected to:
-
Understand Java syntax and program design.
-
Understand the object-oriented paradigm.
-
Understand the basic concepts of unit testing in Java.
Development Tools
References
- Java Code Conventions, ~128 KB
- Java Language Specification, ~5.1 MB
- Java SE Development Kit 17 Documentation, ~49 MB
- Java SE Tutorial, ~71 MB
- Tutorial - Introduction to Java programming
- Tutorial - Eclipse IDE
- Tutorial - Eclipse Shortcuts
- Tutorial - Java Debugging with Eclipse
- JDK 17 Documentation
- How to Write Doc Comments
- How to Write Unit Tests
Practice Tasks
Part One (1st semester)
1) Using the Eclipse IDE for Java programming
2) Loops and Conditionals in Java
3) Basic Java Syntax. Strings, Arrays, java.lang.Math
4) Methods and Method Overloading in Java
6) Basic Object-Oriented Programming in Java
Part Two (2nd semester)
7) Object-Oriented Programming: Inheritance
8) Object-Oriented Programming: Method Overriding, Polymorphism
9) Object-Oriented Programming: Advanced Capabilities
10) Java Collections: Lists, Maps, Sets
11) Generics in Java
12) Java Threads: Defining and starting a thread
Classroom Activities