Course SEN 401 | Software Configuration Management and Maintenance | 400 Level | 1st Semester
Course Structure Management of the software configuration management process – organisation context for software configuration management, constraints and guidance for software configuration management process, planning for software configuration management, software configuration management plan, and surveillance of software configuration management; Software configuration identification and software library; Software configuration control – requesting, evaluating and approving software changes, implementing software changes, and deviations and waivers; Software configuration status accounting – software configuration status information and reporting; Software configuration auditing. Key issues in software maintenance – technical issues, management issues, maintenance cost estimation, and software maintenance measurement; Maintenance process – maintenance processes and activities; Techniques for maintenance – program comprehension, reengineering, reverse engineering, migration, and retirement;
Course SEN 402 | Software Engineering Economics | 400 Level | 2nd Semester
Course Structure Software engineering economics fundamentals; lifecycle economics; Risk and uncertainty – goals, estimates and plans, estimation techniques, addressing uncertainty, prioritisation, decisions under risk and uncertainty; Economic analysis methods – for–profit decision analysis, minimum acceptable rate of return, return on investment and capital employed, cost–benefit analysis, cost–effectiveness analysis, break–even analysis, business case, multiple attribute evaluation, and optimisation analysis; Practical considerations – the “good enough” principle, friction – free economy, ecosystems, and offshoring and outsourcing
Course SEN 403 | Software Engineering Project | 400 Level | 1st Semester
Course Structure Determination and negotiation of requirements, feasibility analysis, and process for the review and revision of requirements; Software project planning – process planning, determine deliverables, effort, schedule and cost estimation, resource allocation, risk management, quality management, and plan management; Software project enactment – implementation of plans, software acquisition and supplier contract management, implementation of measurement process, monitor process, control process, and reporting; Review and evaluation – determining satisfaction of requirements, and reviewing and evaluating performance; Closure – determining closure and closure activities; Software engineering measurement – establish and sustain measurement commitment, plan the measurement process, preform the measurement process; and evaluate measurement; Software engineering management tools
Course SEN 404 | Human Computer Interaction | 400 Level | 2nd Semester
Course Structure Introduces the principles of user interface development, focusing on three key areas: (1). Design: How to design good user interfaces, starting with human capabilities and using those capabilities to drive design techniques: task analysis, user-centred design, iterative design, usability guidelines, interaction styles, and graphic design principles. (2). Implementation: Techniques for building user interfaces, including low-fidelity prototypes, Wizard of Oz, and other prototyping tools; input models, output models, model-view-controller, layout, constraints, and toolkits. (3). Evaluation: Techniques for evaluating and measuring interface usability, including heuristic evaluation, predictive evaluation, and user testing
Course SEN 405 | Research Methodology | 400 Level | 1st Semester
Course Structure Foundations of research; problem identification and formulation; research design; qualitative and quantitative research; measurement; sampling; data analysis; Interpretation of data and paper writing; use of encyclopaedias, research guides, handbook etc., academic databases for computer science discipline; use of tools/techniques for research: reference management software, software for detection of plagiarism.
Course SEN 406 | Open Source Software Development and Applications | 400 Level | 2nd Semester
Course Structure Introduces concepts, principles and applications of open-source software. Discusses about opensource software development process. Covers economy, business, societal and intellectual property aspects of open-source software. Obtain hands?on experiences on open-source software and related tools through developing various open source software applications such as mobile applications and Web applications building on existing open-source frameworks and application development platforms.
Course SEN 407 | Software Engineering Professional Practice | 400 Level | 1st Semester
Course Structure Accreditation, certification and licensing, codes of ethics and professional conduct, nature and role of professional societies and software engineering standards, economic impact of software, employment contracts, legal issues, documentation, and trade–off analysis; Group dynamics and psychology – dynamics of working in teams/groups, individual cognition, dealing with problem complexity, interacting with stakeholders, dealing with uncertainty and ambiguity, and dealing with multicultural environments; Communication skills – reading, understanding and summarising, writing, teams and group communication, and presentation skills
Course SEN 408 | Distributed, Parallel and Cloud | 400 Level | 2nd Semester
Course Structure
Course SEN 409 | Software Engineering Security | 400 Level | 1st Semester
Course Structure History and terminology, security mindset, design principles, system/security life–cycle, security implementation mechanisms, information assurance analysis model, disaster recovery, and forensics; Security mechanisms–cryptography, authentication, redundancy, and intrusion detection; Operational issues–trends, auditing, cost/benefit analysis, asset management, standards, enforcement, legal issues, and disaster recovery; Policy–creation of policies, maintenance of policies, prevention, avoidance, incident response (forensics), and domain integration (physical, network, internet, etc.); Attacks – social engineering, denial of service, protocol attacks, active and passive attacks, buffer overflow attacks, and malware; Security domains–security awareness and possible domains; Forensics–legal systems, digital forensics and its relationship to other forensic disciplines, rules of evidence, search and seizure, digital evidence, and media analysis; Security services; Threat analysis model; Vulnerabilities
Course SEN 410 | Software Architecture and Design | 400 Level | 2nd Semester
Course Structure an in-depth look at software design. Continuation of the study of design patterns, frameworks, and architectures. Survey of current middleware architectures. Design of distributed systems using middleware. Component based design. Measurement theory and appropriate use of metrics in design. Designing for qualities such as reliability, performance, safety, security, reusability, etc. Measuring internal qualities and complexity of software. Evaluation and evolution of designs. Basics of software evolution, reengineering, and reverse engineering.
Course SEN 411 | AI and Expert Systems | 400 Level | 1st Semester
Course Structure The evolution of computing, defining artificial intelligence, general problem-solving approaches in artificial intelligence, characteristic requirements for the realisation of intelligent systems, programming languages for artificial intelligence and architecture for artificial intelligence machines. The psychological perspective of cognition; production systems; problem solving by intelligent search; the logic proposition and predicates; default and non-monotonic reasoning. Structural approach to knowledge representation, the nature and goals of soft computing. The nature of expert systems; types of applications of expert systems; relationship of expert systems to artificial intelligence and to knowledge–based systems; distinguishing features of expert systems; theoretical foundations; basic forms of inference; the representation and manipulation of knowledge in a computer; rule-based representations; logic-based representations; frames; semantic and partitioned nets; basic components of an expert system; generation of explanations; handling of uncertainties; truth maintenance systems; expert system architectures; an analysis of some classic expert systems; building expert systems; methodologies for building expert systems: knowledge acquisition and elicitation, formalisation, representation and evaluation; knowledge engineering tools; expert systems paradigms.
Course SEN 412 | Special Topics in Software Engineering | 400 Level | 2nd Semester
Course Structure Recent topics and developments in software engineering are expected to be introduced from year to year. Apart from seminars to be delivered by lecturers or guests, students are expected to do substantial readings on their own.
Course SEN 413 | Engineering Mobile Applications | 400 Level | 1st Semester
Course Structure Introduction to developing mobile applications, beginning with mobile operating systems capabilities and application architecture and extending to major components, such as activities, services, broadcast receivers, etc. Development of interactive applications using widget libraries, web-based services, animation, an SQL database engine, and multithreading.
Course SEN 414 | Fault–Tolerant Computing | 400 Level | 2nd Semester
Course Structure Introduction and overview of fault tolerant schemes; fault and error modelling; test generation and fault simulation; concepts in fault-tolerance; reliability/availability modelling; system level diagnosis; low level fault-tolerance – coding techniques (basic principles, parity bit codes, hamming codes, error detection and retransmission codes, burst error correction codes, Reed-Solomon codes, etc.); high-level fault tolerant techniques in systems: rollback, check pointing, reconfiguration; software fault-tolerance; fault tolerant routing; integrated hardware/software fault-tolerance; redundancy, spares and repairs – apportionment, system versus component redundancy, parallel redundancy, RAID system reliability, N-modular redundancy; software reliability and recovery techniques, network system reliability, reliability optimisation.
Course SEN 415 | Embedded Systems | 400 Level | 1st Semester
Course Structure Introduction to embedded computing and embedded systems; typical embedded systems – core of the embedded system, memory, communication interface; embedded firmware; embedded real–time operating systems; real–time operating systems–based embedded system design; task communications and synchronisation.
Course SEN 416 | Game Design and Development | 400 Level | 2nd Semester
Course Structure The course covers game development history, platforms, goals and genres, player elements, story and character development, gameplay, levels, interface, audio, development team roles, game development process, and marketing and maintenance. Students will play games, analyse them, and complete portions of game designs with appropriate documentation.
Course SEN 418 | Modelling and Computer Simulation | 400 Level | 2nd Semester
Course Structure Introduction to simulation concepts, introduction to models, problem formulation, project planning, system definition, input data collection and analysis, modelling translation, verification, validation, experimental design, analysis, project reports and presentations, training simulators.
Course SEN 499 | Final Year Student's Project | 400 Level | 1st Semester
Course Structure An independent or group investigation of appropriate software, hardware, communication and networks or IT related problems in Software Engineering carried out under the supervision of a lecturer. Before registering, the student must submit a written proposal to the supervisor to review. The proposal should give a brief outline of the project, estimated schedule of completion, and computer resources needed. A formal written report is essential and an oral presentation may also be required.