1. SOFTWARE DEVLOPMENT EXPERIENCE
1 | P a g e o f 2
Java Programming
Historical development of computer programming languages. The differences
between procedural programming and object oriented programming. The concept of
an object. Objects in the Java programming language. Classes, sub classes,
message passing, polymorphism. The construction of ‘simple’ computer programs in
the Java programming language.
Java Collection framework including - Lists, Sets, Queues, Maps, Sorting, Searching.
Recursion, Threads, Advanced Exceptions handing, Events. Programming to an
interface. Unit Testing / TDD. Generics.
Databases
Relational Databases (relational model, basic, intermediate and advanced SQL,
formal relational query languages, database access from a programming language
(e.g. Java). Database Design (database design process, Entity-Relationship model,
relational database design using E-R model). Formal Approaches to Relational
Database Design (normalization theory, dependency theory). Advanced Topics on
Modern Data Management (data extraction, mining, integration).
Software Engineering
Introduction to software engineering including, requirements analysis, specification,
Object-Oriented Design: UML, implementation issues, maintenance, software
testing, software metrics, iterative development.
Web and Mobile Application Development
Android Application: Semantic Elements, Location and Sensor Management, Data
Access, Storage Capability, User Interface.
Mobile Web Development: Web Design Practice, Web Design Principles, Service
Oriented Architecture.
2. SOFTWARE DEVLOPMENT EXPERIENCE
2 | P a g e o f 2
Software Testing & Verification
Software Systems Context (Causes of Software Defects, Role of Testing in Software
Development, Maintenance and Operations, Testing and Quality), Seven Testing
Principles (Fundamental Test Process, Test Planning and Control, Test Analysis and
Design, Test Implementation and Execution, Evaluating Exit Criteria and Reporting,
Test Closure Activities), Software Development Models (Sequential Development
Model, Iterative-incremental Development Models, Testing within a Life Cycle
Model), Test Levels (Component Testing, Integration Testing, System Testing,
Acceptance Testing), Test Types (Functional Testing, Non-functional Testing,
Structural Testing, Re-testing and Regression Testing, Maintenance Testing),
Review Process (Roles and Responsibilities, Types of Reviews, Success Factors),
Categories of Test Design Techniques (Specification-based or Black-box
Techniques - Equivalence Partitioning, Boundary Value Analysis, Decision Table
Testing, State Transition Testing, Use Case Testing, Structure-based or White-box
Techniques - Statement Testing and Coverage, Decision Testing and Coverage),
Test Management, Test Organization, Test Planning and Estimation, Tool Support
for Testing.
Individual Software Development Project
A project requiring the construction of a software system (specification, user
interface design, system design, realization of system design and associated
testing)
A three-tiered web based application designed in Visual Studio using C# which
collated student attendance rates within CS Lectures and displayed these in a
simplistic, dashboard-style interface.