Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
(ZNDU)
Degree Profile of
Bachelor of Science Honours Degree in Software Engineering
Level: ZQF–Level 8
Period of reference:
To develop knowledge, skills and competences in the field of Software Engineering relevant to
various employment capabilities and careers in the modern software industry. To prepare students
for further studies and lifelong learning in software engineering and in line with modern software
engineering standards.
Entry Requirements:
Prospective students must satisfy the minimum entry requirements specified in the general
academic regulations and Faculty of Engineering regulations.
An applicant should have the following:
a. At least 2 ‘A’ Level passes in Physics, Mathematics and either Chemistry or
Computer Science.
b. At least Five ‘O’ level passes including English Language, Mathematics and
Science plus an HND and 2 years post HND experience.
c. At least Five ‘O’ level passes including English Language, Mathematics and
Science plus a relevant National Diploma and 5 years post ND experience.
Programme Characteristics
Specialist Focus: Software Engineering with special focus on software product design,
manufacture and applications.
Orientation: Key components mandatory to ISO standard and SEI standards for software
engineers are covered in the programme. Teaching and learning to be
professionally oriented and focus on both the design, practical hands-on
aspects and innovation.
Further Studies: Master’s and Doctoral studies in Software Engineering and Technology or
interdisciplinary programmes related to Software Science/engineering.
Programme Delivery
Teaching and Lectures, tutorials, laboratory classes, seminars, group work, industrial
Learning visits, Work Related Learning, research project, individual independent
Methods: study.
Programme Competences
Generic:
· Multidisciplinarity: Ability to draw appropriately from multiple academic disciplines to
define and solve problems based on understanding of complex phenomena.
· Quantitative and innovative reasoning: Capability to draw from the environment and use
analytics for informed decision making and strive to seek new ways of doing things.
· Communication skills: Ability to communicate effectively and to present information
orally and in writing and using ICTs to both expert and non-expert audiences.
· Analysis and synthesis: Capacity for analysis and synthesis using logical arguments and
proven facts.
· Ethical commitment: Professional integrity and awareness of impact of science and
technology on society and the environment.
· Entrepreneurial skills: Capability to identify and create new business ventures based on
knowledge and new thinking paradigms.
Discipline specific:
· Deep knowledge: Ability to analyse software systems and engineering phenomena in terms
of underlying scientific principles and knowledge and by means of appropriate technological
methods.
· Professional: Ability to design and implement software in related tasks and professional
procedures/practices for a competitive and profitable software industry/sector.
· Technology development skills: Ability to develop new technologies across the software
engineering value chain with a view to enhance efficiencies.
· Problem-solving skills: Ability to solve a wide range of engineering problems in software
related domains by identifying their fundamental aspects and using both theoretical and
experimental methods.
· Analytical and computational skills: Ability to use data to analyse software engineering
phenomena and technological issues using appropriate IT packages.
As a basic step toward providing curriculum guidance, the following set of outcomes for
an undergraduate curriculum has been identified. This is intended as a generic list that
could be adapted to various software engineering program implementations. Although
emphasis is placed on knowledge and skills related to software engineering, an
undergraduate curriculum should of course enable a student to analyze and synthesize
these elements as appropriate.
Graduates of an undergraduate SE program should be able to demonstrate the following
qualities.
[Professional Knowledge] Show mastery of software engineering knowledge and
skills and of the professional standards necessary to begin practice as a software
engineer.
Students, through regular reinforcement and practice, need to gain confidence in their
abilities as they progress through a software engineering program of study. In most
instances, students acquire knowledge and skills through a staged approach in which
they achieve different levels as each academic term progresses. In addition, graduates
must have an understanding and appreciation of professional issues and standards
related to ethics and professional conduct, economics, and societal needs.
[Technical Knowledge] Demonstrate an understanding of and apply appropriate
theories, models, and techniques that provide a basis for problem identification and
analysis, software design, development, implementation, verification, and
documentation.
Software engineering employs concepts that are unique to the nature of software and
its development and also draws others from a range of reference disciplines. Students
should both be aware of these concepts and of their limitations, whether inherent or
arising from their adaptation to software engineering. Students should be able to
evaluate and reflect on the processes that they follow as well as upon the solutions
that they produce.
[Teamwork] Work both individually and as part of a team to develop and deliver
quality software artifacts.
Students need to perform tasks that involve working as an individual, but also
experience many other tasks that entail working with a group. For group work,
students should be informed about the nature of groups and of group activities and
21
roles as explicitly as possible. This must include an emphasis on the importance of
such matters as a disciplined approach, adhering to deadlines, communication, and
STRUCTURE OF PROGRAMME
Course structure
· The course design is influenced by the objective to equip all students with the basics of the Software
industry.
· The minimum duration of the Bachelor of Science Honours degree in Software Engineering shall be
8 semesters.
· The programme is taught and examined at 4 levels of study, which is completed over four calendar
years inclusive of an industrial attachment.
· To successfully complete the programme, a student must accumulate a minimum of 510 credits
· A student may not carry more than 2 previous semester courses to a higher level.
· All students must successfully complete a period of industrial attachment of at least 6 months to be
covered over 2 semesters.
· Industrial attachment should have been passed before a student can register for the final year of
study.
· All students are expected to register with a relevant Engineering Professional Body.
· At levels 3 and 4 of the academic study, a student shall undertake a project or projects worth 24 and
30 credits respectively, and submit project reports for assessment before the date specified by the
Departmental Board, failure of which will lead to a penalty being imposed.
· A student cannot be allowed to graduate without passing at least all core courses and a prescribed
number of elective courses as defined in these regulations.
· A student who fails a required optional course may repeat that course or take an equivalent course
specified in the regulations.
· Repeat courses take priority over any other courses should there be a clash on the timetable.
· No supplementary examinations.
EXAMINATIONS
End of course examinations shall be in accordance with the General Academic Regulations.
Unless specified otherwise in the course outlines, a written examination of a course is of 3 hours duration.
ASSESSMENT OF COURSES
Assessment of a Course shall include the mark of the examination as well as the continuous assessment
mark in that Course. Normally, the continuous assessment shall contribute between 20% and 33% of the
overall mark as determined at the beginning of the course by the examiners concerned. A student who
attains a mark less than 40% in the continuous assessment fails the course.
INCOMPLETE: PENDING means that the profile of results for the student is incomplete and no final
decision can be made at that point in time.
PASS: PROCEED shall apply to a student who has passed all the required Level 1 or Level 2 or Level
3 courses as stipulated in these regulations.
INCOMPLETE: PROCEED shall apply to a student who has failed not more than 2 courses at that
level.
INCOMPLETE: REPEAT FAILED COURSES shall apply to a student who fails at least 3 courses at
Level 2 or Level 3 or Level 4 in a given academic year or a student who fails any course(s) on a
second or subsequent sitting.
WITHDRAW: In an academic year, a student may be required to withdraw from the programme in
accordance with the General Academic Regulations where a student is unlikely to complete because he
will be timed out.
DISCONTINUE: A student may be required to discontinue from the programme in accordance with
the General Academic Regulations after 3 years of unsuccessful completion of Level 1.
Semester 1.2
Semester 2.1
DSE 201 Logic Design and Switching Circuits 12
DSE 202 Advanced Database Design 12
DSE 203 Software Engineering 12
DMT 203 Engineering Mathematics III 12
DAE 211 Object Oriented Programming 12
DSE 204 Operating Systems 12
Semester 2.2
DSE 205 Software Architecture 12
DSE 206 Data Communication and Networks 12
DSE 207 Systems Analysis and Design 12
DSE 208 Research Methods + 12
DSE 209 Project 1 24
LEVEL III
Semester 3.1
Industrial Attachment 60
Semester 3.2
Industrial Attachment 60
LEVEL IV
Semester 4.1
Semester 4.2
Optional Courses:
Computer Graphics
Application of Database Systems
Computer Networks
Numerical Analysis
VLSI Design
Formal Languages
Visual Programming
Computer Aided Design and Manufacturing
Microprocessors, Microcontrollers and Interfacing
Business Management for Scientists
Introduction to Parallel Processing
SYNOPSES
This course equips students with the fundamental knowledge of computer components, their functions
and how they are interconnected. In the course, the functions and the design of the various computer
functional units will be discussed. These concepts will help students to get some idea about Computer
Organization and Architecture. The course will basically be dealing with the operational units of the
computer and how they are interconnected using their architectural specifications. The course covers
hardware (e.g mouse, keyboard, screen, printers, CPU, scanners) and software (e.g MS office application
software, Windows, Unix, Linux) that are used in different application areas. The course broadly covers
System Architecture and Design, Data Representation and Logic, Micro architecture (computer
organization), Instruction Set Architecture (ISA).
Contact Hours
Learning Objectives
Having successfully completed this course, the student will be able to:
· Identify and analyze the gate symbols for the Boolean operations AND, OR, NOT and XOR.
· Explain how the control unit of the Central processing unit interprets machine level
instructions.
DMT 101 Engineering Mathematics 1
Introduction to real numbers. Real sequences. Functions: algebraic, exponential and trigonometric
functions and their inverses. Limits, continuity and derivatives. Rules for differentiation. Main theorems
of the differential calculus. L'Hôpital's rule. Applications of derivatives.
Anti-differentiation: all basic methods. Definition of the integral, Riemann sums and fundamental
theorem of calculus. Improper integrals. Applications of integration. Plane polar and 3-dimensional
coordinates. Computer laboratory using MAPLE symbolic computation software to illustrate concepts
and solve problems in calculus. Linear Algebra: Vectors in 2, 3 and higher dimensions; geometric
applications. Linear systems of equations. Matrices: matrix algebra, inverses and determinants. Solution
of matrix equations. Integers: GCD, LCM, division algorithm, integers modulo n, RSA encryption.
Complex numbers, arithmetic, powers and roots. Fundamental theorem of algebra and solution of
polynomial equations.
Introduction to vector spaces. Subspaces, bases and dimension. Linear transformations and matrix
representations. Eigenvalues, eigenvectors and diagonalization of matrices. Inner products; Gram-
Schmidt process. An introduction to mathematical proofs and propositional logic is given throughout the
course.
Contact Hours
Lecture Time: 48 hours
Tutorials 12 hours
Learning Objectives
Having successfully completed this course, the student will be able to:
· Manipulate numbers.
· Apply techniques to solve common first and second-order ordinary differential equations.
References.
· S Lang, 2012, Calculus of Several Variables, New York, Springer Science + Business Media.
· P D Lax, M S Terrell, 2013, Calculus with Applications, New York, Springer Science + Business
Media.
DCS 101 Communication Skills for Engineers
The course covers a wide range of business language skills including, presentation, public speaking,
problem solving, negotiation and writing in Engineering Organisations. Students will also be introduced
to language structures, expressions and vocabulary for specific business situations. In addition, students
will be acquainted with language skills, life skills, and cultural understanding needed in the professional
workplace. Students will be afforded the opportunity to work on their reading and listening skills as well
as have practice in writing and speaking through authentic and purposeful tasks.
Contact Time:
Lecture hours: 48 hours
Practicals: 12 hours
Learning Objectives:
It is expected by the end of the first semester students would be able to:
· Present well-organised, logically argued and clearly-expressed written and oral assignments in
correct and appropriate English.
· Carry out appropriate research for the purpose of enhancing their academic development.
References:
· Berko, R .et al. 2011, Communicating –A social and Career Focus.12TH edition, New Jersey,
Prentice Hall.
· Burghart M.D. 1991, Introduction to the Engineering Profession, New York, Harper.
This course will provide an overview of the fundamentals of electricity and its practical application.
Topics covered under electrical power systems include: Basic electrical Theory, Power Generation,
Charging Systems, Transmission and Distribution, Distribution technology, Transmission lines, Voltage
Control, Fault Analysis and Protection.
Contact Hours
Lecture Time: 50 hours
Laboratory Time: 10 hours
Learning Objectives
Having successfully completed this course, the student must have:
· The fundamental theory of electricity and electric circuits.
· A thorough understanding of electrical laws and theorems such as the Ohms Law, Thevenin’s
Theorem, Norton’s Theorem and Superposition Theory and their applications.
· Knowledge to construct simple electrical circuits and be able to carry out experiments in the
laboratory to measure electric parameters.
References
· J. Bird, 2003, Electrical Circuit Theory and Technology, New York, Newnes.
· Edward Hughes, 1990, Electrical Technology, New York, Longman Scientific & Technical, John
Willey and Sons Inc.
Algorithms and data structures emphasizes the following topics: data structures, abstract data types,
recursive algorithms, algorithm analysis, sorting, searching, and problem-solving strategies.
The techniques for designing, building, and analysing computer programs that deal with large collections
of data. The course addresses techniques for programming, collections of data and the data structures and
algorithms that are needed to implement these collections. The course expands students' programming
skills, and provides an understanding of the principles of data abstraction, algorithm design, and the
analysis of algorithms that are fundamental to computer science.
Introduce the student to the concept of data structures through abstract data structures including lists,
sorted lists, stacks, queues, deques, sets/maps, directed acyclic graphs, and graphs; and implementations
including the use of linked lists, arrays, binary search trees, M-way search trees, hash tables, complete
trees, and adjacency matrices and lists.
Introduce the student to algorithms design including greedy, divide-and-conquer, random and
backtracking algorithms and dynamic programming; and specific algorithms including, for example,
resizing arrays, balancing search trees, shortest path, and spanning trees.
An introduction to the structure, analysis and usage of a range of fundamental data types and the core
algorithms that operate on them, including: algorithm analysis, sorting, searching, trees, graphs, files,
algorithmic strategies, analysis and measurement of programs. Labs and programming assignments in C,
using a range of Unix tools.
Contact hours:
Lecture time: 40 hours
Laboratory time: 20 hours
Learning Objectives:
At the completion of the course, the students should be able to use computers, design algorithms for
simple problems, use algorithms in the programming environment, correctly test and debug processing
programmes and explain how algorithms and processing programmes work.
References:
· Casey Reas and Ben Fry, 2014, A Programming Handbook for Visual Designers, Second Edition,
Massachusetts, The MIT Press.
· Downey A. (2012) Think Python: How to Think Like a Computer Scientist. Green Tea Press.
Needham, Massachusetts.
· Halterman R.L (2017). Fundamentals of Python Programming. Morgan Kaufmann Publishers, San
Francisco.
· Wayne and Robert, 2008, Introduction to Programming in Java, An interdisciplinary Approach, New
Jersey, Pearson,
Contact Hours
The course equips students with the basic knowledge, techniques and understanding of the fundamental
concepts of data management commencing with file processing systems through to database systems.
Students will learn about database systems for data handling, data models, methodology for relational
database design, database development lifecycle: conceptual database design, logical database design and
physical database design. Students will also learn and be able to apply relational algebra and structured
query language in designing and querying databases. Enforcement of database integrity and security.
Contact Hours
Learning Objective:
At the completion of the course, the students should be able to use available tools to design and
implement databases to support engineering solutions.
References:
· Connolly TM & Begg C.E. (2005). Database Systems-A Practical Approach to Design,
Implementation and Management. Edinburgh Gate-Pearson Education Limited.
· Elmasri, R., & Navathe, S. B. (2011). Fundamentals of Database Systems. Massachusetts: Addison-
Wesley.
· Garcia-Molina, h., Ullman, J. D., & Widom, J. (2009). Database Systems: The complete book. New
Jersey: Pearson Education.
· Hoffer, J. A., Ramesh, V., & Topi, H. (2011). Modern Database Management. New Jersey: Pearson
Education, Inc.
In this course students will study alternating current theory, including capacitance, inductance, and
reactance. Students will learn about magnetism, transformers, power supplies, and will use Oscilloscopes
and various test equipment to perform related lab experiments. Furthermore, students in this course will
study various types of resonance and filter circuits found in electronics, including amplifiers, wave-
shaping circuits, and operational amplifiers. Students will use test equipment to perform related lab
experiments. Extensive use of NIDA trainers will be used for Electronic Diagnostics and troubleshooting.
Students will also learn the basic logic gates and families and learn various logic circuits such as flip-
flops, counters, and decoders. Digital devices and interfacing will be studied. The students will study the
microprocessor and common parts of a computer system. Also, the students will learn the applications of
computers in aviation, aviation data busses, and troubleshooting techniques. Students will use test
equipment to perform related digital lab experiments.
Contact Time:
Lecture hours: 50 hours
Laboratory hours: 10 hours
Learning Objectives:
The main objective of this course is to enable the student to incorporate the knowledge thus gained in the
service of electronic communication systems as obtaining in the majority of Aircraft Engineering.
References:
· M. M. Mano, Englewood Cliffs, 1988, Computer Engineering Hardware Design, New Jersey,
Prentice Hall.
· P. K. Lala, 1996, Practical Digital Logic Design and Testing, New Jersey, Prentice Hall.
The course is designed to cover the elementary theory of vectors, matrices and determinants, and their
applications to solving systems of linear equations. The course will cover Basic definitions and notation,
geometric representation and laws of vector algebra. Importance of the set theory. Introduction to
probability, random experiments, sample spaces, events, mutually exclusive events, axiomatic definition
of probability, relative frequency, Computation of probabilities of finite sample spaces, cardinality of a
set, probabilities based on symmetry, methods of enumerating sample points, conditional probability,
total probability, independent events, Bayes’ Law. Introduction, Operations, Rules of Complex
arithmetic, Modulus, Complex conjugate, Division, Polar representation of complex numbers, De
Moivre's theorem and its application, Applications of complex numbers. Matrix addition and
multiplication, properties, Transpose of a matrix, square matrices, diagonal and trace, Powers of matrices,
Some special types of square matrices, Determinants, Laplace expansion of the determinant, Inverse of
matrices, Application of matrices, Elementary row operations, Inverses using row operations, Solving
systems of linear equations. Introduction, Separable, Exact, Integrating factor, Bernoulli equation, Initial
value problems, Boundary value problems, Second and higher order differential equations.
Prerequisite: DMT101
Contact Hours
Lecture Time: 48 hours
Tutorials: 12 hours
Learning Objectives
Having successfully completed this course, the student must have:
· Having successfully completed this course, the student will be able to:
· Apply vectors and matrices to solve equations.
· Apply various probability distributions to solve practical problems.
· Apply techniques to solve second and higher order differential equations.
· Apply the method of Laplace transform to the solution of first and second order differential
equations
References
· Antony Howard, 2006, Elementary Linear Algebra, 10th edition, Wiley, Canada.
The course equips students with the knowledge of operating systems as a fundamental component of
computer systems. Students will be focused on what operating systems do, how they are designed and
constructed. Common features of an operating system, traditional PC and server operating systems, as
well as operating systems for mobile devices. Process management- the process concept and concurrency
as the heart of modern operating systems, memory management- management of main memory during the
execution of a process, storage management- how mass storage, the file system, and I/O are handled in a
modern computer system, protection and security- mechanisms necessary for the protection and security
of computer systems. Linux system and windows system.
Process Management-Processes and threads, Process synchronization, Deadlocks and CPU scheduling
Distributed Systems-Network and distributed system structures, Distributed file systems, Distributed
coordination.
Contact Hours
Lecture Time: 48 hours
Tutorials: 12 hour
The course begins with a brief review of control structures and data types with emphasis on structured
data types and array processing. It then moves on to introduce the object-oriented programming
paradigm, focusing on the definition and use of classes along with the fundamentals of object-oriented
design. Topics such as an overview of programming language principles, simple analysis of algorithms,
basic searching and sorting techniques and an introduction to software engineering issues.
Prerequisite: DAE 107,
Contact Hours:
Lecture time: 48hours
Laboratory time: 12hours
Learning Objectives:
On successful completion of this course students will be able to:
· Manipulate binary patterns and understand the use of binary to represent numbers.
· Apply good programming style and understand the impact of style on developing and maintaining
programs.
· Explain the benefits of object-oriented design and understand when it is an appropriate methodology
to use.
References:
· Brian W. Kernighan and Rob Pike, 1999, The Practice of Programming, Addison-Wesley.
· Balagurusamy, E.: Object Oriented Programming with C++ , 2nd Edition ,Tata McGraw- Hill
· Walter, 2001, Problem Solving with C++: The Object of Programming, 3 rd Edition, Prentice Hall.
Contact Hours:
Lecture Time: 48 hours
Tutorials: 12 hours
Learning Outcomes:
Students will have an appreciation of:
· General expectations, sampling, tests of hypothesis for mean and variance, and power of tests.
References:
· Charles Henry Edwards, David E. Penney, 2010, Differential Equations & Linear Algebra, Pearson
Prentice Hall.
The course introduces students to switching logic and combinational circuits. Analysis of switching
devices, minimisation techniques, number systems and codes and logic design of functional digital units.
Furthermore, the use of LSI in logic design, an introduction to sequential circuits design of synchronous,
asynchronous and pulse sequential circuits, minimization of sequential circuits and state assignment and
covers are also covered. An overview of digital systems and their applications Number systems, base
conversion, and data representation using binary codes Boolean algebra and its laws, theorems, and
operations Simplification of Boolean algebraic expressions Converting a word description of a logic
system behavior into an algebraic expression Using Karnaugh Maps and Quinn-McLowski’s techniques
to minimize Boolean expressions. Design and analysis of combinational logic networks and applications
Implementing logic functions using multiple-output networks such as Multiplexers, Decoders, Read-Only
Memories, and Programmable Logic Arrays The operation of the SR, JK, T, and D flip-flops as basic
memory units Design and analysis of synchronous sequential logic networks and applications.
The development of software is largely evolutionary in nature with The Architecture Business Cycle,
what is Software Architecture, Architectural patterns, reference models, reference architectures,
architectural structures and views. Creating an Architecture Quality Attributes, Achieving qualities,
Architectural styles and patterns, designing the Architecture, Documenting software architectures,
Reconstructing Software Architecture.
Software Product Lines, Building systems from off the shelf components, Software architecture in future.
Pattern Description, Organizing catalogs, role in solving design problems, Selection and usage.
Creational and Structural patterns, Abstract factory, builder, factory method, prototype, singleton,
adapter, bridge, composite, façade, flyweight, Proxy.
Chain of responsibility, command, Interpreter, iterator, mediator, memento, observer, state, strategy,
template method, visitor.
A-7E – A case study in utilizing architectural structures, The World Wide Web - a case study in
interoperability, Air Traffic Control – a case study in designing for high availability, Celsius Tech – a
case study in product line development.
DSE 205 Data Communication and Networks
The course introduces computer communication and network technologies. The course will cover
computer network topologies, protocols (ISO model, ATM and TCP/IP protocol), and communication
media, framing, addressing, packet switching, virtual circuits, congestion and deadlock control. The
laboratory assignments include client server configuration and implementation of protocols.
Contact Time:
Lecture hours: 52 hours
Presentations: 8 hours
Learning Objectives:
By the end of this course, students should be able to:
· Use both qualitative and quantitative research methods in order to explore, and find answers to
identified research questions.
· Undertake an effective literature review to learn the background material required for the research
project and also to identify the current state of the art
· Communicate the findings of a literature review following the accepted standards and traditions of
engineering disciplines – especially with regard to referencing
· Prepare and communicate a formal research proposal including a plan, a convincing justification for
the research and formal placement of the research within the context of the current state of the art
References:
· Kothari, C. R. (2009) Research Methodology: Methods and Techniques. New Age International
Publishers, New Delhi.
· Langdridge, D. (2004), Research Methods and Data Analysis. Perterson Education Limited, Essex.
This course addresses the task of planning and conducting a small research project, for an undergraduate
level dissertation. It aims to help the student develop a clear sense of direction early on in the project, and
to support him/her in organising, planning, and monitoring their project. The course focuses on choosing
a research topic, developing research questions, and writing a dissertation.
References:
· Beins, 2017, Research Methods: A Tool for Life, Cambridge University Press.
· Bernard C. Beins, 2013, Successful Research Projects: A Step-by-Step Guide, SAGE Publications.
Learning Objectives:
At the end of the course students should be able to
· Describe the nature and significance of entrepreneurship
· Distinguish between social entrepreneurs, corporate entrepreneurship and entrepreneurship
· Outline the characteristics of entrepreneurship and disprove entrepreneurship myths
· Distinguish and evaluate the paths to entrepreneurship
· Prepare and critique business plans
· Distinguish and evaluate the different sources of financing for small businesses
· Assess the risks facing small businesses and their mitigation.
References:
· Entrepreneurship and New venture Management by Issa Van Aardt and Carel Van Aardt
· Entrepreneurship on Trial, 2001: Cases Concepts And Principles From The Banking Sector, Dr T.T.
Makoni
The course focuses on Software Maturity Framework, Principles of Software Process Change, Software
Process Assessment, and Process Framework. Process Reference Models; CMM, CMMi, PCMM, PSP,
TSP. Students also muster: Conventional Software Management, Evolution of Software Economics,
Improving Software Economics Life-Cycle phases and Process artifacts; Engineering and Production
stages, artifact sets, model-based software architectures. Other key knowledge areas are: Software process
workflows, Iteration workflows, Major milestones, Minor milestones, Periodic status assessments.
Process Planning; WBS, Planning guidelines, cost and schedule estimating process, iteration planning
process, Pragmatic planning; Line-of- business organizations, project organizations, evolution of
organizations, process automation. Project Control and process Instrumentation; Seven Core Metrics,
Management indicators, Quality indicators, Life-Cycle expectations, Pragmatic software metrics, metrics
automation; Ethics and Good Governance in Software Project Management Practices & Modern Project
Profiles, Next Generation Software Economics, and Modern Process Transitions.
The development and deployment of intelligent software agents dating back to the conception of artificial
brain in the Turing test continues to shape the technological landscape. The course on AI defines the AI
Problems and covers: AI Techniques, Basic Problem-solving methods, state space search, problem
characteristics, Production systems characteristics, issues in design of intelligent search algorithm;
State Space Search: Depth First Search, Breadth First Search, DFID. Heuristic Search: Best First Search,
Hill Climbing, Beam Search, Tabu Search. Randomized Search: Simulated Annealing, Genetic
Algorithms, Ant Colony Optimization. Problem Reduction, Constraint Satisfaction, Means-End Analysis;
Knowledge Representation issues, Knowledge Representation using Predicate logic, Propositional logic.
Theorem proving in First Order Logic. Soundness and Completeness, Forward and Backward chaining.
Situation calculus. Semantic Nets, Semantic Frames, Conceptual Dependency, scripts, Knowledge
representation with uncertainty. Building a Knowledge Base. Partial order planning. Uncertain
Knowledge and Reasoning, Probabilities, Bayesian Networks;
Overview of different forms of learning: Learning Decision Trees, Neural Networks. Concepts of Fuzzy
Logic, Intelligent Agents, Machine Learning;
Natural Language Processing, Deep Learning. Use of tools like Prolog and Lisp. Use of MATLAB.
The course focuses on: Machine learning - examples of machine learning applications - Learning
associations – Classification – Regression - Unsupervised learning - Supervised Learning - Learning class
from examples - PAC learning – Noise, model selection and generalization - Dimension of supervised
machine learning algorithm;
Clustering –
+Mixture densities - k-means clustering - Supervised Learning after clustering - Hierarchical clustering -
Nonparametric Methods - Density estimation - Generalization of multivariate data – Classification –
Regression - Smoothing models - Decision Trees - Univariate trees - Multivariate trees - Learning rules
from data – Linear Discrimination;
Competitive learning - Adaptive resonance theory - Self organizing map - Basis functions -Learning
vector quantization - Assessing and Comparing Classification Algorithms - Combining Multiple Learners
– Reinforcement Learning.
The course introduces students to the design of computer algorithms, as well as analysis of sophisticated
algorithms. Analyze the asymptotic performance of algorithms, write rigorous correctness proofs for
algorithms, demonstrate a familiarity with major algorithms and data structures.
Apply important algorithmic design paradigms and methods of analysis. Synthesise efficient algorithms
in common engineering design situations.
Optional Courses:
Computer Graphics
Computer graphics are an intrinsic component of many modern software applications and are often
essential to the success of these applications. The objective of this course is to familiarize students with
fundamental algorithms and data structures that are used in today’s interactive graphics systems as well as
programming and architecture of high-resolution graphics computers. The principles and practise of
computer graphics are described from their mathematical foundations to the modern applications domains
of scientific visualisation, virtual reality, computer games and film animation. The course will include
some practical experience of graphical software environments such as Java Graphics 2D and OpenGL.
Characteristics of graphics I/O devices; 2D/3D transformation including scaling, translation, and rotation;
graphics pipeline; data structures for graphics; geometry representation; OpenGL programming; vertex
processing; lighting and shading; rasterization including line and polygon drawing; ray casting; ray
tracing; computer graphics in games; visualization.
Computer Networks
This class will cover the theory, design, engineering, and installation of networks to connect digital
computers. The course will prepare students to plan and implement a network. Also includes peer-to-peer
networks, the client-server model, network operating systems, and an introduction to wide-area networks.
The network and implementation tools may vary to meet current development trends.
Numerical Analysis
This course is an introduction to the numerical analysis. The primary objective of the course is to develop
the basic understanding of numerical algorithms and skills to implement algorithms to solve mathematical
problems on the computer. Preliminaries of Computing: Basic concepts -round-off errors, floating point
arithmetic, Convergence. Numerical solution of Nonlinear Equations: Bisection method, fixed-point
iteration, Newton’s method. Error analysis for Iterative Methods. Computing roots of polynomials.
Interpolation and Polynomial Approximation- Lagrange Polynomial, Divided Differences, Hermite
Interpolation. Numerical integration and differentiation-Trapezoidal rule, etc., Gaussian quadrature and
Euler-Maclaurin formula. Applied Linear Algebra- Direct methods for solving linear systems, numerical
factorizations, Eigenvalue problems. IVP problems for ODE- Euler’s, Taylor, Runge-Kutta, and multistep
methods, Stability. Numerical linear algebra- Direct methods, Iterative methods. Approximation theory-
Least square approximation, Approximating Eigenvalues-Power method, Householder’s method. BVP for
ODE.
VLSI Design
This is an introductory course which covers basic theories and techniques of digital VLSI design in
CMOS technology. In this course, we will study the fundamental concepts and structures of designing
digital VLSI systems include CMOS devices and circuits, standard CMOS fabrication processes, CMOS
design rules, static and dynamic logic structures, interconnect analysis, CMOS chip layout, simulation
and testing, low power techniques, design tools and methodologies, VLSI architecture.
Formal Languages
The course presents abstract models of computers (finite automata, push-down automata and Turing
machines) and the language classes they recognize or generate (regular, context-free and recursively
enumerable). Also presents applications of these models to compiler design, algorithms and complexity
theory. The course introduces some fundamental concepts in automata theory and formal languages
including grammar, finite automaton, regular expression, formal language, pushdown automaton, and
Turing machine. Not only do they form basic models of computation, they are also the foundation of
many branches of computer science, e.g. compilers, software engineering, concurrent systems, etc. The
properties of these models will be studied and various rigorous techniques for analyzing and comparing
them will be discussed, by using both formalism and examples.
Visual Programming
Visual programming languages are widely used for the rapid development of graphical applications. This
subject will introduce students to the fundamental principles of event-driven programming and to
programming using a visual environment through the use of the Visual C# programming language. An
additional aim of this subject is to give students an understanding of the main ideas of Human Computer
Interaction (HCI).
The course covers how parallel computers work and how to analyze the correct designs of parallel
architectures, especially within the technological constraints. The course is a comprehensive study of
modern parallel computer architectures and parallel processing techniques and their applications from
basic concepts to state-of-the-art computer systems. It provides in-depth coverage of fundamentals,
design complexity, power, reliability and performance coupled with treatment of parallelism at all levels.