Minimum Standards For The Courses of Study in Bachelor of Science in Software Engineering
Minimum Standards For The Courses of Study in Bachelor of Science in Software Engineering
2011
1
1. INTRODUCTION 4
2.
ANALYSIS
OF
THE
COURSES
THAT
ARE
TAUGHT
AT
MAKERERE
UNIVERSITY
IN
UGANDA
IN
COMPARISON
WITH
THE
SWEBOK
STANDARD
THEMES
6
3. OPERATING SYSTEMS 15
4. INFORMATION SYSTEMS 16
5. COMMUNICATION SKILLS 17
2
19.
SOFTWARE
ARCHITECTURE
34
3
1. Introduction
According
to
the
computing
curricula
guidelines
developed
by
the
ACM
and
IEEE-‐CS
[1]
(professional
association
of
computing
specialists),
the
Software
Engineering
discipline
is
the
systematic
development
and
application
of
techniques
which
lead
to
the
creation
of
correct
and
reliable
computer
software.
By
graduation
the
students
of
Software
Engineering
must
therefore:
1. Be
well-‐educated
in
the
fundamental
concepts
of
software
engineering
so
that
they
able
to
continue
their
professional
development
throughout
their
careers.
• Have
an
appreciation
of
software
engineering
theory
with
consideration
of
its
application
in
the
software
engineering
practice.
• Possess
an
understanding
of
fundamental
mathematics
and
engineering
science
consistent
with
the
problem
solving
abilities
of
a
degreed
professional
in
the
software
engineering
field
• Be
proficient
in
developing
software
in
a
variety
of
languages,
platforms
and
applications
using
a
methodical
approach
• Be
able
to
participate
in
the
multi-‐disciplinary
process
of
design
and
qualification
of
a
prototype
• Have
sufficient
knowledge
of
the
Software
engineering
profession
that
supports
informed
and
timely
career
decisions
• Be
innovative
and
are
capable
of
creating
jobs
Secondly
Software
Engineers
must
exhibit
strong
ethical
principles
and
have
good
interpersonal
communication
and
team
skills.
Students
should
therefore
be
able
to:
1. Critically
evaluate
and
possibly
act
on
current
ethical
issues
in
the
IS
field
• Understand
contemporary
global
and
societal
issues
and
their
relationship
to
professional
ethics
and
engineering
solutions
• Appreciate
an
early
knowledge
of
key
computer
and
study
skills
that
are
supportive
of
lifelong
learning
• Collaborate
with
other
professionals
as
well
as
perform
successfully
at
the
individual
level
• Communicate
effectively
with
excellent
oral,
written,
and
listening
skills.
• Demonstrate
persistence,
flexibility,
curiosity,
creativity,
risk
taking,
and
a
tolerance
of
these
abilities
in
others.
Currently
in
Uganda
Software
Engineering
(SE)
as
a
bachelors’
programme
is
offered
by
only
Makerere
University.
This
report
analyses
the
SE
themes
proposed
in
the
Software
Engineering
Body
of
Knowledge
(SWEBOK)
[2]
in
comparison
with
the
Makerere
University
SE
curriculum.
The
result
of
this
analysis
is
a
hybrid
document
that
reflects
the
minimum
standard
expectations
from
a
SE
graduate
from
a
university
in
Uganda.
The
skills
and
competencies
of
a
software
engineering
graduate
can
be
outlined
in
nine
core
knowledge
areas.
These
are:
• Software
Requirements
and
Design
• Software
Construction
• Software
Quality
Assurance
and
Testing
• Software
Engineering
process,
tools
and
methods
• Software
Engineering
Maintenance
and
Management
• Mathematics
and
Systems
Foundations
of
Software
Engineering
4
• Computing
Foundations
of
Software
Engineering
• Professional,
Business
and
Social
Skills
• Practical
Considerations
5
2.
Analysis
of
the
Courses
that
are
taught
at
Makerere
University
in
Uganda
in
Comparison
With
the
Swebok
Standard
Themes
This
section
provides
an
analysis
of
the
Makerere
University
SE
curriculum
in
comparison
with
the
SWEBOK
theme
areas.
Each
course
unit
is
grouped
in
one
of
the
nine
knowledge
areas.
Table
1
shows
the
number
of
courses
that
are
taught
in
each
of
the
knowledge
areas.
The
names
of
the
courses
can
be
found
in
Appendix
1
From
Table
1,
it
should
be
noted
that
in
some
knowledge
areas
(e.g.
Software
Construction,
Foundations
of
Software
Engineering
and
Practical
Considerations),
a
single
SWEBOK
theme
can
be
too
wide
to
be
covered
as
a
single
semester
course
unit.
In
such
cases,
more
than
one
course
unit
is
mapped
onto
a
single
SWEBOK
theme.
The
total
number
of
course
units
in
the
Makerere
SE
curriculum
is
49
which
is
representative
of
a
four
year
university
engineering
programme.
In
addition
each
knowledge
area
is
covered
with
a
good
emphasis
considering
the
number
of
courses
per
knowledge
area.
From
a
critical
look
at
the
course
names
(shown
as
Appendix
1),
the
following
can
be
seen:
2. A
course
unit
such
as
Computer
literacy
is
not
a
relevant
foundational
course
any
more
considering
that
its
material
is
covered
in
the
computer
studies
subject
at
secondary
school
and
6
also
the
proliferation
of
computers
in
everyday
living
means
that
by
university
the
students
already
have
the
skills
that
computer
literacy
gives.
3. Under
the
professional,
business
and
social
skills
there
is
a
single
industrial
training
course
unit.
Considering
that
SE
is
a
4
year
programme
and
the
collaborative
nature
of
the
SE
profession,
a
second
industrial
training
course
unit
would
be
beneficial
e.g.
one
in
the
second
year
recess
term
coupled
with
the
mini
software
projects
and
the
second
one
in
the
third
year
recess
term.
7
• The
Proposed
Minimum
Standard
The
data
gathered
from
Makerere
University
as
well
as
ACM
and
the
SWEBOK
has
been
used
to
develop
the
minimum
standards
that
a
Software
Engineer
in
Uganda
should
possess.
Table
2
shows
the
proposed
minimum
number
of
courses
that
should
be
taught
in
each
of
the
knowledge
areas
that
were
identified.
It
also
proposes
the
core
courses
that
should
be
made
compulsory.
Please
note
that
due
to
the
different
nomenclature
that
is
used,
the
course
names
that
are
proposed
here
should
not
be
taken
to
be
final.
The
universities
are
free
to
choose
the
actual
course
names
of
their
choice.
8
Engineering
the
SE
Process,
Tools
&
Development
Process,
Tools
Methods
that
are
available
in
2. Computer
Graphics
and
Methods
building
SE
solutions
Software
3
SE
Project
Planning
should
be
1. Software
Evolution
Engineering
understood
for
purposes
of
2. IT
Project
Maintenance
&
managing
new
software
Management
and
Management
project,
while
the
SE
Development
maintenance
process
should
3. Information
Security
be
appreciated
in
order
to
keep
already
existing
software
functioning
Mathematical
3
Provide
students
with
1. Discrete
Mathematics
and
Systems
Mathematical
and
Systems
2. Formal
Methods
Foundations
of
Engineering
Foundations
3. Software
Systems
Software
Engineering
Engineering
Computing
6
Provide
students
with
i) Information
Systems
Foundations
of
Computing
Foundations
ii) Algorithms
&
Data
Software
Structures
Engineering
iii) Database
Systems
iv) Computer
Architecture
and
organisation
v) Operating
Systems
vi) Computer
Networks
and
Data
Communication
Professional,
6
Students
must
get
skills
and
1. Communication
Business
&
Social
knowledge
in
the
Skills
&
Report
Skills
professional,
business
and
writing
social
domains
in
order
to
2. Business
Law
ably
present
their
solutions.
3. Research
Skills
Although
each
of
these
fields
4. Entrepreneurship
in
broad,
nine
course
units
and
business
are
sufficient
as
core.
5. Internship
6. Social
and
professional
issues
in
Computing
Practical
2
To
provide
the
students
to
1. Professional
Software
Considerations
apply
the
knowledge
Engineering
Mini
obtained
in
all
the
other
Practical
Project
knowledge
areas
2. Final
Year
Software
Engineering
project
Table
2:
The
Proposed
core
courses
9
3.Detailed
Minimum
Standards
Thirty
Eight
(38)
courses
have
been
identified
as
core
areas
that
should
be
included
within
the
minimum
standards
for
the
Software
Engineering
graduate.
Each
University
is
free
to
include
more
courses,
over
and
above
these
ones.
They
can
even
give
them
unique
names
(not
necessarily
the
proposed
names)
but
the
content
covered
in
all
these
courses
must
be
taught
to
the
students.
The
details
of
the
courses
that
form
the
minimum
standards
in
the
nine
knowledge
areas
are
found
below
organised
sequentially
in
the
order
in
which
they
should
be
covered
during
the
four
year
programme.
Year
I
Semester
I
Name
LH
PH
TH
CH
CU
Type
Discrete
Mathematics
30
-‐
30
45
3
Core
Introduction
to
Programming
40
40
-‐
60
4
Core
Operating
Systems
45
-‐
-‐
45
3
Core
Information
Systems
45
-‐
-‐
45
3
Core
Communication
Skills
30
-‐
30
45
3
Must
know
Total
Year
I
Semester
II
Name
LH
PH
TH
CH
CU
Type
Systems
Analysis
and
design
30
-‐
30
45
3
Core
Object
oriented
Analysis
and
25
-‐
40
45
3
Core
Design
Computer
Architecture
and
30
-‐
30
45
3
Core
Organization
Principles
of
Software
45
-‐
-‐
45
3
Core
development
Database
Systems
45
30
-‐
60
4
Core
Total
Year
II
Semester
I
Name
LH
PH
TH
CH
CU
Type
Data
Structures
and
Algorithms
Computer
Networks
and
Data
40
40
-‐
60
4
Core
Communications
10
Formal
methods
35
-‐
20
45
3
Core
Human
Computer
Interaction
30
-‐
30
45
3
Core
Software
Systems
Engineering
30
-‐
30
45
3
Core
Total
Year
II
Semester
II
Name
LH
PH
TH
CH
CU
Type
Object
oriented
Programming
28
44
-‐
60
4
Core
Requirements
engineering
45
-‐
-‐
45
3
Core
Network
Application
30
30
-‐
45
3
Core
Development
Software
Architecture
45
-‐
-‐
45
3
Core
Software
Metrics
30
-‐
30
45
3
Core
Total
Year
III
Semester
I
Name
LH
PH
TH
CH
CU
Type
Systems
Programming
45
30
-‐
60
4
Core
Software
reliability
and
testing
42
36
-‐
60
4
Core
IT
project
management
and
40
10
-‐
45
3
Core
Development
Research
Skills
30
-‐
30
45
3
Core
Total
Year
III
Semester
II
Name
LH
PH
TH
CH
CU
Type
Embedded
systems
software
45
30
-‐
60
4
Core
Mobile
computing
and
45
30
-‐
60
4
Core
Applications
Professional
SE
Min
Project
-‐
120
-‐
60
4
Core
Industrial
Training
-‐
120
-‐
60
4
Core
Total
Year
IV
Semester
I
Name
LH
PH
TH
CH
CU
Type
Real
time
and
embedded
45
30
-‐
60
4
Core
11
applications
Business
Law
40
-‐
40
60
4
Core
Professional
Issues
in
35
-‐
20
45
3
Core
Computing
Software
Design
Patterns
30
30
-‐
45
3
Must
Know
Internet
Programming
25
40
-‐
45
3
Must
Know
Total
Year
IV
Semester
II
Name
LH
PH
TH
CH
CU
Type
Computer
Graphics
25
40
-‐
45
3
Core
Software
evolution
39
-‐
12
45
3
Core
Entrepreneurship
and
Business
39
-‐
12
45
3
Core
Information
Security
35
20
-‐
45
3
Core
Final
Year
Project
-‐
120
-‐
60
4
Core
Total
12
1.
Discrete
Mathematics
Course
Name
DISCRETE
MATHEMATICS
Course
Level
Level
I
Semester
I
Course
Credit
3CU
Contact
hours
45
Hours
Brief
Course
Description
This
course
introduces
the
foundations
of
discrete
mathematics
as
they
apply
to
computer
science.
It
focuses
on
providing
a
solid
theoretical
foundation
for
further
work.
Topics
covered
include
functions,
relations,
sets,
simple
proof
techniques,
Boolean
algebra,
propositional
logic,
digital
logic,
elementary
number
theory,
and
the
fundamentals
of
counting.
Course
Objectives
The
course
aims
to
provide
students
with:
i) Knowledge
about
operations
associated
with
sets,
functions,
and
relations
with
examples
ii) Understanding
of
the
basic
counting
principles,
including
uses
of
diagonalization
and
the
pigeonhole
principle
iii) Understanding
of
which
proof
is
best
for
a
given
problem
and
the
basic
structure
of
each
proof
technique
giving
examples
iv) The
ability
to
compute
permutations
and
combinations
of
a
set,
and
interpret
the
meaning
in
context
of
particular
applications
v) The
knowledge
require
to
Analyze
a
problem
to
create
relevant
recurrence
equations
or
to
identify
important
counting
questions
vi) An
appreciation
of
the
effect
of
AND,
OR,
NOT
and
EOR
operations
on
binary
data.
Learning
Outcomes
Upon
successful
completion
of
the
course,
students
shall
be
able
to:
i) Explain
the
basic
concepts
of
discrete
structures
and
appreciate
their
importance
as
they
apply
to
computing
ii) Manipulate
formulae
involving
sets,
integers,
reals
and
functions
of
such
quantities
iii) Solve
simple
problems
involving
sets,
functions,
graphs
and
trees
iv) Construct
sound
logical
arguments,
including
use
of
induction
v) Appreciate
the
way
that
discrete
mathematics
can
assist
problem
solving
Course
Outline
• Introduction
to
Logic
and
Proofs
3
hours
• Fundamental
Structures
4
hours
• Boolean
Algebra
6
hours
• Basic
Logic
3
hours
• Digital
Logic
6
hours
• Elementary
Number
Theory
4
hours
• Basics
of
Counting
4
hours
• Case
study
and
Tutorials
(30
hours)
15
hours
13
Mode
of
Delivery
Lectures,
Tutorials
and
Group
work
Course
Assessment
• Tests
20%
• Assignments
20%
• Examination
60%
Course
Objectives
The
course
aims
to
provide
students
with:
• Knowledge
about
the
various
programming
languages
• Knowledge
in
basic
programming
concepts
• Comprehensive
knowledge
about
structured
programming
• Knowledge
in
planning
and
organization
of
programming
projects
• Techniques
of
evaluating
syntactic
and
semantic
correctness
of
a
computer
program
• Strong
practical
foundation
in
programming
Learning
Outcomes
Upon
Completion
of
the
course,
the
students
shall
be
able
to:
i) Explain
the
key
differences
between
the
various
programming
languages
ii) Demonstrate
understanding
about
the
basic
programming
concepts
iii) Build
software
using
a
functional
programming
language
such
as
C
iv) Plan
and
organize
a
programming
project
v) Evaluate
a
computer
program
for
syntactic
and
semantic
correctness
Course
Outline
This
course
covers
the
following
topics:
i) Introduction
to
programming
languages
4
hours
ii) Program
structure
2
hours
iii) Variables
and
Operators
2
hours
iv) Conditional
statements
5
hours
v) Looping
statements
5
hours
14
vi) Arrays
and
strings
5
hours
vii) Functions
3
hours
viii) Advanced
data
types
3
hours
ix) Pointers
3
hours
x) Dynamic
memory
allocation
and
dynamic
structures
3
hours
xi) Working
with
files
3
hours
xii) GUI
2
hours
xiii) Practical
sessions
(40
hours)
20
hours
Course
Assessment
• Tests
20%
• Practicals
20%
• Examination
60%
3.
Operating
Systems
Course
Description
This
course
introduces
learners
to
the
services
of
operating
systems.
It
exposes
them
to
details
on
how
an
operating
system
controls
all
the
processes
of
a
computer
system
including
those
of
peripheral
devices.
Course
Objectives
The
aims
of
this
course
are
to:
• Create
understanding
about
the
role
of
operating
systems
in
the
management
of
computer
system
resources
• Provide
in-‐depth
knowledge
of
operating
system
processes
and
principles
• Enable
students
to
understand
computer
system
performance
Learning
Outcomes
Upon
completion
of
this
course,
the
student
shall
be
able
to:
i) Demonstrate
understanding
about
the
role
of
an
operating
system
in
the
management
of
system
resources
ii) Explain
the
principles
that
govern
system
operations
to
improve
system
performance
iii) Measure
the
performance
of
computer
systems
Course
Outline
• Operating
System
concepts
3
hours
15
• Structure
of
an
operating
system
6
hours
• System
processes
9
hours
• Threads
6
hours
• Deadlocks
6
hours
• Memory
management
9
hours
• Device
management
6
hours
Course
Assessment
i) Tests
20%
ii) Assignments
20%
iii) Final
examination
60%
4. Information Systems
Course
Objectives
The
course
aims
to
provide
students
with:
i) Understanding
of
the
different
types
of
information
systems
and
the
important
role
they
play
in
a
modern
organization
ii) Knowledge
on
information
systems
development
and
Management
iii) Understanding
of
the
need
for
information
systems
security
,
audit
and
ethics
iv) Understanding
of
how
to
manage
and
leverage
an
information
system
for
an
organization
Learning
Outcomes
Upon
successful
completion
of
the
course,
a
student
shall
be
able
to:
i) Describe
the
different
types
of
information
systems
and
the
important
role
they
play
in
a
modern
organization
ii) Demonstrate
knowledge
and
skills
in
information
systems
development
and
Management
iii) Explain
information
systems
security
,
audit
and
ethics
iv) Explain
how
to
manage
and
leverage
an
information
system
to
meet
the
organization
goals
Course
Outline
• Information
Systems
Concepts
3
hours
16
• Information
systems
infrastructure
12
hours
• The
different
categories
of
information
systems
7
hours
• Information
systems
development
and
management
8
hours
• The
role
of
Information
Systems
in
an
organization;
3
hours
•
Information
systems
security
6
hours
• Information
systems
Audit
3
hours
• Information
systems
ethics
and
Crime
3
hours
Course
Assessment
• Tests
20%
• Assignments
20%
•
Examination
60%
5. Communication Skills
Learning
Outcomes
Upon
completion
of
this
course,
the
student
shall
be
able
to:
i) Effectively
read,
write
and
disseminate
information
ii) Collect
and
synthesize
information
iii) Generate
solutions
using
critical
thinking
and
problem
solving
skills
iv) Utilize
the
library
and
other
educational
resources
Course
Outline
The
topics
covered
are
in
the
broad
areas
of:
i) Interpersonal
skills
6
hours
17
ii) Writing
skills
9
hours
iii) Reading
skills
6
hours
iv) Presentation
skills
6
hours
v) Examination
skills
3
hours
vi) Tutorials
and
Presentations
(30
hours)
15
hours
Course
Assessment
• Test
20%
• Assignment
20%
• Final
examination
60%
Course
Objectives
The
course
aims
to
provide
students
with
understanding
and
skills
on:
• The
systems
concepts
and
the
system
Development
Life
Cycle
• The
role
of
the
System
Analyst
in
the
systems
development
life
cycle
• The
techniques
of
requirements
elicitation,
specification,
and
analysis
of
information
systems
• Data
modeling
in
information
systems
development
• Process
modeling
in
information
systems
development
• Information
system
development
and
maintenance
Learning
Outcomes
At
the
end
of
the
course,
students
shall
be
able
to:
i) Explain
the
systems
theoretical
concepts
and
the
system
Development
Life
Cycle
ii) Explain
the
role
of
the
System
Analyst
in
the
systems
development
life
cycle
iii) Describe
and
apply
the
techniques
of
requirements
elicitation,
specification,
and
analysis
to
information
systems
development
iv) Create
a
data
model
for
an
information
systems
development
project
v) Create
a
process
model
for
an
information
systems
development
project
vi) Explain
how
Information
system
construction
and
maintenance
is
done
Course
Outline
18
The
major
topics
covered
include
the
areas
of:
i) Systems
theory
2
hours
ii) The
systems
development
life
cycle
3
hours
iii) The
role
of
the
systems
analyst
1
hour
iv) Information
Systems
Requirements
Analysis
3
hours
v) Process
modeling
with
data
flow
diagrams
6
hours
vi) Logic
and
process
specification
6
hours
vii) Data
modeling
with
entity
relationship
diagrams
6
hours
viii) System
construction,
Implementation
and
maintenance
3
hours
ix) Case
study
and
Tutorials
(30
hours)
15
hours
Course
Assessment
• Tests
20%
• Assignments
20%
• Examination
60%
7.
Object-‐Oriented
Analysis
And
Design
Course
Objectives
The
course
aims
to
provide
skills
on:
• The
concepts
and
advantages
of
object
oriented
analysis,
design
and
its
application
to
systems
development.
• Basic
object-‐oriented
concepts
of;
abstraction,
encapsulation,
inheritance,
hierarchy,
modularity,
and
polymorphism
• Creating
models
used
in
object
oriented
programming
languages
such
as
C++
and
Java
• Iterative,
use
case-‐driven
process
to
the
development
of
a
robust
design
model
• Use
of
UML
as
a
tool
or
language
to
represent
the
design
model
Learning
Outcomes
Upon
Completion
of
the
course,
students
shall
be
able
to:
i) Explain
the
concepts
and
advantages
of
object
oriented
analysis
and
design
for
application
systems
development.
19
ii) Apply
Object
Oriented
concepts
such
as
abstraction,
encapsulation,
inheritance,
hierarchy,
modularity,
and
polymorphism
to
the
development
of
robust
systems
models
iii) Represent
design
models
using
the
Unified
Modeling
Language
Course
Outline
The
course
covers
the
following
main
themes
and
associated
topics:
i) Objects
and
classes
2
hours
ii) Principles
of
the
Object
orientated
paradigm
(Abstraction,
encapsulation,
inheritance
and
hierarchy,
modularity
and
polymorphism)
6
hours
iii) UML
modeling
and
design
a. Use
case
diagrams
6
hours
b. Structural
diagrams.
6
hours
c. Interactions
diagrams
6
hours
d. Deployment
diagrams
3
hours
e. Component
Diagrams
3
hours
ii) UML
relations:
associations,
aggregation,
composition
3
hours
iii) Tutorial
and
Case
Study
20
hours
Mode
of
Delivery
Lectures,
Case
studies,
Tutorials
and
Group
work
Course
Assessment
• Tests
20%
• Assignment
20%
• Examination
60%
20
8.
Computer
Architecture
And
Organisation
Course
Objectives
The
course
aims
to:
• Introduce
the
concepts
in
computer
organization
• Explain
the
architectural
features
of
a
modern
computer
• Provide
understanding
of
the
principles
governing
the
interaction
between
hardware
and
software
components
• Describe
the
relationship
between
the
different
components
and
their
roles
in
the
operations
of
the
computer
Learning
Outcomes
On
completion
of
this
course,
the
student
shall
be
able
to
explain
the:
i) Relevant
concepts
in
computer
organization
ii) Architectural
features
of
a
modern
computer
system
including
its
design
and
development
iii) Principles
governing
the
interaction
between
hardware
and
software
components
iv) Relationship
between
the
different
components
and
their
roles
in
the
operations
of
the
computer
Course
Outline
The
major
topics
covered
include:
i) Digital
logic
6
hours
ii) Memory
management
6
hours
iii) Computer
processor
architectures
6
hours
iv) Machine
Language
and
CPU
Instructions
sets
6
hours
v) Instruction
processing
3
hours
vi) I/O
Programming
3
hours
vii) Tutorials
(30
hours)
15
hours
Course
Assessment
• Tests
20%
21
• Assignment
20%
Course
Objectives
The
course
aims
to
provide
students
with
understanding
and
skills
in:
• The
software
development
process
and
its
core
activities
• Requirements
analysis
of
a
simple
software
system
• Managing
a
software
development
process
• Designing,
implementing
and
deploying
a
software
product
• Software
documentation
• Validation,
verification
and
testing
a
software
Product
Learning
outcomes
Upon
successful
completion,
the
student
shall
be
able
to:
i) Demonstrate
knowledge
of
the
software
development
process
ii) Perform
requirement
analysis
of
a
simple
software
systems
iii) Manage
a
software
development
process
iv) Design,
implement
and
deploy
a
software
product
v) Demonstrate
mastery
of
at
least
one
tool
of
software
documentation
vi) Work
in
a
team
to
design,
develop,
test
and
validate
a
software
product
Course
Content
Topics
covered
include:
i) Introduction
to
software
engineering
3
hours
ii) Phases
in
the
development
of
software
5
hours
iii) Software
project
management
5
hours
iv) Requirements
analysis
and
specification
5
hours
v) Software
design
5
hours
vi) Software
Documentation
3
hours
vii) User
Interface
design
and
adaptation
3
hours
viii) Software
modularization
5
hours
ix) Software
quality
assurance
8
hours
22
x) Introduction
to
software
evolution
3
hours
Course
Assessment
• Tests
20%
• Assignment
20%
• Examination
60%
Course
Objectives
The
course
aims
to
provide
students
with:
• The
theory
of
database
systems
and
data
modeling
• Practical
skills
in
developing
secure
relational
databases
• Knowledge
to
formulate
queries
in
databases
• Knowledge
of
at
least
one
DBMS
• Skills
to
import
and
export
data
to
and
from
different
applications
Learning
Outcomes
Upon
completion
of
the
course,
the
student
shall
be
able
to:
i) Demonstrate
understanding
of
the
basic
concepts
of
database
systems
and
data
modeling
ii) Develop
secure
relational
databases
iii) Formulate
queries
in
databases
and
to
use
at
least
one
DBMS
iv) Import
and
export
data
to
and
from
different
applications
Course
Outline
The
topics
to
be
covered
include:
i) Introduction
to
database
systems
3
hours
ii) Database
construction
principles
6
hours
iii) Database
architecture
3
hours
iv) Data
modeling
9
hours
v) Database
querying
6
hours
vi) Database
Security
6
hours
23
vii) Database
Managements
Systems
6
hours
viii) Distributed
databases
6
hours
ix) Practical
lessons
(30
hours)
15
hours
Course
Assessment
• Test
20%
• Practical
20%
• Final
examination
60%
11.
Data
Structures
And
Algorithms
Course
Description
This
course
exposes
students
to
data
structures
and
corresponding
algorithms.
It
also
equips
them
with
the
skills
to
measure
the
performance
of
an
algorithm
as
well
as
the
techniques
on
how
they
can
be
further
improved.
Course
Objectives
This
course
aims
at
equipping
students
with
knowledge
about:
• The
different
types
of
data
structures
and
identify
their
appropriateness
• Algorithms
and
their
different
representations
in
terms
of
mathematical
functions
or
formulae
• The
performance
and
management
of
simple
algorithms
• Cost-‐effective
algorithms
Learning
Outcomes
On
completion
of
course,
the
student
shall
be
able
to:
• Use
the
different
types
of
data
structures
• Perform
an
algorithm
analysis
and
represent
algorithms
in
terms
of
mathematical
functions
• Evaluate
the
performance
and
management
of
simple
algorithms
• Develop
cost-‐effective
algorithms
Course
Outline
The
topics
covered
in
this
course
include:
i) Elementary
data
structures
6
hours
ii) Advanced
data
structures
10
hours
iii) Trees,
graphs,
networks,
functions,
signals
8
hours
iv) Sorting
and
searching
5
hours
v) Analysis
of
algorithms
5
hours
vi) Recursion
3
hours
24
vii) Algorithm
performance
and
optimization
8
hours
viii) Practicals
(30
hours)
15
hours
Course
Assessment
i) Test
20%
II) Practical
20%
III) Final
examination
60%
Course
Objectives
The
aims
of
this
course
are:
i) To
introduce
students
to
standards,
guidelines
and
technologies
in
computer
and
data
communication
networks
ii) To
impart
knowledge
and
skills
relevant
for
the
design,
implementation
and
maintenance
of
modern
communication
networks
iii) To
provide
a
solid
basis
on
the
theoretical
and
practical
understanding
of
data
communication
in
networks
Learning
Outcomes
By
the
end
of
this
course,
the
student
shall
be
able
to:
• Explain
the
underlying
principles
of
data
communication
and
networks
• Explain
the
operation
of
a
range
computer
networking
applications
such
as
email,
web,
and
peer-‐to-‐peer
file-‐sharing
• Relate
the
architecture
of
the
Internet
to
the
underlying
design
principles
• Illustrate
the
operation
and
evaluate
the
performance
of
common
routing
protocols,
queuing
mechanisms,
and
congestion
control
mechanisms
• Develop
elements
of
a
network
such
as
gateways
and
routers
that
conform
to
IETF
standards
with
acceptable
levels
of
simplification
Course
Outline
i) OSI
and
TCP/IP
models
7
hours
25
ii) Transmission
of
Digital
Data
and
transmitting
media
7
hours
iii) Signals,
Modulation
&
Multiplexing
6
hours
iv) Compression
and
decompression
3
hours
v) Introduction
to
client-‐server
computing
specifically
web
applications
7
hours
vi) Network
management
4
hours
vii) Wireless
networks
3
hours
viii) Network
Security
3
hours
ix) Practical
Lessons/group
work
(40
hours)
20
hours
Course
Assessment
• Tests
20%
• Practicals
20%
• Examination
60%
.Formal Methods
Course
Objectives
The
aims
of
this
course
are:
• To
introduce
students
to
the
mathematical
notation
and
terminology
used
in
formal
specification
• To
equip
students
with
knowledge
of
the
fundamental
principles
in
formal
methods
including
laws
and
theorems
• To
equip
students
with
an
understanding
of
techniques
and
procedures
required
to
solve
practical
problems
• To
impart
programming
skills
by
writing
numerical
programs
required
to
solve
the
practical
problems
mentioned
above
Learning
Outcomes
Upon
completion
of
this
course
students
shall
be
able
to:
i) Demonstrate
knowledge
including
the
mathematical
notation
and
terminology
of
formal
methods
26
ii) Describe
the
fundamental
principles
including
laws
and
theorems
arising
from
formal
methods
concepts
iii) Apply
formal
techniques
and
procedures
to
solve
practical
problems
iv) Demonstrate
programming
skills
by
writing
numerical
programs,
(e.g.
Matlab)
to
solve
practical
problems
Course
Outline
The
topics
to
be
covered
in
this
course
include:
i) Predicate
Logic
Specification
8
hours
ii) Tools
and
systems
of
formal
notations
9
hours
iii) Algebraic
Specification
10
hours
iv) Other
Topics
e.g.
Statecharts,
Automatic
program
synthesis
8
hours
v) Tutorials
(20
hours)
10
hours
Course
Assessment
• Tests
20%
• Assignments
20%
• Examination
60%
27
14
.
Human
Computer
Interaction
Course
Description
The
course
helps
students
to
appreciate
the
delicate
and
divergent
nature
of
human
and
computer
interactions.
It
covers
the
dynamics
of
user
interface
designs
including
their
evaluations
as
well
as
usability
issues
for
both
software
and
related
devices.
Course
Objectives
The
aims
of
this
course
are
equip
students
with
knowledge
and
skills:
i) To
appreciate
established
human-‐computer
interaction
approaches
and
techniques.
ii) To
design
user
interfaces
iii) To
use
appropriate
software
evaluation
techniques
and
heuristics
Learning
Outcomes
On
completion
of
this
course,
the
student
shall
be
able
to:
i) Apply
established
human-‐computer
interaction
approaches
and
techniques
ii) Produce
conceptual
and
physical
designs
using
prototyping
methods
iii) Evaluate
software
interfaces
using
appropriate
heuristics
Course
Outline
• Human
Computer
Interaction
concepts
5
hours
• User
Interfaces
5
hours
• Design
principles
of
HCI
5
hours
• Evaluation
paradigms,
frameworks,
heuristics,
usability
testing
5
hours
• Software
posture,
flow,
navigation,
Interaction,
language
and
attributes
5
hours
• Human
and
social
factors
5
hours
• Practicals/
Tutorials
(30
hours)
15
hours
Course
Assessment
• Test
20%
• Assignment
20%
• Final
examination
60%
28
15.
Software
Systems
Engineering
Course
Objectives
The
aims
of
this
course
are:
20. To
introduce
students
to
the
systems
engineering
approach
to
software
systems
21. To
equip
students
with
analytical
skills
so
they
can
evaluate
the
factors
leading
up
to
system
complication
and
complexity,
the
causes
of
a
systems
failure,
the
importance
of
stakeholders
involvement
in
a
systems
engineering
project
and
using
input-‐output
diagramming
22. To
enable
students
appreciate
the
importance
of
systems
engineering
important
as
well
as
the
difference
between
process
science
and
engineering
23. To
impart
knowledge
of
a
systems
engineering
project
in
terms
of
the
balance
of
demands,
choice
and
constraints
24. To
equip
students
with
an
understanding
of
the
lag
involved
in
controlling
a
system
as
well
as
the
differences
between
a
generic
model
of
systems
engineering
and
a
software
specific
model
Learning
Outcomes
Upon
successful
completion
of
this
course
students
will
be
able
to:
1. Classify
new
software
product
developments
as:
fault
correction,
enhancements,
new
but
similar
products,
radically
different,
revolutionary
or
iconoclastic
products
2. Analyse
the
causes
of
a
systems
failure
3. Identify
and
evaluate
the
relationships
of
the
factors
leading
up
to
system
complication
and
complexity
4. Answer
the
question
‘why
is
systems
engineering
important?
5. Define
the
difference
in
process
between
science
and
engineering
6. Identify
and
analyse
the
importance
of
stakeholders
involved
in
a
systems
engineering
project
7. Classify
a
systems
engineering
project
in
terms
of
the
balance
of
demands,
choice
and
constraints;
8. Analyse
a
system
using
input-‐output
diagramming
9. Estimate
the
lag
involved
in
controlling
a
system
10. Evaluate
the
differences
between
a
generic
model
of
systems
engineering
and
a
software
specific
model
Course
Content
1. Characteristics
of
systems
engineering
3
hours
2. Challenges
in
a
systems
engineering
project
3
hours
3. Scope
of
a
systems
engineering
problem
3
hours
4. Identify
the
stakeholders
and
other
factors
that
shape
the
system
requirements
4
hours
29
5. Emergent
system
properties
3
hours
6. Identifying
the
real
problem
which
the
system
is
intended
to
solve
4
hours
7. Technological,
operational
and
economic
considerations
in
the
design
process
4
hours
8. Interactions
between
a
system
and
its
environment
3
hours
9. Integrating
the
system
with
existing
systems
3
hours
10. Tutorials
(30
hrs)
15
hours
Course
Assessment
1. Tests
20%
2. Take-‐home
assessments
20%
3. Examination
60%
16.
Object-‐Oriented
Programming
Course
Objectives
The
course
aims
to
enable
students
to:
• Understand
and
use
the
Object
Orientation
Paradigm
for
software
development
• Develop
software
using
a
programming
language
like
C++
and/or
Java
• Understand
the
use
of
basic
Java
features
in
a
working
program
• Understand
the
use
of
the
following
advanced
features
of
inheritance,
encapsulation,
overloading,
polymorphism,
abstract
classes
and
interfaces
in
a
program
• Develop
knowledge
in
the
use
of
GUI-‐based
event-‐driven
programming
in
a
working
program
assignment
utilizing
GUI
components,
event-‐listeners
and
event-‐handlers
Learning
Outcomes
Upon
successful
completion
of
the
course,
students
shall
be
able
to:
• Demonstrate
the
understanding
and
application
of
Object
oriented
design
techniques
for
software
development
using
a
programming
language
like
C++
and
Java
• Demonstrate
correct
use
of
the
basic
features
in
a
working
program:
objects,
classes,
methods,
IO
handling,
decisions
and
iterations
30
• Demonstrate
correct
use
of
the
following
advanced
features
in
a
working
program:
inheritance,
encapsulation,
overloading,
polymorphism,
abstract
classes
and
interfaces
• Demonstrate
knowledge
of
GUI-‐based
event-‐driven
programming
in
a
working
program
assignment
utilizing
GUI
components,
event-‐listeners
and
event-‐handlers
Course
Outline
Topics
include:
• Theory
of
the
object
oriented
paradigm
4hours
• Data
types,
inheritance,
exceptions,
templates
and
patterns
3hours
• Object
Oriented
programming
languages
(e.g.
C++
and
Java)
8hours
• Encapsulation,
inheritance,
and
polymorphism
4hours
• Abstract
data
types,
concrete
data
types
and
subtypes
3hours
• Virtual
functions
and
operator
overloading
and
pointers
4hours
• Object
Oriented
computing
in
a
distributed
systems,
applets
3hours
• Classes,
interfaces
and
packages
4hours
• Selection
and
application
of
current
design
and
development
tools
4hours
• Practical
Lessons
(44
hours)
22hours
Mode
of
Delivery:
Lectures,
Tutorials,
Practicals,
Group
work
Course
Assessment:
i) Tests
20%
ii) Practical
20%
iii) Examination
60%
31
17.
Requirements
Engineering
Course
Description
Requirements
engineering
is
a
software
engineering
process
which
covers
all
of
the
activities
involved
in
discovering,
documenting
and
maintaining
a
set
of
requirements
for
a
computer-‐based
system.
It
provides
students
with
principles,
tools
techniques
for
requirements
elicitation,
specification,
modeling,
validation
and
management.
Course
Objectives
The
course
aims
to
provide
students
with:
i) Knowledge
about
principles,
tools
and
techniques
for
requirements
elicitation,
specification
analysis
and
modeling
ii) Understanding
of
the
role
of
requirements
in
system
development
and
maintenance
iii) Skills
in
specifying
requirements
for
Real
Systems
iv) Knowledge
about
managing
changes
to
requirements
as
the
system
is
being
developed
and
put
into
use.
Learning
Outcomes
Upon
successful
completion
of
the
course
students
should
be
able
to:
• Apply
the
principles,
tools,
and
techniques
for
requirements
elicitation,
specification,
and
analysis
and
modeling
to
a
software
engineering
problem
• Demonstrate
the
role
of
requirements
in
system
development
and
maintenance
• Explain
the
difficulties
of
specifying
requirements
for
real
systems,
as
well
as
effective
methods
tools
and
techniques.
• Manage
changes
to
requirements
as
the
system
is
being
developed
and
put
into
use
Course
Outline
• Software
Requirements
Concepts,
3hours
• Requirements
Elicitation
6hours
• Software
Requirements
Analysis,
6hours
• Software
Requirements
Specifications,
6hours
• Software
Requirements
Tools,
6hours
• Software
Requirements
Verification,
6hours
• Software
Requirements
Engineering
Management,
6hours
• Developing
a
Successful
Software
Requirement
.
6hours
Mode
of
Delivery
Lectures,
Case
studies,
Group
work
32
Course
Assessment
i) Tests
20%
ii) Take-‐home
assessments
10%
iii) Examination
70%
Course description
The
course
introduces
students
to
the
design
and
implementation
of
network-‐based
applications,
demonstrated
using
Object-‐Oriented
Programming
techniques
at
both
the
application
layer
and
the
transport
layer
of
the
TCP/IP
protocol
stack.
Course Objectives
Learning Outcomes
Upon
completion
of
this
course
the
students
shall
be
able
to
i) Explain
technologies,
protocols
and
architectures
that
support
computer
communication
networks
ii) Explain
the
internet
technologies
and
its
architecture
iii) Explain
network
based
programming
methodologies,
languages,
tools
and
standards.
iv) Set
up
Network
sockets
using
a
Structured
or
an
Object
oriented
programming
language
v) Program
and
manage
a
computer
network
using
modern
techniques
and
tools.
Course Outline:
Topics
include:
• Networking
Fundamentals,
3hours
• layered
protocol
architectures
and
service
models
3hours
• Design
principles
for
network-‐based
applications
3hours
• HTTP
and
HTTPS
protocols
3hours
• A
history
and
Structure
of
the
Internet
3hours
• connectionless
and
connection-‐oriented
services
3hours
• Circuit
switching
and
Packet
switching
fundamentals
3hours
• Network
socket
options
and
socket
programming
6hours
33
• Principles
of
information
security
in
network-‐based
applications
3hours
• Practicals
(30
hours)
15
hours
Mode
of
Delivery:
Lectures,
Practicals/
Group
work
Course
Assessment:
i) Tests
20%
ii) Practical
20%
iii) Examination
60%
19.
Software
Architecture
Course description
Software
architecture
defines
the
primary
system
qualities
of
performance,
modifiability,
and
security,
into
a
unifying
architectural
vision.
It
is
an
artifact
for
early
analysis
to
ensure
that
a
design
approach
yields
an
acceptable
system.
This
course
also
explains
the
work
assignments
that
must
be
carried
out
by
design
and
implementation
teams
Course Objectives:
34
• Architectural
design
guidance
and
Tools
for
architectural
design
3hours
• Achieving
quality
goals
with
architectural
styles
3hours
• Formal
models
and
specifications
6hours
• Analyzing
software
architecture
with
SAAM
6hours
• Architecture
description
languages
(ADLs)
6hours
• Architecture-‐based
development
3hours
• Patterns
in
software
architecture
3hours
• Reusing
software
architecture
3hours
Course
Assessment
i) Tests
30%
ii) Take
home
assignments
10%
iii) Examination
60%
20.
Software
Metrics
Course
Objectives
The
course
aims
to
provide
a
student
with:
• An
understanding
of
the
need
for
software
metrics
and
classification
of
software
metrics
• Knowledge
of
basic
terminology
and
fundamental
facts
about
software
metrics
and
process
models
• Understanding
of
the
importance
of
software
metrics
in
the
control
and
management
of
software
development
process
• Knowledge
of
the
fundamentals
of
measurement
theory
• Understanding
of
software
product
metrics
,
process
metrics
and
measuring
management
Learning
Outcomes
Upon
successful
completion
of
this
course
students
should
be
able
to:
i) Explain
basic
terminology
and
state
fundamental
facts
about
software
metrics
and
process
models
ii) Identify
essential
elements
of
given
metrics
describe
interrelationships
among
its
various
elements
and
describe
circumstances
or
environment
in
which
its
use
is
appropriate
35
iii) Describe
the
importance
of
software
metrics
in
the
control
and
management
of
the
software
development
process.
iv) Understand
the
foundations
of
measurement
theory
and
models
of
software
engineering
measurement
v) Appreciate
software
products
metrics,
software
process
metrics
and
measuring
management.
Course
Content:
The
course
is
composed
of
the
following
basic
modules:
i) Need
and
definition
of
Software
metrics,
3hours
ii) Classification
and
measurement
of
scales
for
software
metrics
3hours
iii) Measurement
theory
4hours
iv) Software
product
and
process
measurements
4hours
v) Measuring
internal
product
attributes:
size
and
structure
4hours
vi) Measuring
external
product
attributes:
quality,
measuring
cost
and
effort,
4hours
vii) Measuring
software
reliability,
software
test
metrics,
object-‐oriented
metrics
4hours
viii) Measurement
management
4hours
ix) Tutorials
and
group
work
15hours
Mode
of
Delivery:
Lectures,
Tutorials,
Group
work
Course
Assessment:
i) Tests
20%
ii) Take-‐home
assessments
20%
iii) Examination
60%
36
21.
Systems
Programming
Course
Description
The
course
trains
learners
on
how
to
develop
codes
and
algorithms
that
can
evaluate
and
improve
on
the
performance
of
an
operating
system.
It
requires
prerequisite
knowledge
in
programming
and
operating
systems.
Course
Objectives
The
aims
of
the
course
are:
• To
acquainted
students
with
at
least
one
operating
systems
software.
• To
provide
students
with
skills
in
developing
codes
or
algorithms
that
can
manage
selected
system
resources.
• To
provide
students
with
scripting
knowledge
and
skills,
which
can
be
used
to
measure
the
performance
of
selected
components
of
a
computer
system.
Learning
Outcomes
On
completion
of
this
course,
the
student
shall
be
able
to:
i) Explain
basic
concepts
in
at
least
one
operating
systems
software.
ii) Develop
codes
and
algorithms
that
can
manage
selected
system
resources.
iii) Demonstrate
the
ability
to
evaluate
the
performance
of
selected
components
of
a
computer
system.
Course
Outline
i) Introduction
to
the
Operating
System
software
6
hours
ii) Operating
system
Concepts
and
parameters
6
hours
iii) File
I/O
6
hours
iv) System
Processes
6
hours
v) Execution
of
Programs
3
hours
vi) Threads
6
hours
vii) Pipes
and
messages
6
hours
viii) Memory
Mappings
6
hours
ix) Practicals
15hours
Course
Assessment
• Tests
20%
• Practical
20%
• Final
examination
60%
37
22.Software
Reliability
&
Testing
Course
Objectives
The
course
aims
to
provide
students
with
knowledge
and
skills
in:
• The
software
reliability
process
• The
various
software
reliability
process
growth
models
• The
various
metrics
used
for
software
reliability
measurement
• The
techniques
that
can
be
used
to
improve
and
predict
software
reliability
• The
various
techniques
applied
to
software
testing
• The
application
of
a
software
reliability
process
model
to
a
given
case
scenario
Learning
Outcomes
Upon
successful
completion
of
this
course
the
student
shall
be
able
to:
• Explain
the
software
reliability
process
• Describe
the
various
software
reliability
process
growth
models
• Describe
and
explain
the
various
metrics
used
for
software
reliability
measurement
• Explain
the
techniques
that
can
be
used
to
improve
and
predict
software
reliability
• Describe
and
Explain
the
various
techniques
applied
to
software
testing
• Apply
a
software
reliability
process
model
to
a
given
case
scenario
Course
content
This
course
covers
the
following
topics:
i) The
software
testing
and
reliability
concepts
4
hours
ii) The
software
reliability
process
and
its
application
4
hours
iii) Factors
influencing
software
reliability
4
hours
iv) Software
reliability
Engineering
techniques
4
hours
v) Software
reliability
models
and
Measurement
6
hours
vi) software
reliability
improvement
and
prediction
Techniques
6
hours
vii) Metrics
for
software
reliability
prediction
6
hours
viii) Soft
ware
System
testing
8
hours
ix) Practicals
and
group
work
18
hours
Course
Assessment
38
• Tests
20%
• Practicals
20%
• Examination
60%
23.Information
Technology
Project
Management
Course
Description
The
module
defines
the
principles
of
implementing
successful
projects.
Various
aspects
are
considered
including
Costing,
budgeting,
risk
management,
human
resource
change
management
and
scheduling
as
critical
factors
to
the
success
of
projects.
Course
Objectives
The
Course
aims
to
provide
students
with
understanding
and
skills
on:
i) Project
Planning,
scheduling
and
Control
ii) Time,
Cost
and
Quality
management
iii) Building
and
leading
multi-‐disciplinary
and
effective
teams
iv) Risk
and
change
management
v) project
monitoring
using
appropriate
project
management
software
Learning
Outcomes
At
the
end
of
this
course,
the
student
shall
be
able
to:
i) Explain
project
management
concepts
and
roles
through
all
projects
ii) Manage
a
project
to
its
satisfactory
conclusion
on
time
and
within
budget
iii) Integrate
the
concepts
of
risk
and
change
management
in
project
management
iv) Demonstrate
the
ability
to
use
project
monitoring
tools
and
techniques
to
ensure
successful
project
implementation
Course
Outline
The
major
areas
that
will
be
covered
include:
• Overview
of
Project
Genesis
5
hours
• Project
Planning,
scheduling
and
control
5
hours
• Estimating,
Cost
and
Budgeting
5
hours
• Project
Risk
Analysis
and
Management
5
hours
• Project
stakeholder
analysis
and
Project
Team
Structuring
6
hours
• Monitoring
Progress
–
Processes
tools
and
Techniques
5
hours
• Configuration
Management
5
hours
• Quality
management
4
hours
39
• Practicals
5
hours
Course
Assessment
i) Assignments
20%
ii) Test
20%
iii) Examination
60%
25. Research
Skills
Course
Description
This
course
provides
students
with
the
theoretical
and
practical
concepts
of
research.
It
provides
the
skills,
methods
and
competences
that
are
necessary
to
collect,
analyse,
summarise
and
present
quantitative
and
qualitative
data.
Course
Objectives
The
aims
of
the
course
are
to:
i) Provide
students
with
knowledge
of
conducting
research
that
achieves
pre-‐determined
objectives.
ii) Describe
the
various
data
analysis
and
reporting
techniques.
Learning
Outcomes
On
completion
of
this
course,
the
student
should
be
able
to:
i) Demonstrate
knowledge
of
how
to
conduct
research
that
achieves
pre-‐determined
objectives.
ii) Use
the
various
data
analysis
and
reporting
techniques.
Course
Outline
• Introduction
to
research
methods
3
hours
• Research
Approaches
3
hours
• Problem
formulation
3
hours
• Data
collection
6
hours
• Data
Analysis
9
hours
• Data
presentation
and
report
writting
3
hours
• Research
ethical
issues
3
hours
• Tutorials
15
hours
Course
Assessment
• Tests
20%
40
• Assignments
20%
• Final
examination
60%
41
24.
Embedded
Systems
Software
Course
Description
This
course
presents
assembly
language
programming
as
the
bridge
between
high-‐level
programming
languages
and
embedded
systems
hardware
with
particular
reference
to
the
embedded
processor.
Course
Objectives
The
course
aims
at:
i) Introducing
students
to
the
role
of
assembly
language
programming
ii) Equipping
students
with
skills
required
to
apply
a
modular
approach
to
assembly
language
programming
with
code
reuse
iii) Provide
students
with
knowledge
of
the
instruction
set
of
a
typical
embedded
processor
iv) Imparting
an
understanding
of
memory
addressing,
the
various
addressing
modes,
hardware
interrupts
and
how
to
use
them
v) Enabling
students
to
integrate
assembly
language
subroutines
into
a
high-‐level
language
program
Learning
Outcomes
Upon
successful
completion
of
this
course,
the
student
will:
i) Understand
the
role
of
assembly
language
programming
ii) Understand
the
instruction
set
of
a
typical
embedded
processor
iii) Be
able
to
employ
a
modular
approach
to
assembly
language
programming
with
code
reuse
iv) Be
able
to
use
embedded
systems
development
tools
v) Understand
memory
addressing
and
use
various
addressing
modes
vi) Understand
hardware
interrupts
and
be
able
to
use
them
vii) Be
able
to
integrate
assembly
language
subroutines
into
a
high-‐level
language
program
Course
Outline
Topics
covered
include:
• An
introduction
to
assembly
language
3
hours
• The
addressing
modes,
register
file,
and
instruction
set
of
a
microcontroller
12
hours
• Timers,
handshaking,
input
and
output,
and
analog
to
digital
conversion
12
hours
• Interrupts
8
hours
• Software
control
of
hardware
10
hours
• Practical
lessons
(30
hours)
15
hours
Course
Assessment
• Tests
20%
• Practicals
20%
• Examination
60%
42
25.
Mobile
Computing
And
Applications
Course
Objectives
The
aims
of
this
course
are:
i) To
introduce
students
to
hardware
and
software
components
of
mobile
computing
ii) To
equip
students
with
an
understanding
of
mobile
operating
systems
as
well
as
mobile
multimedia
messaging
and
web
services
iii) To
impart
knowledge
and
skills
required
to
design
and
build
professional
mobile
applications
Learning
Outcomes
Upon
successful
completion
of
the
course,
students
should
be
able
to:
i) Explain
the
fundamentals
of
mobile
computing
including
both
the
hardware
and
software
components
ii) Understand
the
mobile
IP
stack
and
mobile
web
access,
technologies
and
services.
iii) Demonstrate
knowledge
of
mobile
software
architecture,
operating
system
platforms
and
software
development
tools
for
mobile
software,
content
and
service
development.
Course
Outline
The
topics
to
be
covered
include:
i) Fundamentals
of
Mobile
Terminal
Hardware
2
hours
ii) Radio,
DSP,
Memory
and
CPU
components
3
hours
iii) Base
Station
side
radio
interface
standards
2
hours
iv) The
Mobile
IP
stack
and
mobile
web-‐browsing
2
hours
v) The
WAP-‐protocol
&
Location
Information
3
hours
vi) Principles
of
Multimedia
Messaging
(SMS,
MMS)
and
web
services
4
hours
vii) Introduction
to
Mobile
Operating
System
Platforms
(OSPs)
6
hours
viii) Mobile
Applications
User
Interface
2
hours
ix) Software
set-‐up
in
modern
Mobile
Terminals
6
hours
x) Fundamentals
of
Mobile
Content
6
hours
xi) Mobile
web
content
design
8
hours
xii) The
.mobi
top
level
domain
(TLD)
initiative
1
hour
xiii) Practical
Lessons
(30
hours)
15
hours
Course
Assessment
• Tests
20%
43
• Practical
(Project)
20%
• Examination
60%
Course
Objectives
The
course
aims
to
provide
students
with
understanding
and
skills
in:
i) Project
management
concepts
and
roles
ii) Planning
and
controlling
projects
iii) Considerations
for
commercialization
of
software
products
iv) Software
Requirements
Analyis,
specification
and
Design
v) Choosing
appropriate
Software
Engineering
Processes,
Tools
and
Methods
vi) Professional
Software
construction
vii) Software
maintenance
and
Management
viii) Software
documentation
ix) Professional
Software
quality
assurance
and
Testing
Learning
Outcomes
By
the
end
of
this
course,
the
student
should
be
able
to:
• Explain
the
nature
of
Software
Engineering
projects
and
their
management
• Demonstrate
understanding
of
Finance
Planning,
Budgeting
and
Costing
in
Software
Engineering
Projects
• Integrate
the
concepts
of
Risk
Management,
Human
resource
management,
control
of
time
and
deadlines
through
application
of
tools
and
techniques
• Demonstrate
the
ability
to
develop
a
business
plan
as
part
of
the
Project
Proposal
for
their
choice
of
research
project.
• Demonstrate
creativity
and
innovation
in
the
developing
software
solutions
v) Develop
the
requirements
and
design
specifications
vi) Attest
and
practice
high-‐quality
Project
Management
skills
in
enhancing
individual
effectiveness
and
productivity
vii) Develop
Software
using
state
of
the
art
technologies
viii) Document
the
software
in
accordance
to
well
known
practices
Course
Outline
44
The
major
areas
that
will
be
covered
include:
o Project
Proposal
and
Business
Plans
6
Hours.
o Requirements
Analysis,
Specifications
and
Design
8
Hours.
o Project
Management
4
Hours
o Software
Methodology,
Tools
and
Techniques
6
Hours
o Software
Construction
20
Hours
o Software
Quality
Assurance
and
Testing
10
Hours
o Project
Report
Write
Up
6
Hours
Course
Assessment
i) Project
Proposal
20%
ii) Project
Demonstration
20%
iii) Project
Report
30%
Presentation
30%
27. Industrial
Training
Course
Objectives
The
course
aims
to
enable
students:
• Understand
the
different
types
of
Computing
careers
and
their
roles
in
a
real
world
business
organization.
• Apply
and
translate
computing
knowledge
and
best
practice
to
real
industry
based
problems
• Acquire
soft
skills
to
enhance
effective
participation
in
group
based
industry
projects
• Learn
and
practice
good
working
ethics
and
communication
skills
with
industry
based
staff
and
Supervisors.
Learning
Outcomes
By
the
end
of
this
course,
the
student
should
be
able
to:
45
i) Explain
the
different
types
of
Computing
careers
and
their
roles
in
a
real
world
business
organization.
ii) Demonstrate
ability
to
apply
and
translate
computing
knowledge
and
best
practice
to
industry
based
problems
iii) Demonstrate
creativity
and
innovation
in
solving
problems
related
to
real-‐life
projects
iv) Demonstrate
soft
skills
for
enhanced
effective
participation
in
group
based
industry
projects
v) Demonstrate
and
practice
good
working
ethics,
communicate
effectively
and
exhibit
good
interpersonal
skills
with
industry
based
staff
and
Supervisors.
Course
Outline
The
major
areas
that
will
be
emphasized
during
industrial
training
include
i) Orientation
to
Industry,
Career
Prospects
&
Human
Resource
Policy
4hours
ii) ICT
Infrastructure
in
Indusry
6hours
iii) Communication
Network
Infrastructure
4hours
iv) Information
Management
10hours
v) Systems
Administration
4hours
vi) Website
Development
4hours
vii) IT
Quality
Assurance
4hours
viii) Audit
and
Review
ICT
Infrastructure
Maintenance
Manuals
4hours
ix) Audit
and
Review
IT
and
Communication
Policies
4hours
x) Audit
and
Review
Information
Security
4
hours
xi) Project
Report
Writting
12
hours
Course
Assessment
• Evaluation
Report
by
Industry
Based
Supervisor
40%
• Interview
by
Academic
Supervisor
30%
• Written
Industrial
Training
Project
Report
30%
46
1. Real-‐Time
And
Embedded
Applications
Course
Objectives
This
course
aims
at:
i) Introducing
students
to
the
rate
monotonic
theory
and
how
to
apply
it
to
real-‐time
applications
ii) Equipping
students
with
knowledge
of
the
processes
and
fundamentals
of
integrating
microprocessor-‐based
embedded
system
elements
to
realize
applications
that
meet
strict
timing
and
performance
requirements
iii) Imparting
practical
skills
of
designing
and
integrating
a
real-‐time
operation
system
with
a
microprocessor
to
host
real-‐time
service
data
processing
Learning
Outcomes
At
the
end
of
the
course
students
shall
be
able
to:
i) Demonstrate
knowledge
of
rate
monotonic
theory
and
how
to
apply
it
to
real-‐time
applications
ii) Understand
the
process
and
fundamentals
of
integrating
microprocessor-‐based
embedded
system
elements
to
realize
systems
that
not
only
meet
functional
requirements,
but
timing
and
performance
requirements
as
well
iii) Use
practical
skills
to
design
and
integrate
a
real-‐time
operation
system
with
a
microprocessor
to
host
real-‐time
service
data
processing
Course
Content
• Rate
Monotonic
Theory
6
hours
• Real-‐time
Operating
Systems
8
hours
• Embedded
system
architectures
6
hours
• Sensor
and
Actuator
IO
9
hours
• Real-‐time
embedded
test
equipment,
tools
and
performance
4
hours
• Real-‐time
applications
12
hours
• Practical
Lessons
(30
hours)
15
hours
Mode
of
Delivery
Lectures
and
Practicals
Course
Assessment
• Tests
20%
47
• Practicals
20%
• Examination
60%
28. Business
Law
Course
Description
This
course
is
designed
to
impart
knowledge
to
students
on
the
various
aspects
relating
to
Business
undertakings
and
operations.
It
covers
the
Legal
aspects
of
a
business
like
the
law
of
undertaking
and
operations.
It
also
covers
the
legal
aspects
of
a
business
like
the
Law
of
Contract,
arbitration,
Law
of
Agency,
Labor
Laws
and
the
Company
act
in
General.
Course
Objectives
The
Course
aims
to
provide
students
with
understanding
and
skills
on:
• Various
aspects
relating
to
undertakings
and
operations
• Legal
principles
relating
to
corporate
business
and
governance
Learning
Outcomes
Upon
Completion
of
the
course,
students
shall
be
able
to:
i) Explain
the
various
aspects
of
any
one
national
legal
system
ii) Explain
of
the
various
aspects
relating
to
undertakings
and
operations
iii) Understand
and
explain
the
Legal
principles
relating
to
corporate
business
and
governance
Course
Content
i) The
Introduction
to
the
Uganda
Legal
System
and
Structure
of
Courts
8Hours
ii) Evolution
of
Companies
as
business
associations
in
Britain
4Hours
iii) Promotion
and
Formation
of
a
Company
5
Hours
iv) The
Theory/Concept
of
Corporate
status/Personality
4Hours
v) Pre-‐incorporation
Contracts
5Hours
vi) The
Ultra-‐Vires
Doctrine
4Hours
vii) Lifting
the
Veil
of
the
Incorporation
5Hours
viii) Management
of
a
Company
4Hours
ix) Company
Meetings
and
Resolutions
5Hours
x) Raising
the
Minimum
Capital
5Hours
xi) The
Ministry’s
members
rights
5Hours
xii) Winding
up
and
Dissolution
/
Liquidation
of
a
Company
6Hours
Assessment
• Course
Work
40%
• Final
Exam
60%
48
29. Professional
Issues
In
Computing
Course
Objectives
The
Course
aims
to
provide
students
with
understanding
and
skills
on:
• Standards
and
professionalism
in
a
Computing
Career
• Legal
environment
within
which
a
computing
professional
operates
• The
professional
societies
that
govern
the
behavior
of
computing
professionals.
• Professional
responsibilities
to
client,
employer
and
public
Learning
Outcomes
By
the
end
of
this
course,
the
student
should
be
able
to:
i) Appreciate
the
role
of
standards
for
a
practicing
computing
professional
ii) Practice
a
computing
career
with
a
due
regard
to
legal,
ethical
and
social
issues
Course
Outline
The
major
areas
to
be
covered
include:
i) The
computing
profession
and
standards
3
hours
ii) Computing
and
society
3
hours
iii) Ethics
and
the
social
context
of
computing
6
hours
iv) Methods
and
tools
for
analysis
of
ethical
arguments
3
hours
v) Risks
and
liabilities
of
safety-‐critical
systems
3
hours
vi) Intellectual
property
rights
2
hours
vii) Privacy
and
civil
liberties
2
hours
viii) Social
implications
of
the
Internet
3
hours
ix) Computer
Misuse
5
hours
x) ICT
legal
framework
5
hours
xi) Tutorials
and
group
work
(20
hours)
10
hours
Course
Assessment
• Group
Assignment
20%
• Test
20%
• Examination
60%
49
30. Software
Design
Patterns
Course Description
This course explores advanced principles of object-oriented design by studying key
software design patterns. The patterns are drawn from a variety of sources and
illustrated through examples and case studies. These are presented in an object
oriented programming language e.g. Java, C++ or C sharp.
Course Objectives
The Course aims to provide students with understanding and skills in:
• Designing effective and maintainable complex software systems of high quality
by reusing/applying design patterns
• Evaluating a design, identifying common problems, and how to fix these problems
through refactoring
Learning Outcomes
By the end of this course, the student should be able to:
i) Describe the purpose of design patterns.
ii) Describe a range of software patterns giving examples of their use
iii) Understand the ways that design patterns are documented and classified.
iv) Select and apply design patterns to practical software design problems
v) Select and apply design patterns to realistic business situations through a series
of hands-on exercises
Course Outline
The major areas that will be covered include:
i) Introduction to design patterns 3Hours
ii) Creational, structural and Behavioral Patterns 6Hours
iii) Relationship between Patterns 3Hours
iv) Patterns for concurrent and distributed systems
3Hours
v) Advanced Patterns 3Hours
vi) Automation of Patterns and Anti-patterns
3Hours
vii) Introduction to Aspect-Oriented design 3Hours
viii) Introduction to business process modeling
3Hours
ix) Patterns for coding, testing and concurrency control. 3hours
50
x) Practical and Case Studies of Applications of Design Patterns
15Hours
Mode of Delivery
Lectures, Tutorials, Practical’s
Course Assessment
• Practicals 20%
• Test 20%
• Examination 60%
51
31.
Internet
Programming
Course
Objectives:
The
aims
of
the
course
are:
• To
introduce
students
to
the
.Net
development
environment
• To
enable
students
to
apply
core
ASP.NET
technologies
to
develop
Web
applications
• To
train
students
to
author
server-‐side
ASP.NET
code
in
C#
• To
train
students
to
create
Web
applications
using
ADO.NET
to
interact
with
SQL
Server
• To
enable
students
to
write
ASP.NET
pages
that
integrate
into
traditional
DHTML-‐driven
pages.
Learning
Outcomes
On
successfully
completing
this
course,
students
shall
be
able
to:
• Set
up
a
.Net
development
including
environment,
including
MSDE
• Apply
core
ASP.NET
technologies
to
develop
Web
applications
• Write
server-‐side
ASP.NET
code
in
C#
• Create
web
applications
using
ADO.NET
to
interact
with
SQL
Server
• Write
ASP.NET
pages
that
integrate
into
traditional
DHTML-‐driven
pages
Course
Outline
This
course
covers:
i) ASP.NET
development
fundamentals
5hours
ii) Server-‐side
technologies
5hours
iii) C#
(C
Sharp)
programming
language
commonly
used
for
ASP.NET
5hours
iv) Database
development
with
MSDE
5hours
v) integrating
ASP.NET
pages
with
client-‐side
DHTML
technologies
5hours
vi) Practical
Lessons
(40
hours
of
Practicals)
20hours
Mode
of
Delivery
Lectures,
Case
studies,
Tutorials,
Practicals,
Group
work
Course
Assessment
• Tests
20%
i) Practicals
20%
ii) Examination
60%
52
Course
Objectives
The
course
aims
to:
1. Introduce
students
to
computer
graphics
systems
and
concepts.
2. Provide
students
with
an
in-‐depth
knowledge
of
the
creation
and
analysis
of
computer
graphics
objects.
Learning
Outcomes
Upon
successful
completion
of
this
course
students
should
be
able
to:
i) Explain
computer
graphics
systems
and
concepts.
ii) Demonstrate
the
ability
to
create
and
analyze
computer
graphics
objects.
Course
Content
The
topics
to
be
covered
in
this
course
include:
• Computer
graphics
principles,
terminologies
and
applications
3
hours
• Graphics
hardware
3
hours
• Graphics
design
3
hours
• 2D
and
3D
transformations
6
hours
• Graphics
algorithms
5
hours
• Simulating
graphics
4
hours
• Graphics
visualisation
3
hours
• Graphics
standards
3
hours
• Practical
Lessons
(40
hours)
20
hours
53
33. Software
Evolution
Course
description
This
course
shows
how
Software
evolution
helps
to
implement
and
revalidate
possible
major
changes
to
a
system
without
the
need
to
predict
how
user
requirements
will
change.
An
existing
large
system
is
never
complete
and
continues
to
evolve.
As
it
evolves,
the
complexity
of
the
system
grows
and
Software
evolution
ensures
continuous
reliability
and
flexibility
of
the
system.
Course
Objectives
The
aims
of
this
course
are
to
teach
students:
• The
concepts
and
importance
of
software
systems
evolution
• The
software
evolution
process
• Models
and
Laws
of
software
systems
evolution
• The
causes
and
impact
of
software
systems
evolution
• The
properties
of
software
systems
evolution
• How
selected
software
systems
are
analyzed
based
on
properties
of
their
evolution
• How
to
interpret
the
implications
of
software
systems
evolution.
Leaning
Outcomes
Upon
completion
of
the
course,
students
shall
be
able
to:
i) Explain
the
concepts
of
software
systems
evolution
ii) Demonstrate
the
understanding
of
the
causes
and
impact
of
software
systems
evolution
iii) Explain
the
laws
of
software
systems
evolution
iv) Describe
the
properties
of
software
systems
evolution
v) Analyze
selected
software
systems
to
understand
properties
of
their
evolution
vi) Interpret
the
implication
of
Evolution
for
software
systems.
Course
Content
To
achieve
the
objectives
of
this
course,
the
topics
covered
include:
i) Separate
compilation
3hours
ii) Design
issues
and
common
design
patterns
3
hours
iii) Verification
and
validation
3
hours
iv) Integrating
components
3
hours
v) Documentation
2
hours
vi) Issues
in
object-‐oriented
programming
3
hours
vii) Parallelism
3
hours
viii) event-‐centered
programming
3
hours
ix) software
reuse
3
hours
x) The
Models
and
Laws
of
Software
Evolution
4
hours
xi) The
forward
and
Reverse
engineering
and
reengineering
tools
6
hours
xii) Legacy
system
evolution
3
hours
xiii) Tutorials
(12
hours)
6
hours
54
Mode
of
Delivery
Lectures
and
Tutorials
Course
Assessment
• Tests
20%
• Assignment
20%
• Examination
60%
55
34. Entrepreneurship
And
Business
Course
Description
The
course
introduces
the
students
to
the
basic
concepts
in
entrepreneurship,
identification
of
business
opportunities,
business
evaluation
and
analysis.
It
provides
students
with
the
skills
needed
to
effectively
identify,
organize,
develop,
and
manage
own
business
ventures.
Course
Objectives
The
course
aims
to
provide
students
with:
• Knowledge
about
the
origins
of
entrepreneurship
and
an
entrepreneur
• Knowledge
about
entrepreneurship
development
• Insight
on
how
to
Identify,
evaluate,
and
select
business
opportunities
• Skills
to
perform
self-‐evaluation
• Knowledge
on
how
to
carry
out
feasibility
and
viability
of
an
investment
opportunity
• Insight
to
exploit
the
Entrepreneurial
Environment
provided
by
the
political,
socioeconomic
and
• technological
conditions
Learning
Outcomes
On
completion
of
this
course
unit,
the
students
will
be
able
to:
i) Explain
the
origins
of
entrepreneurship
and
describe
an
entrepreneur
ii) Outline
and
explain
the
stages
of
Entrepreneurship
Development
iii) Explain
the
barriers
to
Entrepreneurship
iv) Perform
self
evaluation
to
match
business
opportunities
v) Analyze
the
entrepreneurial
environment
vi) ensure
start-‐up,
survival
and
sustainability
of
an
investment
opportunity
vii) Identify
their
own
personal
entrepreneurial
potential,
and
competences
viii) Identify,
and
exploit
business
opportunities
and
resources
Course
Outline
i) The
concepts
of
entrepreneurship
3
hours
ii) Theories
of
Entrepreneurship
4
hours
iii)
Entrepreneurial
Characteristics
3
hours
iv) Entrepreneurial
Process
3
hours
v) The
Entrepreneurial
Environment
3
hours
vi) Entrepreneurship
Development
5
hours
vii) Business
start-‐up
and
growth
6
hours
viii) Financial
basics
3
hours
ix) Building
Entrepreneurial
communities
3
hours
x) Management
of
Entrepreneurial
Risk
3
hours
xi) Entrepreneurial
ventures
3
hours
xii) Tutorials
(12
hours)
6
hours
56
Mode
of
Delivery
Lectures
and
Tutorials
Course
Assessment:
• Tests
20%
• Assignments
20%
• Examination
60%
57
35. Information
Security
Course
Description
This
course
familiarizes
the
students
with
existing
security
problems
and
the
techniques
that
can
be
applied
to
overcome
them.
Focus
is
given
to
security
of
information
that
is
stored
in
files
or
in
databases.
Course
Objectives
The
aims
of
this
course
are:
12. To
introduce
students
to
contemporary
threats
to
information
security
13. To
provide
students
with
knowledge
about
contemporary
solutions
(tools
and
techniques)
to
information
security
14. To
equip
students
with
skills
required
to
prevent,
identify
and
mitigate
the
threats
to
information
security
Learning
Outcomes
Upon
completion
of
this
course,
the
students
shall
be
able
to:
13 Identify
contemporary
threats
to
information
security
14 Apply
contemporary
solutions
to
the
threats
of
information
security
using
appropriate
tools
and
techniques
15 Propose
solution
of
prevent,
identify
and
mitigate
the
threats
to
information
security
Course
Outline
• Data
security
concepts
and
examples
3
hours
• Information
security
threats
6
hours
• Information
security
controls
6
hours
• Information
security
Tools
and
Techniques
8
hours
• Information
security
Risk
analysis
6
hours
• Information
security
and
social
aspects
6
hours
• Practicals
(20
hours)
10
hours
Mode
of
Delivery
Lectures
and
practicals
Course
Assessment
13 Tests
20%
14 Assignments
20%
15 Final
examination
60%
58
36. Final
Year
Project
Course
Description
This
course
provides
the
student
with
the
opportunity
to
independently
undertake
a
research
project
from
the
point
of
requirements
analysis
to
deploying
a
tested
and
well
engineered
solution,
with
the
assistance
of
a
Project
Supervisor(s).
The
student
has
to
demonstrate
a
high
level
of
professionalism
and
best
practice
in
terms
of
documentation
and
software
engineering
standards.
Course
Objectives
The
Course
aims
to
provide
students
with
understanding
and
skills
on:
• Developing
of
a
concept
and
plan
for
a
commercially
viable
software
project
• Determing
requirements
and
coming
up
design
specification
• Choosing
appropriate
Software
Engineering
Processes,
Tools
and
Methods
• Professional
Software
construction
and
deployment
• Software
maintenance
and
Management
• Professional
Software
quality
assurance
and
Testing
• Software
project
documentation
Learning
Outcomes
By
the
end
of
this
course,
the
student
should
be
able
to:
• Explain
the
nature
of
Software
Engineering
projects
and
their
management
• Demonstrate
understanding
of
Finance
Planning,
Budgeting
and
Costing
in
Software
Engineering
Projects
• Integrate
the
concepts
of
Risk
Management,
Human
resource
management,
control
of
time
and
deadlines
through
application
of
tools
and
techniques
• Demonstrate
the
ability
to
develop
a
business
plan
as
part
of
the
Project
Proposal
for
their
choice
of
research
project.
• Demonstrate
creativity
and
innovation
in
the
developing
software
solutions
ix) Develop
the
requirements
and
design
specifications
x) Attest
and
practice
high-‐quality
Project
Management
skills
in
enhancing
individual
effectiveness
and
productivity
xi) Develop
Software
using
state
of
the
art
technologies
xii) Document
the
software
in
accordance
to
well
known
practices
Course
Outline
The
major
areas
that
will
be
covered
include:
o Project
Proposal
and
Business
Plans
6
Hours
o Requirements
Analysis,
Specifications
and
Design
8
Hours
o Project
Management
4
Hours
o Software
Methodology,
Tools
and
Techniques
6
Hours
59
o Software
Construction
20
Hours
o Software
Quality
Assurance
and
Testing
10
Hours
o Project
Report
Write
Up
6
Hours
Course
Assessment
i) Project
Proposal
20%
ii) Project
Demonstration
20%
iii) Project
Report
30%
60
APPENDIX
1:
DETAILS
OF
THE
COURSE
NAMES
OF
THE
SOFTWARE
ENGINEERING
PROGRAMME
FROM
MAKERERE
UNIVERSITY
IN
COMPARISON
WITH
THE
SOFTWARE
ENGINEERING
THEMES
OUTLINED
IN
SWEBOK
61