Object-oriented Programming
Course Description
PURPOSE OF COURSE
Modern object-oriented programming
languages are to be used and it is expected that students will familiarize
themselves with one or more of Python, Java, VB.NET or C#, and will use such
language(s) in the answers to their questions where the expression of an
algorithm is required. Students will not be expected to write perfect working
program code from memory, but should be capable of producing realistic program
code. Answers expressed in the syntax of other programming languages, apart
from those mentioned above, will not be accepted.
Emphasis
will be on the implementation of abstract data structures using objects, with
emphasis on modularity and software design.
OOP concepts: inheritance, encapsulation, polymorphism, overloading,
overriding, classes and objects. Functions/Methods/Actions
EXPECTED LEARNING OUTCOMES
By
the end of the course unit, students should be able to:
- understand
the principles of software engineering with emphasis on the various phases
of the software development life cycle
- understand
the programming environment as defined by compilers, interpreters,
editors, and other system software providing support for the programming
activity
- design
well-structured algorithms and code them in a modern
object-oriented programming language
- understand
object technology and its applications
- explain
the application of a variety of data structures, understand the advantages
and disadvantages of those structures
- design
appropriate structures for a given processing environment; and
- demonstrate
a professional approach and an understanding of the ACS Code of ethics in
relation to the development of software systems
In
particular, a student should be competent in achieving the following using one
or more of the modern object-oriented programming languages specified above:
- applying
intermediate object-oriented programming language skills
- maintaining
the functionality of legacy code programs; and
- maintaining
custom software
- Testing
techniques, importance of echo checking the input data
- Reasons
for using special test files rather than normal data files, design of test
data files
- Documentation
of test data, expected results, actual results; annotation of test run
output
- Use
of interactive debugging facilities; the use of checkpoint facilities,
trace and display output
- Importance
of clear programming style, choice of meaningful data and procedure names,
adequate annotation
- Understand
the use of structured walkthroughs and technical reviews
Installation
- Systems
testing
- User
training and documentation
Maintenance
- Causes
for program maintenance: legislative changes, organisational changes,
systems changes, error correction.
- Management
of the maintenance task.
Programming
standards
- National
and international standards. Organisation standards.
- Understand
the importance of programming standards for consistency in documentation,
language and style. Portability of programs.
- External
documentation. Technical documentation. User documentation.
Programming language
Language
fundamentals:
- Statement
types - input, output, assignment statements, arithmetic and logical
operations, control statements, data types and objects.
Documentation
- Documentation
within a program such as the use of comment statements in the source code
of the chosen language.
Data abstraction