Silo - Tips - Makerere University Faculty of Computing Information Technology Department of Computer Science
Silo - Tips - Makerere University Faculty of Computing Information Technology Department of Computer Science
Bachelor of
Science in Computer Science degree programme
DAY/EVENING PROGRAMME
September 2009
1
Contents
1 Background 5
1.1 The B.Sc Computer Science Program . . . . . . . . . . . . . . 5
2 The Program 5
2.1 Nature of the Program . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Duration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Tuition Fees . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4 Target Group . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 Regulations 6
3.1 Admission requirements . . . . . . . . . . . . . . . . . . . . . 6
3.2 Weighting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3 Semester Load and Minimum Graduation Load . . . . . . . . 7
3.4 Assessment . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.5 Grading and Pass mark . . . . . . . . . . . . . . . . . . . . . . 7
3.6 Progression . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.7 Retaking a course . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.8 Degree Classification . . . . . . . . . . . . . . . . . . . . . . . 8
3.9 Discontinuation . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5 Detailed Curriculum 13
5.1 Semester 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.1.1 CSC 1100: Computer Literacy . . . . . . . . . . . . . . 13
5.1.2 CSK 1101: Communication Skills . . . . . . . . . . . . 14
5.1.3 CSC 1104: Computer Organization & Architecture . . 15
5.1.4 CSC 1105: Numerical Methods . . . . . . . . . . . . . 17
2
5.1.5 CSC 1106: Programming Methodology I . . . . . . . . 18
5.2 Semester 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.2.1 CSC 1204: Research Methodology . . . . . . . . . . . . 20
5.2.2 CSC 1206: Computational Mathematics . . . . . . . . 22
5.2.3 CSC 1207: Programming Methodology II . . . . . . . . 23
5.2.4 CSC 1208: Individual Project I . . . . . . . . . . . . . 24
5.2.5 CSC 1209 Logic Programming . . . . . . . . . . . . . . 25
5.3 Year I Recess Term . . . . . . . . . . . . . . . . . . . . . . . . 27
5.3.1 CSC 1301: Practical Skills Development . . . . . . . . 27
5.3.2 CSC 1303: Cisco Certified Network Associate (Au-
dited) . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.4 Semester 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.4.1 CSC 2100: Data Structures and Algorithms . . . . . . 27
5.4.2 BSE 2105 Formal Methods . . . . . . . . . . . . . . . . 29
5.4.3 CSC 2109: Discrete Mathematics . . . . . . . . . . . . 30
5.4.4 CSC 2111: Database Management Systems I . . . . . . 31
5.4.5 CSC 2113: Software Engineering . . . . . . . . . . . . 32
5.4.6 CSC 2114 Artificial Intelligence . . . . . . . . . . . . . 35
5.5 Semester 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.5.1 CSC 2200: Operating Systems . . . . . . . . . . . . . . 37
5.5.2 BSE 2203 Computer Networks & Data Communication 39
5.5.3 CSC 2209: Systems Programming . . . . . . . . . . . . 40
5.5.4 CSC 2210 Automata, Complexity and Computability . 41
5.5.5 CSC 2212 Individual Project II . . . . . . . . . . . . . 42
5.5.6 BSE 2201 Network Applications Development . . . . . 43
5.5.7 CSC 2214 Cryptology and Coding Theory . . . . . . . 44
5.6 Year 2 Recess Term . . . . . . . . . . . . . . . . . . . . . . . . 46
5.6.1 CSC 2301 Industrial Training . . . . . . . . . . . . . . 46
5.7 Semester 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.7.1 CSC 3103: User Interface Design . . . . . . . . . . . . 46
5.7.2 CSC 3110 Database Management Systems II . . . . . . 48
5.7.3 CSC 3111 Operations Research . . . . . . . . . . . . . 49
5.7.4 CSC 3112: Principles of Programming Languages . . . 50
5.7.5 CSC 3113 Emerging Trends in Computer Science . . . 51
5.7.6 BIS 3100: Modeling and Simulation . . . . . . . . . . . 52
5.7.7 CSC 3105 Computer Graphics . . . . . . . . . . . . . . 53
5.7.8 CSC 3114 Selected Topics in Computer Science . . . . 54
5.7.9 CSC 3115 Advanced Programming . . . . . . . . . . . 55
5.7.10 BIT 3102 Entrepreneurship and Business . . . . . . . . 56
5.8 Semester 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.8.1 BIT 3204 Enterprise Network Management . . . . . . . 58
3
5.8.2 CSC 3205 Compiler Design . . . . . . . . . . . . . . . 59
5.8.3 CSC 3206 Group Project . . . . . . . . . . . . . . . . . 61
5.8.4 CSC 3207 Computer Security . . . . . . . . . . . . . . 62
5.8.5 BIT 3200 Business Intelligence and Data Warehousing 63
5.8.6 BSE 3202: Distributed Systems Development . . . . . 64
7 Quality Assurance 66
7.1 Feedback from students enrolled . . . . . . . . . . . . . . . . . 66
7.2 Class meetings . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.3 Use of ICT in availing lecture materials . . . . . . . . . . . . . 67
7.4 Peer review . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.5 External examiners’ reports . . . . . . . . . . . . . . . . . . . 68
7.6 Industrial Training placement reports . . . . . . . . . . . . . . 68
7.7 Tracer studies . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4
1 Background
1.1 The B.Sc Computer Science Program
The Bachelor of Science in Computer Science is a day/evening full time
programme. It targets A’level leavers and Diploma holders. The objectives
of the program are to:
1. Develop professionals with theoretical and practical skills in Computer
Science;
2. Strengthen capacity and institutional building in Computer Science in
tertiary institutions, the private and public sector;
3. Build capacity with a practical orientation needed to link up the Com-
puter Science sector with Government and Industry under the broader
perspective of Information and Communication Technology (ICT) and
4. Provide most of the ICT professionals needed in Uganda and neighbor-
ing countries.
2 The Program
2.1 Nature of the Program
The program is full time thatis conducted both in the day and in the evening.
2.2 Duration
The duration of the program shall be three academic years consisting of six
semesters and two recess terms. Each semester lasts seventeen (17) weeks
two of which are for examinations. ecah recess term is 10 weeks.
5
3 Regulations
3.1 Admission requirements
To be admitted to the B.Sc (Computer Science) program, a candidate must
satisfy the general admission requirements for Makerere University. In addi-
tion, the following regulations shall hold:
a Direct Entry
Candidates seeking admission through this avenue must have obtained:-
b Diploma holders:
For a candidate to be admitted via the diploma scheme, he/she must:
6
vision) diploma in Computer Science, Engineering, Business Stud-
ies, Information Technology, Statistics or any other diploma with
Mathematics, Computer Science or Information Technology as one
of the subjects. The diploma must be from an Institution recg-
nised by the National Council for Higher Education (of Uganda).
3.2 Weighting
The weighting unit is the Credit Unit (CU). The Credit Unit is a contact
hour per week per semester. A contact hour is equal to (i) one lecture hour
(LH), (ii) two practical hours (PH) or (iii) two tutorial hours (TH)
3.4 Assessment
Assessment is to be done by progressive assessments (like tests, assignments,
group work) during the semester and final examination. The final examina-
tion may be purely written, purely practical or having a written and practical
component. Progressive assessments constitute 40% of the final score and the
final examination will constitute 60%.
7
Marks Letter Grade Grade Point
90-100 A+ 5 Exceptional
80- 89 A 5 Excellent
75- 79 B+ 4.5 Very good
70- 74 B 4 Good
65- 69 C+ 3.5 Fairly good
60- 64 C 3 Pass
55- 59 D+ 2.5 Marginal fail
50- 54 D 2 Clear fail
45- 49 E 1.5 Bad fail
40- 44 E- 1 Qualified fail
0 - 39 F 0 Qualified fail
A student with a grade point greater or equal to 2 (letter grade D) in a
certain course unit is considered to have passed the course unit.
3.6 Progression
A student is considered to be under normal progression if he/she has a grade
point of at least 2 in all the courses that make up his/her full semester load.
A student is under probational progression if he/she has at least a course
unit in his/her full semester load where the grade point is less than 2.
CLASS CGPA
First Class 4.40 - 5.00
Second Class - Upper Division 3.60 - 4.39
Second Class - Lower Division 2.80 - 3.59
Pass 2.00 - 2.79
8
3.9 Discontinuation
A student will be discontinued from the program if
4.1.2 Semester 2
Code Name CU LH PH TH CH
CSC 1204 Research Methodology 3 30 – 30 45
CSC 1206 Computational Mathematics 4 45 – 30 60
CSC 1207 Programming Methodology II 4 30 60 – 45
CSC 1208 Individual Project I 4 15 90 – 60
CSC 1209 Logic Programming 3 30 30 – 45
Total 18
9
4.1.4 Semester 3
Code Name CU LH PH TH CH
CSC 2100 Data Structures and Algorithms 4 45 – 30 60
BSE 2105 Formal Methods 4 45 – 30 60
CSC 2109 Discrete Mathematics 3 30 – 30 45
CSC 2111 Database Management Systems I 3 30 30 – 45
CSC 2113 Software Engineering 4 45 – 30 60
CSC 2114 Artificial Intelligence 3 30 – 30 45
Total 21
4.1.5 Semester 4
Code Name CU LH PH TH CH
CSC 2200 Operating Systems 4 45 – 30 60
BSE 2203 Computer Networks & Data Communication 4 45 30 – 60
CSC 2209 Systems Programming 4 45 – 30 60
CSC 2210 Automata, Complexity & Computability 3 45 – – 45
CSC 2212 Individual Project II 3 – 90 – 45
1 elective
BSE 2201 Network Applications Development 3 30 30 – 45
CSC 2214 Cryptology and Coding Theory 3 45 – – 45
Total 21
10
4.1.7 Semester 5
Code Name CU LH PH TH CH
CSC 3103 User Interface Design 4 30 – 60 60
BIT 3102 Enterprenuership and Business 3 30 – 30 45
CSC 3111 Operations Research 3 30 – 30 45
CSC 3112 Principles of Programming Languages 3 45 – – 45
CSC 3113 Emerging Trends in Computer Science 4 15 90 – 60
2 electives
CSC 3110 Database Management Systems II 3 45 – – 45
BIS 3100 Modeling and Simulation 4 45 – 30 60
CSC 3105 Computer Graphics 3 30 – 30 45
CSC 3114 Selected Topics in Computer Science 3 45 – – 45
CSC 3115 Advanced Programming 3 30 – 30 45
Total 23
4.1.8 Semester 6
Code Name CU LH PH TH CH
BIT 3204 Enterprise Network Management 4 45 – 30 60
CSC 3205 Compiler Design 3 45 – – 45
CSC 3206 Group Project 5 – 135 – 60
2 electives
CSC 3207 Computer Security 3 45 – – 45
BIT 3200 Business Intelligence & Data Warehousing 4 45 30 – 60
BSE 3202 Distributed Systems Development 4 45 30 – 60
Total 15
11
7. Research and Development (R&D)
Knowledge Area
Sm DSA&P OASD SOOS CN R&D MFCS TFCS SS
I CSC 1106 CSC 1106 CSC 1105 CSC 1104 CSK 1101
CSC 1100
II CSC 1207 CSC 1207 CSC 1204 CSC 1206
CSC 1209 CSC 1208
rtI CSC 1303 CSC 1301
III CSC 2100 CSC 2111 CSC 2109
CSC 2113
BSE 2105
CSC 2114
IV CSC 2209 BSE 2201 BSE 2203 CSC 2212 CSC 2200
BSE 2203 CSC 2210
CSC 2214
rtII CSC 2301
V CSC 3115 CSC 3103 CSC 3111 CSC 3113 CSC 3111 CSC 3110
CSC 3110 BIS 3100 CSC 3105
CSC 3112
VI BIT 3200 BIT 3204 CSC 3206 CSC 3207
P BSE 3202 CSC 3205
21 32 14 16 26 13 29 8
NB: Credits from audited courses are also included
From the table above, the largest proportion of the contact hours are in
TFCS, OASD, R& D and DSA&P. This is aimed at having students with (i)
hands on skills (ii) ability to research and learn new subject matter on their
own and (iii) ability to udertake advanced studies.
12
5 Detailed Curriculum
5.1 Semester 1
5.1.1 CSC 1100: Computer Literacy
(a) Description
In this course, students are to learn about the basic organization, con-
cepts and terminologies in a computerized environment. They are also
to get an in depth understanding of common computer applications.
The use of related applications in different operating systems will be
explored.
(b) Aims
The aims of the course unit are to:
13
• Common Microsoft office packages
• Office packages in other operating systems
• Text editors
• Common Linux commands
• Using the web
(b) Aims
The aims of the course are:
14
• Writing Skills:
Thinking critically/ selectively before the writing process; Select-
ing the relevant details; Organizing the relevant details logically;
Writing the reports essays, letters and taking notes in appropriate
register; Avoiding ambiguities, fallacies, irrationalities; Providing
supportive evidence; Editing documents, proof reading; Writing
and expanding information; Quoting and citing references; Writ-
ing a curriculum vitae.
• Reading Skills:
The use of skimming; scanning inference and prediction in read-
ing; Intensive and critical reading; Acquisition of specific reading
skills; Interpretation of non linear texts; Locating information and
comprehension.
• Speaking and Listening Skills to Enhance Effective Public Rela-
tions:
The art of persuasion in e.effective speaking; Conducting inter-
views; Conducting meetings; Participating in group discussions
and tutorials; Non verbal communication crues; Presentation sem-
inars, seeking clarification etc.; Expression of politeness; Public
speaking; Proper listening skills.
• Examination Skills Preparing for examinations
How much one gets from group discussions; Proper revision; Un-
derstanding examination rubric; Budgeting time during examina-
tion process; Writing examinations and following instructions.
15
puter as well as the way computers manage their resources during op-
eration. The course opens up a student to be an informed user of the
computer rather than a passive recipient of the computer services.
(b) Aims
The aims of the course are:
• Data Representation:
Integer Formats, Binary, Octal and Hexadecimal Systems, Nega-
tive integers and 2’s Complement, Floating Point Formats, BCD
Formats, Alphanumeric Codes.
• Basic Digital Circuits:
Logic gates, Karnaugh maps, Combinatorial Circuits, Binary Adders,
Multiplexers and Demultiplexers, Comparators, Decoders and En-
coders, Code Converters, ROMS and PLA’s, Sequential Circuits,
Flip Flops and Latches, R-S flip flops, J-K flip flops, T flip Flops,
D flip flops, Registers, Shift Registers and Data Transmission, Se-
quential Network Design.
• Micro Computer Architecture:
CPU, Memory, I/O Devices and Interfaces, System Bus, Exam-
ples of CPU Structures, The Intel / Pentium CPU, The Z-80 or
Motorolla, Machine Language Instructions, Instruction Formats
and Addressing Modes.
• The Processing Elements: Macroinstruction execution, Internal
Bus Transfers, Detailed Internal Architecture, Microcontrol, Hard-
wired Control, Microprogrammed Control, Reduced Instruction
Set Computers.
16
• I/O Programming:
Programmed I/O, Interrupt I/O, Polling, Priority Interrupt Sys-
tem, Direct Memory Access, I/O processors.
• Memory Systems and Memory Management:
Memory Hierarchy, Main Memory, Auxiliary Memory, Associative
Memory, Cache Memory, Virtual Memory, Memory Management
Hardware
(b) Aims
The aims of the course are
17
• Derive schemes for different set ups of numerical problems
• Test for convergence of different schemes
• Correctly use the schemes to generate solutions to the numerical
problems to the required precision
(b) Aims
The aims of the course are to provide the student with:
18
• Comprehensive knowledge about structured oriented programming;
• Knowledge in planning and organization of programming projects;
• Knowledge and techniques of evaluating syntactic and semantic
correctness of a computer program;
• Strong practical basis in programming.
• Program structure
• Variables and Operators
• Conditional statements
• Looping statements
• Arrays and strings
• Functions
• Advanced data types
• Pointers
• Dynamic memory allocation and dynamic structures
• Working with files
• GUI
19
5.2 Semester 2
5.2.1 CSC 1204: Research Methodology
(a) Description
The purpose of this course is to acquaint students with types of sci-
entific research relevant for anyone working in the field of computer
science. It will enable students to develop capacity to conduct small,
simple research projects while at the university.
(b) Aims
The aims of this course unit are to:
20
• Basic knowledge of the different research methodologies relevant
for computer science;
• Knowledge of which methods to use in what circumstances;
• Knowledge of what a research proposal entails;
• Application of quantitative and qualitative research methods and
techniques;
• Judgment of the quality of research proposals as well as the prod-
ucts (articles, papers, theses etc.) of scientific research.
21
• Saunders, M, Lewis, P & Thornhill, A (2003), Research Methods
for Students, 3rd edn, UK, Financial Times, Prentice Hall.
(b) Aims
The aims of the course are:
• Calculus
– Sequences and limits
– Limits of functions & continuity
– Advanced differential calculus
• Statistics
– Discrete Random variables and distributions
– Continuous distributions
– Basics of Monte Carlo simulations
• Further topics
– Mathematics for image processing
– Mathematics for signal processing
22
(f) Reading list
(i) Calculus and Analytic Geometry (9th Edition) by George B. Thomas,
Ross L. Finney Addison Wesley, 1995.
(ii) Introduction to Statistics by R. E Walpole, 3rd Ed, Prentice Hall,
1982
23
(f) Reading list
(i) Java Software Solution: Foundations of Program Design (6th Edi-
tion) by John Lewis and William Loftus, Addison-Wesley, 2009.
(ii) A Programmer’s Guide to JavaT M Certification: A comprehensive
Primer by Khalid A. Mughal and Rolf W. Rasmussen, Addison-
Wesley, 1999.
24
(f) Reading lists
Students can read any literature like books and online tutorials that
can help in addressing the problem in the project at hand.
25
• Be familiar with a logic for reasoning about sequential programs,
and capable of constructing correctness proofs for simple programs
• Introduction
• Pure logic (relational) programming
• The Prolog Language
• Programming in Prolog.
• Efficient Prolog Programming
• Combining Logic Programming, Functional Programming, Higher
Order, Objects.
• Review of first order predicate logic and resolution.
• Fundamental results.
• Semantics of logic programs.
• Implementation of logic languages and advanced compilation.
• Parallelism, concurrency.
• Other LP/CLP languages
26
5.3 Year I Recess Term
5.3.1 CSC 1301: Practical Skills Development
The course aims at imparting practical skills in areas chosen by the faculty.
The students are to be supervised by staff with in the faculty. Areas of
practica skills development include
• Implementation of projects
• Hardware maintainance
• Computer assembly
This can be done within the Faculty of Computing and Information Technol-
ogy or any other unit in Makerere University. Students will write a report
at the end of the course.
5.4 Semester 3
5.4.1 CSC 2100: Data Structures and Algorithms
(a) Description
The course gives students a firm foundation of data structures and
algorithms. The course trains students on systematic development and
analysis of algorithms. The importance of algorithm complexity on
computer performance is emphasized. Typical computational problems
and their solutions/analysis are to be covered.
(b) Aims
The aims of the course are to
27
• Introduce students to concepts of algorithm analysis;
• To expose students generic algorithmic problems and apply them
to other computational scenarios.
28
5.4.2 BSE 2105 Formal Methods
(a) Description
The course provides students with skills of solving generic formal prob-
lems in science. It covers the intellectual and practical skills necessary
for problem formalization.
(b) Aims
The aims of the course are:
• To provide students with factual knowledge including the mathe-
matical notations and terminologies used in formalizing scientific
problems
• To provide students with fundamental principles including the
laws and theorems arising from the concepts covered in this course;
• To be able to apply course material along with techniques and
procedures to solve practical problems;
• To provide programming skills by writing numerical programs like
Matlab programs, to solve numerical problems.
(c) Teaching and Learning Patterns
Teaching will be by Lectures and practical demonstrations
(d) Indicative Content
• Predicate Logic Specification:
Foundations; Basic concepts; Verification; Z; Tools and systems;
Z animation Miranda and ZANS; Nitpick and the Z Notation.
• Algebraic Specification:
Foundations; Basic concepts; Verification; Tools and systems; Mi-
randa; The OBJ family of languages; LARCH.
(e) Assessment Method:
Assessment will be in terms of tests and practical assignments (40%)
and final written examination (60%)
(f) Reading list
(i) Z: An Introduction to Formal Methods, by Antoni Diller, 2nd
edition, Wiley, (June 1994), ISBN-10: 0471939730
(ii) Logic in Computer Science: Modeling and Reasoning about Sys-
tems, by Michael Huth and Mark Ryan, Cambridge University
Press; 2nd Edition (August, 2004), ISBN-10: 052154310X
29
(iii) Formal Methods and Models for System Design: A System Level
Perspective, by Gupta, R., Le Guernic, P. Shukla, S.K. and Talpin,
J.P. (Eds.), 2004, ISBN: 978-1-4020-8051-7
(b) Aims
The aim of this course is to provide the student with: -
30
• Searching algorithms
(b) Aims
The aims of the course are to:
31
• Background to databases
• Evolution of database systems
• Database organization and architecture
• Database models
• The database development life cycle
• Database design
• Tuning of operational systems
• Querying databases
• SQL/PL SQL
• Scripting
32
• To introduce ethical and professional issues and to explain why
they are of concern to software engineers
33
• Design methods: data design, architectural design, transform map-
ping, design optimization, human computer interface design, pro-
cedural design and tools; Design documentation.
• Software testing: Testing objectives, Testing principles, Testabil-
ity, test case designing, white box testing; Basis path testing: Con-
dition testing, data flow testing, loop testing; Black box testing:
graph based testing methods, equivalence partitioning, Boundary
value analysis, comparison testing; Testing documentation and
help facilities; Software testing strategy: unit testing, integration
testing, validation testing, system testing.
• Software project management techniques: project metrics, soft-
ware measurement and metrics, software quality metrics;
• Software project planning: objectives of planning, resources, project
estimation and estimation models, project decomposition tech-
niques, make-buy decisions; automated estimation tools.
• Risk management: software risks, risk identification, risk projec-
tion, risk mitigation, monitoring and management; Project Schedul-
ing: people and effort relationships, defining tasks, defining task
network, scheduling techniques; Software teams and intra-team
relationships; role of project manager.
• Software Quality Assurance: Concept of quality, quality control
vs. quality assurance, cost of quality, factors that affect quality,
quantitative view of quality, quality metrics, defect removal ef-
ficiency SQA activities, ISO standards and CMM practices, SEI
levels, Software reviews, Formal approaches to SQA, Statistical
Quality Assurance. Software reliability, reliability metrics, relia-
bility models, meeting reliability requirements.
• Effective metrics for software process: Measurement principles,
attributes of software metrics, metrics for analysis model, metrics
for design model, metrics for source code, metrics for maintenance.
• Software reuse: difficulties in reuse, hardware reuse vs. software
reuse, reusable artifacts, domain engineering approach, analysis
design and construction of reusable components, classification and
retrieval of components, economic impact of reuse and reuse met-
rics.
• Computer aided software engineering: CASE tools and applica-
tion.
(f) Assessment method
34
• Continuous assessment through practical exercises and Course-
work, together with two scheduled tests (40%)
• Final exam at the end of the Semester and accounts for 60% of
the final grade.
35
• To provide students with critical and evaluative perspectives re-
lated to Computer Games development and develop students ca-
pacity for independent and self-reflective learning, ensuring their
future contribution to research and development.
36
• Knowledge Representation: First-order predicate calculus; PRO-
LOG and LISP languages; Semantic nets; partitioned nets; Pro-
duction rules; knowledge base, the inference system, forward and
backward deduction.
• Expert System: Existing systems (DENDRAL, MYCIN), Domain
exploration; Meta-knowledge, expertise transfer, self-explaining
systems.
• Pattern Recognition Structured Descriptions: Symbolic descrip-
tion, machine perception, line finding, interpretation, semantics
and models, object identification and speech recognition.
5.5 Semester 4
5.5.1 CSC 2200: Operating Systems
(a) Description
Operating Systems course introduces students to software that con-
trols hardware and makes the hardware usable. Its interaction with
other computer devises and how it controls other computer processes
is explored.
(b) Aims
The aims of the course are:
37
• To provide students with skills to write basic programs to utilize
underlying operating system infrastructures.
38
5.5.2 BSE 2203 Computer Networks & Data Communication
(a) Description
This course examines principles, design, implementation, and perfor-
mance of computer networks and data communication. The aim is to
sharpen student’s understanding and skills in computer networking and
data communication. Subjects for discussion include: Internet proto-
cols and routing, local area networks, wide area networking, wireless
communications and networking, performance analysis, congestion con-
trol, TCP, network address translation, multimedia over IP, switching
and routing, mobile IP, peer-to-peer networking, network security, and
other current research topics and technologies.
(b) Aims
The aims of the course are
39
– To write a few network scripts
(d) Teaching and Learning Pattern
The course will be delivered inform of lectures, tutorials, lab experi-
mentation, and group assignments.
(e) Indicative Content
– Network services and applications: DNS, HTTP, SMTP, peer-to-
peer systems
– Network transport architectures, TCP, UDP, TCP congestion con-
trol
– Routing and forwarding, intra-domain, inter-domain routing algo-
rithms and Mobile IP
– Link layers and local area networks, Ethernet, WiFi, and mobility
– Multimedia communications and quality of service
– Network measurement, inference, and management
– Network security (ACL, IPSec, etc)
– Network programming
– Network experimentation and performance analysis
– Protocol verification
(f) Assessment method
Assessment will be in terms of tests and Assignment (40%) and final
examination (60%)
(g) Reading lists
(i) James F. Kurose and Keith W. Ross. Computer Networking - A
Top Down Approach Featuring the Internet, 3rd edition, Addison-
Wesley, 2004, ISBN 0-321-22735-2.
(ii) L. Peterson and B. Davie, Computer Networks: A Systems Ap-
proach. Morgan Kaufmann Publishers, 1999.
40
(b) Aim
Skills in tools provided by systems, their commands, system calls and
understanding for model of computation.
41
• To introduce students to the concepts of complexity, automata
and computability
• To prepare students for advanced studies in compiler construction
and principle of programming languages
(c) Teaching and learning pattern Teaching will be in form of class lectures
and tutorials
42
more polished than in CSC 1208 Individual Project I. More empha-
sis will be put on creativity, robustness, data validation, security and
completeness.
(b) Aims
The aims of the course are:
(b) Aims
The aim of the course is to:
43
• Give students theoretical and practical skills of developing network
applications
• Equip students with security and performance aspects of network
based applications
• Expand the applications of students programming skills
(i) Core Servlets and Java Server Pages, Volume 1: Core Technologies
by Marty Hall (2nd Edition), Prentince Hall , 2000.
(b) Aims
The aims of the course are
44
• To understand the building blocks of crypto systems and error
correction
• To gain historical understanding of the evolution of crypto sys-
tems.
• To develop tools necessary to crypto analyze crypto systems
• To gain insights in the practical application of cryptology and
error correction in the modern information age.
• To understand the goals and trade-offs associated with encryption
and error-control coding systems.
45
(d) Teaching and Learning Pattern
The course will be delivered inform of lectures, tutorials, and group
assignments.
5.7 Semester 5
5.7.1 CSC 3103: User Interface Design
(a) Description:
The course introduces the principles of user interface development, fo-
cusing on design, implementation and evaluation.
(b) Aims
The course aims at providing the skills listed below to students:
46
• Developing efficient, flexible and interactive User Interfaces(UI)
• Provide ability to identifying system users, the tasks they want to
carry out and the environment in which they will be working;
• Creating a conceptual designs;
• Designing various kinds of UI, in particular graphical user inter-
faces (GUIs) and web sites; evaluating UIs;
• Appreciation of realities of developing usable UIs in an organiza-
tion.
• Usability
• User-Centered Design
• UI Software Architecture
• Human Capabilities
• Output Models
• Conceptual Models and Metaphors
• Input Models
• Design Principles
• Paper Prototyping
• Constraints and Layouts
• Graphic Design
• Computer Prototyping
• Heuristic Evaluation
• User Testing
• Experiment Design
• Experiment Analysis
47
(i) Norman, D. A. The Design of Everyday Things. New York, NY:
Doubleday, 1990. ISBN: 0385267746.
(ii) Nielsen, J. Usability Engineering. Burlington, MA: Academic
Press, 1994. ISBN: 0125184069.
(iii) Mullet, K., and D. Sano.Designing Visual Interfaces: Communica-
tion oriented techniques. Prentice Hall, 1994. ISBN: 0133033899.
(b) Aims
The aim of the course is to equip students with fundamental knowledge
of the operation of database systems and how they interact with the
operating system.
• Enhanced ER modeling
• Tuning (operational) systems to improve performance
• Advanced scripting
• Data validation
• Relational algebra and Relational calculus
• Low level output representation using relational calculus
• Query processing
• Transactions management
• Indexing and hashing
48
(e) Assessment Method
Assessment will be in terms of tests and assignments (40%) and final
examination (60%)
(b) Aims
The aim of the course is to improve students’ problem solving skills by
subjecting them to real life problems and guide them through formula-
tion of their solutions. The choice of the cases chosen depends on their
applicability in real life computing environment.
(d) Teaching and Learning Pattern Teaching will be in form of lectures and
Tutorials
• Linear programming
• Network Analysis
• Decision trees
• Markov processes
49
(h) Reading lists
(b) Aims
The aims of the course are
50
• Types: role of types in programming and programming languages,
types and their operations: products, sums, functions, recursive
types, reference and array types
• Primarily imperative issues: control flow, arrays, pointers and
references, parameter-passing mechanisms, scoping
• Type systems: strongly typed languages type checking (static vs.
dynamic), type equivalence (by name vs. structural), overloading,
coercion, polymorphism, type inference
• Binding: declarations and environments. Block structure: scope
and visibility, stack discipline. Bound occurrences: static vs. dy-
namic binding.
• Encapsulation: information hiding, modules, abstract data types,
classes
• Language implementation: parsing, code generation, garbage col-
lection.
(f) Assessment method
Assessment will be by Tests and Assignments (40%) and final written
examination (60%)
(g) Reading lists
(i) Friedman, Wand, and Haynes, Essentials of Programming Lan-
guages, MIT Press, 2001
51
(c) Teaching and Learning pattern
Students will be grouped in theme areas which will be covered by a set
of staff. Staff will guide students on the specific themes/topics in the
area as well as where to search for information. Staff will also address
experiences and hardships found.
(b) Aims
The aims of the course are:
52
• Design of simulation experiments,
• Generation of appropriate values of random variables,
• Interactive procedures and interpretation of results.
(b) Aims
The aims of the course are:
• Graphics hardware,
• Geometrical transformations,
• Surface and volume visualization,
• Design and implementation of graphical user interfaces.
• Two dimensional imaging processes.
• Computer graphics applications.
• Display system organization;
53
• Display devices and modes;
• Display file construction and its structure;
• Graphic primitive - device initialization,
• view porting and windowing;
• Line drawing,
• simple and symmetrical Digital Differential Analysis (DDA);
• Arch and circle generating DDA Line; and polygon clipping algo-
rithms;
• Curve plotting;
• Transformations- projections and perspective views;
• Picture segmentation: Graphics standards - PHIGS and GKS.
(e) Assessment method Assessment will be in terms of assignments and
tests (40%) and final exam (60%)
(h) Reading lists
(i) Introduction to Computer Graphics by James D. Foley, Andries
van Dam, Steven K. Feiner, John F. Hughes and Richard L.
Phillips, Addison Wesley, 2003.
(ii) Fundamentals of Computer Graphics by Peter Shirley. AK Peters,
2002.
54
(d) Indicative content
The content is to be determined by the lecturer. The head of depart-
ment (or senior staff appointed by him/her) may have to be convinced
it is sufficient in depth and breadth.
(b) Aims
The aim of the course is to concretize the student’s past programming
experience as well as highlighting critical practices in programming that
are necessary for a professional programmer
55
(e) Teaching and Learning Pattern
Teaching will be by lectures and lab demonstrations.
(f) Indicative Content
• Programming for Security:
• Programming for Robustness
• Programming for Maintainability
• Trends in Programming Paradigms
(g) Assessment method
Assessment will be by tests and practical assignments (40%) and final
written examination (60%)
(h) Reading lists
(i) Advanced Programming in the UNIX Environment by W. Richard
Stevens and Stephen A. Rago Addison WEsley 1992
56
• Provide a general company description for the student’s start-up
business.
• Identify products and services which will be offered in the start-up
business.
• Outline the components of a business plan including marketing,
operations, finances, and management and organization
• Be able to use the business plan as an integral tool in small busi-
ness management.
57
• Business entry strategies: Steps in starting a business, Purpose
of business, Description of business, Starting a business versus
buying a business
• Planning: Setting goals, Operational approach, Laws and regula-
tions affecting a small business in Uganda, CAP and Local bye
laws.
• Sources of information and assistance: Trade association and other
non-governmental sources, Local, state, and federal governmental
sources, Small business analysis
• Description of a comprehensive business plan: Reason for prepar-
ing a business plan, Types of business plans, Form of business
plan, Contents of a successful business plan
• Outline of a business plan: Preparation of an executive summary,
Establishment of company strategy, Development of a marketing
plan, Sales strategy, Financial plan
• Completion of the business plan: Writing the plan, Outside review
of the plan, Social and Ethical Responsibility
5.8 Semester 6
5.8.1 BIT 3204 Enterprise Network Management
(a) Description
The course is to equip students with knowledge of managing enterprise
computer/data networks. This caters for enterprise critical aspects like
reliability, security and user management.
58
(b) Aims
The aims of the course are to equip students with skills to plan, manage
and monitor large computer networks.
59
(b) Aims
The aim of the course is to allow students to examine how a high-level
language program is accepted as input and translated into assembly
language or machine language so that the central processing unit re-
ceives instructions which it understands and can execute.
(c) Teaching and Learning pattern
The course consists of a traditional theoretical component and a project
component. The lecture component introduces the basic concepts of
compiler writing. The project component will involve students in writ-
ing a compiler for a specified programming language.
(d) Indicative content
• Language translators: Introduction to compilers and interpreters.
• The structure of a compiler: lexical analysis, parsing, semantic
analysis.
• Intermediate code generation, register allocation, global optimiza-
tion.
• Lexical scanning
• Parsing
• Automatic parser construction. FIRST and FOLLOW functions.
LL(1) parsers. LR parsers. Conflicts in LR grammars and how to
resolve them
• Semantic analysis: Attributes and their computation, tree-traversals,
visibility and name resolution. Inherited attributes and symbol
tables. Name resolution in block-structured languages
• Type checking: Type systems, varieties of strong typing, over-
load resolution, polymorphism and dynamic dispatching. Type-
checking and type inference, unification
• Run-time or Run-time organization: storage allocation, non-local
references, parameter passing, dynamic storage allocation. Excep-
tion handling, debugging information
• Intermediate code generation: control structures, expressions, sim-
ple register allocation. Aggregates and other high-level constructs
• Global optimization
(e) Assessment method
Assessment will be by assignments and/or tests (40%) and written
examination (60%)
60
(f) Reading list
(b) Aims
The aim of the course is to give students experience in
61
5.8.4 CSC 3207 Computer Security
(a) Description
Computer security is a branch of technology concerned with digital
security or information security applied to computers. Since the largest
part of the computer that users interact with is software, computer
security pays big attention to development of secure software.
(b) Aims
The aims of the course are:
62
5.8.5 BIT 3200 Business Intelligence and Data Warehousing
(a) Description
This course covers techniques and software tools that can assist man-
agement that deals with large amounts of data in management and
business decision making. The course covers the fundamental differ-
ences between databases and data warehouses, the techniques of de-
veloping data warehouses as well as manipulating them to generate
business strategic decisions.
(b) Aims
The aims of the course are
63
(f) Assessment method Assessment will be in form of tests and practical
assignments (40%) and final written examination (60%)
2. Aims
The aim of the course are to equip students with skills of developing
distributed systems
4. Indicative content
5. Assessment Method
Assessment will be in form of tests and (practical) assignments (40%)
and final examination (60%)
6. Reading list
64
6 Resources and Infrastructure
The Department of Computer Science and the Faculty of Computing and
Information Technology have the enough resources and infrastructure to suf-
ficiently run the programme.
6.1 Funds
Fees payable by the students will enable the University to sustain the pro-
gramme. The fees and the numder of students to be admitted are the same
as those on the old curicullum.
6.2 Staff
The Faculty of Computing and Information Technology has a big pool of staff
who can competently teach the courses. The list of staff members in the De-
partment of Computer Science is in Appendix B. The department also relies
on staff from other departments like Information Technology, Information
Systems and Networks together with visiting staff from other universities.
65
6.5 Software
On top of the physical computers, students need software for the different
practical sessions. Different computers are installed with different software
depending on their focus. Most of the software is available as free distri-
butions for academic purposes. The faculty and department therefore have
(and can access) enough software that can run the practical aspects of the
program.
7 Quality Assurance
Several activities will be carried out as quality assurance measures so as to
(a) Measure the general extent to which the required skills have been
achieved
(c) Create a feedback benchmark for possible future revisions in the cur-
riculum
The following activities will be carried out in the process of monitoring and
assuring quality in the proposed program.
66
Department in case there are any quality related matters in a particular
class. This set up is to be maintained.
At the end of the semester, samples of students are given questionnaires
to respond to several quality related matters like staff punctuality, delivery
mode, course content and the general perceived usefulness of the course unit.
The Faculty of Computing and Information Technology is the process of
creating a computerized system that will capture and analyze the data. With
the computerized system:
(i) Every student will be required to assess every lecturer teaching him/her,
the sample space will therefore be increased
(ii) No time will be required in the analysis of the results. Staff and faculty
management will be able to get the feedback instantly
(iii) Data will be easily archived and therefore the trend of staff performance
in specific areas will be easy to visualize
67
and presentation of materials. Consequently, for every course, students will
access the best possible material in the view of all staff in the department
not the course instructor
68
Staff
No Name (Highest Qualification) Rank Comment
1 Venanius Baryamureeba (Ph. D) Professor Dean
2 Jose G. Quenum (Ph. D) Senior Lecturer
3 John Quinn (Ph. D) Lecturer
4 John Ngubiri (Ph. D) Lecturer Head of Department
5 Narcis T Rwangoga (M. Sc) Ass. Lecturer Ass. Head of Dept
6 Florence Tushabe (M.Sc) Ass. Lecturer Ph. D. Student
7 Richard Ssekibuule (M. Sc) Ass. Lecturer Ph. D. Student
8 Jonathan Kizito (M. Sc) Ass. Lecturer Ph. D. Student
9 Engineer Beinomugisha (M.Sc) Ass. Lecturer Ph. D. Student
10 Ronald Azairwe (M.Sc) Ass. Lecturer Ph. D. Student
11 Rose Nakibuule (M.Sc) Ass. Lecturer Ph. D. Student
12 Doreen Tuheirwe (B.Sc) Teaching Assistant M. Sc. Student
13 Joab Ezra Agaba (B.Sc) Teaching Assistant M. Sc. Student
69
Staff and Load Distribution
Staff Specialisation Old Ld New Ld Old Ld New Ld
Programing,
V. Baryamureeba MCS MCS MCS MCS
Theoretical 3 3 3 3
(PhD, Professor) 9100 9100 9200 9200
computing
Theoretical MCS MCS MCS
computing, 7117 9102 7215 MCN
J.G.Quenum Compiler MCS MCN MCS 7207
9 9 9 6
(PhD, S. Lecturer) Theory, Dis- 8102 7105 7218 MCS
tributed MCS MCN MCS 9202
Systems 8101 7118 9202
Image pro-
cessing, MCS MCS MCS
MCS
Mathematical 7116 7216 7217
J. Quinn CSC
Comput- MCS MCS MCS
9 2109 9 9 9
(PhD, Lecturer) ing, Image 8104 7217 7224
MCS
processing, MCS MCS MCS
9101
Pattern 7101 9201 9201
Recognition
Programing,
Disributed
MCS
Systems, MCS MCS MCS
J. Ngubiri CSC
Mathematical 7115 7202 7202
9 2111 9 9 6
(PhD, Lecturer) Computing, CSC CSC MCS
MCS
Database 3100 1201 7220
7109
Systems,
Algorithms
Software En-
gineering, Ar- CSC CSC CSC CSC
N.T. Rwangoga tificial Intelli- 3101 1100 2204 1204
12 12 12 12
(MSc, A. Lecturer) gence, Infor- CSC CSC CSC CSC
mation Secu- 1100 2112 2206 3204
rity
Optimization,
CSC CSC CSC CSC
F Tushabe Image Pro-
1103 3111 2208 3111
12 12 12 12
(MSc A. Lecturer) cessing, CSC CSC CSC CSC
Programing,
3102 3100 1204 1206
Foreinsics
Programing, CSC CSC CSC CSC
R Ssekibuule Security, 3103 3103 1200 2209
12 12 12 12
(MSc A. Lecturer) Distributed CSC CSC CSC CSC
Systems 2102 3115 1202 3205
70
Staff Specialisation Old Ld New Ld Old Ld New Ld
Programing,
Theoretical
CSC CSC CSC CSC
computing,
J. Kizito 2100 1106 3203 2210
Compiler 12 12 12 12
(MSc A Lecturer) CSC CSC CSC CSC
Theory,
3106 2100 2201 1209
Mathematical
Computing
Image Pro-
cessing, CSC CSC CSC BSE
E. Beinomugisha Theoretical 2101 2105 3200 2203
12 12 12 12
(MSc A. Lecturer) Computing, CSC CSC CSC BIT
Networked 1101 2114 2200 3204
Systems
Programing,
CSC CSC CSC BSE
Optimiza-
R. Azairwe 1102 1105 1203 3202
tion, Artifi- 12 12 12 12
(MSc A. Lecturer) CSC CSC CSC CSC
cial Intelli-
2103 2214 2203 2214
gence
Theoretical
computing, CSC CSC CSC CSC
R. Nakibuule Computer 2104 1104 2202 1207
12 12 12 12
(MSc T. Assistant) Graphics, CSC CSC BIT CSC
Image pro- 1102 3105 3204 2200
cessing
Programing,
DCS DCS DCS
D. Tuheirwe Theoretical
1103 1103 DCS 1208
comput- 12 12 12 12
(BSc T. Assistant) DCS DCS 1204 DCS
ing, Health
1105 1107 1206
Informatics
Programing,
DCS DCS DCS
Software De-
J.E. Agaba 1104 DCS 1200 1205
velopment, 12 6 12 12
(BSc T. Assistant) DCS 1108 DCS DCS
Database
1200 1202 1207
Systems
71