Mastering fundamental programming and problem solving skills necessary to develop an understanding of Object Oriented Programming
The aim of this module is to provide students with the fundamental programming and problem solving skills necessary to develop an understanding of Object Oriented Programming. It will also introduce fundamental data structures and algorithms used in Computational systems. This knowledge will serve as a foundation for future taught modules. Focus on Object Oriented Design will be delivered through the use of core worked examples that will be built upon throughout lab-based sessions.
- Java Fundamentals
- Introduction to data types, identifiers, variable declarations, constants, comments, program output and simple arithmetic - operations.
- Programming style conventions.
- Decision Structures
- Relational operators/expressions
- Control the flow of a program with if /switch statements and conditional/logical operators
- Comparing Objects and primitive types
- Control Structures & Files
- Control structures
- Counters, accumulators, running totals, sentinels and other application/related topics are explored
- Basic read/write file operations
- Methods
- Explore the various ways of writing methods
- Functional decomposition
- Classes
- Class fields/methods, constructors, overloading, packages and imports.
- Static method/fields, interaction between objects, passing objects as arguments and returning objects.
- Aggregation and enumerated types
- Garbage collection
- Input Processing
- Introduction to wrapper Classes
- Character Class, String Methods, tokenizing Strings
- Wrapper Classes for numeric data
- Inheritance
- Chains of inheritance
- The Object class
- Polymorphism
- Abstract Classes/Methods
- Exceptions Handling
- Handling Exceptions
- Throwing Exceptions
- Polymorphism
- Implementing basic data structures
- Linked Lists
- Stack
- Queue
- Implementing simple algorithms
- Simple search algorithms
- Understanding the performance of data structures and algorithms
- Creating professional reports communicating technical details of object oriented software and the data structures and algorithms underpinning it
- Using IDEs for software development