The Bachelor of Science in Computer Science is the oldest undergraduate degree Programme in Makerere University School of Computing and Informatics Technology. It was launched at the inception of Institute of Computer Science in 2001. It was later revised in 2009 and 2013. The Bachelor of Science in Computer Science is a three year full-time programme open to all qualifying students. The programme is based on an effective curriculum, achieved through considering a number of factors that cover the opportunities, and gaps that need to be addressed by the BSC CSC programme. The Bachelor of Science Computer Science programme at Makerere University has been designed to produce graduates who are capable of creating and inventing new technological solutions that solve the most pressing problems particularly in the developing world context and contributing to their transitioning into middle-income and developed countries.
Programme objectives:
The Bachelor of Science in Computer Science programme aims to educate and develop students in strong theoretical and practical foundations of Computer Science to enable them excel in the workplace and to be lifelong learners. It is designed to equip students with capabilities for creating and inventing new technological solutions that solve the most pressing problems particularly in the developing world context. The programme is designed to address the diverse needs of multiple stakeholders by focusing on Computer Science skills required to succeed in the 21st century. Specifically, the objectives of the programme are to:
Program Learning Outcomes
Graduates of the BSc. Computer Science will be trained with the following learning outcomes. At the end of this program, graduates of the BSc. Computer Science should:
Target Group
The program targets two categories of people. These are A level leavers and diploma holders in relevant disciplines.
Nature of the Program
The programme has both government and privately sponsored students.
Duration
The duration of this program is three (3) academic years consisting of six semesters and two recess terms in the first and second year. Each semester lasts seventeen (17) weeks. Each recess term lasts ten (10) weeks.
Tuition Fees
Tuition fees for privately sponsored students shall be 3,024,000 Uganda Shillings per year for Ugandans and 4,536,000 Uganda Shillings per year for non-Ugandans. Recess Term fees for Year 1 Recess shall be 200,000 Uganda Shillings.
Admission requirements
To be admitted to the B.Sc (Computer Science) program, a candidate must satisfy the general admission requirements for Makerere University. The following are the available entry schemes for admission:
Candidates seeking admission through this avenue must have obtained:
For purposes of computing weighted points, the A’ level subjects shall be grouped and weighted as per the University weighting system.
Group | Weight | Subjects |
---|---|---|
Essential | 3 | Mathematics and any other best done subject among: Physics, Chemistry, Biology,Economics, Technical Drawing |
Relevant | 2 | Any other best done subject of all A’ level subjects. |
Desirable | 1 | General Paper, Subsidiary Mathematics, Subsidiary ICT |
For a candidate to be admitted via the diploma scheme, he/she must:
For a candidate to be admitted via the degree holder scheme, s/he must; Satisfy the general minimum entry requirements of Makerere University. In addition candidates seeking admission through this avenue must have obtained:
Progression
Progression shall be regarded as normal, probationary or discontinuation as per the standard of Makerere University Senate guidelines.
Normal Progress
This occurs when a student passes each course taken with a minimum Grade Point of 2.0
Probationary
This is a warning stage and occurs if either the cumulative grade point average (CGPA) is less than 2.0 and /or the student has failed a core course. Probation is waived when these conditions cease to hold
Discontinuation
When a student accumulates three consecutive probations based on the CGPA or the same core course(s), he /she shall be discontinued
Retaking a Course
A student may re-take any course when it is offered again in order to pass if the student had failed the course. A student may take a substitute elective, where the student does not wish to re-take a failed elective
Weighting System
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:
Semester Load and Minimum Graduation Load
The normal semester load is between 18 and 20 credit units. The minimum graduation load is 124 credit units.
Course Assessments
Each course will be assessed on the basis of 100 marks with proportions as follows:- Coursework – 40% and Examination 60%
A minimum of two course assignments/tests shall be required per course
Course work shall consist of individual tests, group assignment and presentations in each semester.
Year I, Semester I
Code | Name | LH | PH | CH | CU | Remark |
---|---|---|---|---|---|---|
CSK 1101 | Communication Skills | 45 | 30 | 60 | 4 | Old |
CSC 1102 | Structured & Object-Oriented Programming | 30 | 60 | 60 | 4 | New |
CSC 1103 | Computer Organization & Architecture | 30 | 60 | 60 | 4 | Modified |
CSC 1105 | Mathematics for Computer Science | 30 | 60 | 60 | 4 | New |
CSC 1106 | Digital Innovation & Computational Thinking | 30 | 30 | 45 | 3 | New |
Audited Course:- | ||||||
CSC 1100 | Computer Literacy | 30 | 60 | 60 | 4 | Old |
Total Credit Units | 19 |
Year I, Semester II
Code | Name | LH | PH | CH | CU | Remark |
---|---|---|---|---|---|---|
CSC 1200 | Operating Systems | 30 | 60 | 60 | 4 | Modified |
CSC 1201 | Probability & Statistics | 30 | 60 | 60 | 4 | New |
CSC 1206 | Software Development Project | 15 | 90 | 60 | 4 | Modified |
IST 1204 | Systems Analysis and Design | 30 | 60 | 60 | 4 | Old |
CSC 1207 | Data Structures and Algorithms | 30 | 60 | 60 | 4 | Old |
Total Credit Units |
|
Year I Recess term
Code | Name | LH | PH | CH | CU | Remark |
---|---|---|---|---|---|---|
CSC 1303 | Cisco Certified Network Associate(CCNA) Audited | 45 | 60 | 75 | 5 | Old |
CSC 1304 | Practical Skills Development | 15 | 90 | 75 | 5 | Modified |
Total Credit Units | 5 |
Year II, Semester I
Code | Name | LH | PH | CH | CU | Remark |
---|---|---|---|---|---|---|
CSC 2105 | Discrete Mathematics | 30 | 30 | 45 | 3 | Modified |
BSE 2106 | Computer Networks | 30 | 60 | 60 | 4 | Old |
CSC 2107 | Database Management Systems | 30 | 60 | 60 | 4 | New |
CSC 2114 | Artificial Intelligence | 30 | 60 | 60 | 4 | Modified |
CSC 2118 | Embedded and Real-time Systems | 30 | 60 | 60 | 4 | New |
Total Credit Units | 19 |
Year II, Semester II
Code | Name | LH | PH | CH | CU | Remark |
---|---|---|---|---|---|---|
IST 2203 | Research Methodology | 30 | 60 | 60 | 4 | Old |
CSC 2201 | Introduction to Machine Learning | 30 | 60 | 60 | 4 | New |
CSC 2202 | Cloud Computing | 45 | 30 | 60 | 4 | New |
CSC 2210 | Automata, Complexity & Computability | 30 | 30 | 45 | 3 | Modified |
Electives (select 1) | ||||||
CSC 2207 | Robotics | 30 | 60 | 60 | 4 | New |
CSC 2208 | Software Quality and Verification | 30 | 60 | 60 | 4 | New |
CSC 2218 | Software Construction | 30 | 60 | 60 | 4 | New |
Total Credit Units | 17 |
Year 2 Recess term
Code | Name | LH | PH | CH | CU | Remark |
---|---|---|---|---|---|---|
CSC 2303 | Field Attachment | - | 300 | 75 | 5 | Old |
Total Credit Units | 5 |
Year III, Semester I
Code | Name | LH | PH | CH | CU | Remark |
---|---|---|---|---|---|---|
BAM 2102 | Entrepreneurship Principles | 30 | 30 | 45 | 3 | Modified |
CSC 3115 | Advanced Programming | 30 | 60 | 60 | 4 | Old |
CSC 3118 | Computer Science Project I | - | 150 | 75 | 5 | Modified |
CSC 3119 | User Interface Design | 45 | 30 | 60 | 4 | Modified |
Electives (select 1) | ||||||
IST 3110 | Business Process Management | 30 | 60 | 60 | 4 | Old |
CSC 3114 | Cryptology and Coding Theory | 45 | - | 45 | 3 | Modified |
CSC 3117 | Operations Research | 30 | 30 | 45 | 3 | New |
CSC 3121 | Computer Graphics | 30 | 30 | 45 | 3 | Modified |
IST 3208 | Modelling and Simulation | 30 | 30 | 45 | 3 | Old |
Total Credit Units | 19 |
Year III, Semester II
Code | Name | LH | PH | CH | CU | Remark |
---|---|---|---|---|---|---|
CSC 3205 | Compiler Design | 30 | 30 | 45 | 3 | Old |
CSC 3207 | Computer Security | 30 | 30 | 45 | 3 | Modified |
CSC 3211 | Computer Science Project II | - | 150 | 75 | 5 | Old |
CSC 3217 | Emerging Trends in Computer Science | 30 | 30 | 45 | 3 | Old |
Electives (select 1) | ||||||
BSSE 2206 | Data Communications | 30 | 60 | 60 | 4 | Old |
BSE 3202 | Distributed Systems Development | 30 | 60 | 60 | 4 | Modified |
BSE 3205 | Data Warehousing and Business Intelligence | 30 | 60 | 60 | 4 | Old |
Total Credit Units | 18 |
Year I, Semester I
Course Code | Course Name | Mapped to | Course Code | Course Name | Remark |
---|---|---|---|---|---|
CSS 1100 | Computer Literacy | CSS 1100 | Computer Literacy | ||
CSC 1104 | Communication skills for IT | CSC 1104 | Communication skills | ||
CSC 1103 | Computer Organization & Architecture | CSC 1103 | Computer Organization & Architecture | ||
CSC 1108 | individual Project | CSC 1202 | Software development project | Year 1 sem 2 | |
CSC 1107 | Structured Programming | CSC 1102 | Structured & Object Oriented Programming | Students redoing both CSC 1104 and CSC 1214 should consult HOD |
Year I, Semester II
Course Code | Course Name | Mapped to | Course Code | Course Name | Remark |
---|---|---|---|---|---|
BIS 1206 | Systems Analysis and Design | IST 1204 | Systems Analysis and Design | ||
MTH 1203 | Calculus 1 | CSC 1105 | Mathematics for Computer Science | Year 1 semester 1 students redoing both MTH1203 and MTH2203 should consult the HOD CS | |
CSC 1214 | Object-oriented Programming | CSC 1102 | Structured & Object Oriented Programming OR study with BSSE Year 1 BSE1209 Object-oriented programming I |
Students redoing both CSC 1107 and CSC 1214 should consult HOD | |
MTH 2203 | Numerical Analysis 1 | CSC 1105 | Mathematics for Computer Science OR Study with BSSE Year 1 MTH2203 Numerical Analysis I |
Year 1 semester 1 | |
BIS 1204 | Data & Information Management 1 | IST 1203 | Data & Information Management 1(BSSE) | To study with BSSE students IST1203 Data & Information Management 1 |
Year II, Semester I
Course Code | Course Name | Mapped to | Course Code | Course Name | Remark | |
---|---|---|---|---|---|---|
CSC 2100 | Data Structures & Algorithms | CSC 1204 | Data Structures & Algorithms | Year 1 semester 2 | ||
MTH 3105 | Discrete Mathematics | CSC 2105 | Discrete Mathematics | Year 2 semester 1 | ||
BSE 1206 | Computer Networks | BSE 1206 | Computer Networks | |||
CSC 2114 | Artificial Intelligence | CSC 2114 | Artificial Intelligence | |||
(Electives 1) | ||||||
BSE 2105 | Formal Methods | BSE 2105 | Formal Methods(BSSE) | To study with BSSE BSE 2105 Formal methods Year 2 semester 1 | ||
CSC 2113 | Software Engineering | CSC 2118 | Software Construction |
Year II, Semester II
Course Code | Course Name | Mapped to | Course Code | Course Name | Remark |
---|---|---|---|---|---|
CSC 2200 | Operating Systems | CSC 1200 | Operating Systems | Year 1 semester 2 | |
CSC 1209 | Logic Programming | CSC 2105 OR CSC 3117 |
Discrete Mathematics Operations Research |
Year 2 semester 1 Year 3 semester 1 |
|
CSC 2209 | Systems Programming | To study with BSSE students Year 3 | |||
CSC 2210 | Automata, Complexity & Computability | CSC 2210 | Automata, Complexity & Computability | ||
BIT 2207 | Research Methodology | IST 2203 | Research Methodology |
Year III, Semester I
Course Code | Course Name | Mapped to | Course Code | Course Name | Remark |
---|---|---|---|---|---|
CSC 3119 | User Interface Design | CSC 3119 | User Interface Design | Old | |
BAM 2102 | Entrepreneurship Principles | BAM 2102 | Entrepreneurship Principles | ||
CSC 3112 | Principle of Programming Languages | CSC 3115 | Advanced Programming | ||
CSC 3118 | Computer Science Project 1 | CSC 3118 | Computer Science Project 1 | Old | |
1 Elective | |||||
BIS 3100 | Modelling & Simulation | IST 3208 | Modelling & Simulation | ||
CSC 3105 | Computer Graphics | CSC 3121 | Computer Graphics | ||
CSC 3117 | Linear Programming | CSC 3117 | Operations Research | ||
CSC 3115 | Advanced Programming | CSC 3115 | Advanced Programming |
Year III, Semester II
Course Code | Course Name | Mapped to | Course Code | Course Name | Remark |
---|---|---|---|---|---|
BSE 2206 | Data Communications | BSE 2206 | Data Communications | ||
CSC 3205 | Compiler Design | CSC 3205 | Compiler Design | ||
CSC 3211 | Computer Science Project II | CSC 3211 | Computer Science Project II | ||
Electives (select 2) | |||||
CSC 3207 | Computer Secutiry | CSC 3207 | Computer Secutiry | ||
BIS 3205 | Data Warehousing & Business Intelligence | BIS 3205 | Data Warehousing & Business Intelligence | ||
BSE 3202 | Distributed Systems Development | BSE 3202 | Distributed Systems Development | ||
CSC 3217 | Emerging Trends in Computer Science | CSC 3217 | Emerging Trends in Computer Science |
(a) Description
This course provides students with skills of effective communication. Emphasis is provided on communications in todays business environment that has increasingly been shaped by Information technology. Students will be taught how to effectively communicate technical information to lay audiences using oral, written and non-verbal communication
(b) Course Objectives
The Objectives of the course unit are to:
(c) Learning outcomes
By the end of the course unit, the student should be able to:
(d) Detailed Course content
(e) Assessment method
The assessment will be in form of tests and assignments (40%) and final written exam (60%)
(f) Reading List
(a) Description
The course is to create a strong foundation in the principles and practice of modern computer programming. It should give an in depth understanding of structured and Object Oriented programming. It is to cater for both Structured and Object Oriented programming (O-O) topics like control structures, objects and classes, encapsulation, inheritance, polymorphism, interfaces, and exception handling. A state of the art programming language like Python or Java is to be used. Students are to cover both theoretical principles and hands on practical skills.
(b) Course Objectives
The aims of the course unit are to provide the student with:
(c) Learning outcomes
Students who successfully complete this course of study will be able to:
(d) Detailed Course Content
(e) Assessment method
The assessment will be done by tests and take home practical assignments (40%), practical examination (30%) and written examination (30%)
(f) Reading List
(a) Description
This course introduces the logical architecture and organization of computer systems. It highlights the lower end operations in a typical computer as well as the way computers manage their resources during operation. The course opens up a student to be an informed user of the computer rather than a passive recipient of the computer services.
(b) Course Objectives
The aims of the course unit are to:
(c) Learning outcomes
By the end of the course unit, the student should be able to:
(d) Teaching and learning pattern
Teaching will be in terms of lectures as well as tutorials.
(e) Detailed Course Content
(f) Assessment method
Assessment will be in form of tests and assignments (40%) and final examination (60%)
(g) Reading List
(a)Course Description
The course gives a foundation and deep understanding of mathematical skills that are necessary in studying advanced aspects of computer science. The course extends the mathematics that was taught in high school but this time focusing on areas that will help the candidates conceptualise computer science knowledge like in image processing, machine learning, graphics, interface design , robotics and security
(b) Course Objectives
The objectives of the course are to equip students with skills on:
(c) Learning outcomes
By the end of the course unit, the student should be able to:
(d) Mode of delivery
The study mode will be a blend of learner centered delivery via online or face to face classes. The teacher will introduce the topic and guide students on where further reading can be done. Student centered activities like discussion forum, will be employed to supplement teachers work.
(e) Detailed Course Content
(f) Mode of Assesment
(g) Reading List
(a)Course Description
Computer Science is central to digital innovations that solve some of the world’s most challenging problems. This course aims to introduce students to the world of computational thinking and its application to problem solving, process of digital solution development, innovation ecosystem and entrepreneurship.
(b) Course Objectives
The objectives of this course are to
(c) Learning outcomes
By the end of this course students should:
(d) Mode of delivery
The teaching pattern is by blended learning including lectures, tutorials, practical lab work, self-study, case studies, use of e-learning management system, group discussion and class presentations
(e) Detailed Course Content
(f) Mode of Assesment
Course work (40%)and exam (60%) will include review of real-world challenges and translating them into solutions and business models, review of technology articles and pieces, quizzes, mini projects, and final project.
(g) Reading List
(a)Course Description
In this course, students are to learn about the basic organization, concepts 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) Course Objectives
The objectives of this course are to
(c) Learning outcomes
On completion of this course unit, the students will be able to:
(d) Detailed Course Content
(e) Mode of Delivery
Blended learning including:
(f) Mode of Assesment
The assessment will be in form of:
(g) Reading List
(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) Course Objectives
The objectives of this course are to educate the students in:
(c) Learning outcomes
Students who successfully complete this course of study will be able to:
(d) Detailed Course Content
(e) Mode of Delivery
The teaching pattern is by blended learning including lectures and tutorials, practical lab work, group discussions and class presentations.
(f) Mode of Assesment
The assessment will be done by tests and assignments (40%) and final examination (60%)
(g) Reading List
(a) Course Description
This course strengthens the student’s command of probability and statistics. It is meant to lay ground for the application of probability and statistics concepts in the general field of Computer Science. The course prepares candidates to understand the concept and rules of probability as well as get an in depth understanding and manipulation of statistical distributions (Discrete and Continuous). The course also prepares students to use and apply descriptive statistics and statistical inference to answer questions about real-world data. Students will Students will learn how to use statistical computing packages available R and Python such as Numpy, which are popular in Data Science.
(b) Course Objectives
The objectives of the course are to equip the students with skills to:
(c) Learning outcomes
By the end of the course, the student should be able to:
(d) Detailed Course Content
(e) Mode of Delivery
The study mode shall be blended learning including a combination of learner centered and teacher centered. The teacher shall give overview of the module and also provide examples illustrating the concept. The learner then shall do extra reading in the items in the module as well as doing the extensive module assignment and projects using statistical computing packages available for free in R, Python etc
(f) Method of Assesment
Assesment shall be by:
(g) Reading List
(a) Course Description
This course aims to give students an experience of developing complete software applications and systems. Focus will be put on practicing programming and program documentations combining all the skills and knowledge acquired in other courses so far.
(b) Course Objectives
The aims of the course unit are to:
(c) Learning outcomes
By the end of the course, the student should be able to:
Apply the skills he/she has acquired to integrate different concepts of programming into a single application;(d) Detailed Course Content
The main content in the course is translation of a real life problem into a working computer program. For each year the course lecturer will provide a theme where students can be challenged to develop a software application that a real life problem. In addition, challenging practical challenges will be sourced from the industry and organisations that students can work on.
(e) Study Materials
The study materials will include examples and case studies of real-world challenges; software development tools and hardware equipment; open sources repositories on Github.
(f) Mode of Delivery
Learning will be largely by self - study/research. Students will be given programming Assignments that will be submitted after a specific period of time. The skills which that will be expected in the assignment will be indicated to the student. A member of staff will meet students at the issue of each of the assignment and address any outstanding issues as well as expectations. A minimum of six assignments will be given. Where necessary a guest speaker or project owner from the industry will be invited to provide additional context on the project or the state-of-the-art industry tools and methods.
(g) Mode of Assesment
Two assignments (each taking two weeks) and three assignments (each taking 3 weeks) will be given. The first two assignments will constitute the coursework (40%) while the last three assignments will constitute the examination mark (60%).
(f) Reading List
(a) Course Description
Operating systems are central to computing activities. There are two primary aims of an operating systems, i.e., to manage resources (e.g. CPU time, memory) and to control users and software. This class introduces the basic facilities provided in modern operating systems. The course divides into three major sections. The first part of the course discusses concurrency: how to manage multiple tasks that execute at the same time and share resources. Topics in this section include processes and threads, context switching, synchronization, scheduling, and deadlock. The second part of the course addresses the problem of memory management; it will cover topics such as linking, dynamic memory allocation, dynamic address translation, virtual memory, and demand paging. The third major part of the course concerns file systems, including topics such as storage devices, disk management and scheduling, directories, protection, and crash recovery. After these three major topics, the class will conclude with a few smaller topics such as virtual machines.
(b) Course Objectives
The aims of the course are:
(c) Learning outcomes
By the end of the course, the student should be able to:
(d) Detailed Course Content
(e) Mode of Delivery
The teaching pattern is by blended learning including lectures, tutorials, practical lab work, group discussion and class presentations.
(f) Mode of Assesment
The assessment will be done by mini-projects, tests and assignments (40%) and final examination (60%)
(g) Reading List
(a) Description
This course presents the processes, methods, techniques and tools that organizations use to build new information systems for their businesses, with particular focus on how computer-based technologies can most effectively contribute to the way business is organized. The course presents a systematic methodology for analyzing a business problem or opportunity, determining what role, if any, computer based technologies can play in addressing the business need. It articulates business requirements for the technology solution, specifies alternative approaches to acquiring the technology capabilities needed to address business requirements, and specifying the requirements for the information systems solution in particular. In- house development, development from thirdparty providers, or purchased commercial-off-the-shelf (COTS) packages are presented.
(b) Course Objectives
Introduce students to the different contemporary approaches used for the analysis and design of information systems
(c) Learning outcomes
By the end of the course, the student should be able to:
(d) Detailed Course Content
(e) Mode of Delivery Blended learning including
(f) Mode of Assesment
Assessment will be by continuous assessment through practical exercises and Coursework (40%) and final exam (60%)
(g) Reading List
(a) Course Description
This is a practical course designed to equip students with essential practical skills in a selected Computer Science area. The courses builds upon the foundation knowledge gained in the first and second semesters. The exact area of focus will be determined by the Course Lecturer. The students are to be supervised by staff. The practical sessions can be run in collaboration with the industry or government organisations dependent on the topic. For example, for teaching of student to integrate mobile money payment services in software systems can be done in collaboration with the telecom companies.
(b) Course Objectives
The aims of the course are to provide the student with:
(c) Learning Outcomes
Students who successfully complete this course of study will be able to:
(d) Detailed Course Content
The content of course is not fixed. The project will be determined by the current industry needs and challenges. The broad themes of practical skills development include but not limited to:
(e) Mode of Delivery
The mode study will be blended learning including tutorials, self-study research and development, group and team discussions.
(f) Mode of Assessment
The assessment will be done by technical project documents, progress review meetings (40%) and project report, poster presentation, project demo and presentation (60%).
(g) Reading List
The reading materials will vary dependent on the selected thematic area and project.
In this course, students will cover the course content of the CCNA international
(a) Course Description
This course trains the student in theoretical and practical aspects of modeling and developing database applications. The course covers the rationale for databases in the current systems development environment, the modeling, implementation and testing/tuning database driven applications. It also covers advanced topics tile indexing hashing, security and performance.
(b) Aims
The aims of the course are to:
(c) Learning outcomes
By the end of the course, the student should be able to:
(d) Detailed Course Content
(e) Mode of Delivery
The study will be blended learning including a mix of student centered and learning teacher centered pedagogy. Specifically the student is expected to do some guided reading as well as practically implementing a database application.
(f) Assessment method
The assessment will be done by tests/assignment (40%) and final examination (60%)
(g) Reading List
(a) Description
This course examines principles, design, implementation, and performance 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 protocols and routing, local area networks, wide area networking, wireless communications and networking, performance analysis, congestion control, 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 unit are to:
(c) Learning outcomes
Upon successful completion of this course, the student should be able to:
(d) Detailed Course Content
(e) Mode of Delivery
The teaching pattern is by blended learning including lectures, tutorials, practical lab work, group discussion and class presentations
(e) Assessment method
Assessment will be in terms of tests and Assignment (40%) and final examination (60%)
(g) Reading List
(a) Course Description
Embedded and real-time systems are becoming an integral part of modern Computer Science applications. Most computers today’s come in the form of embedded and real-time systems in cars, refrigerators, coffee machines, security systems, etc. This courses aims to equip students with the understanding of embedded and real-time systems and skills to design, analyse and develop practical applications of embedded systems with real-time constraints in the areas of agriculture, health, entertainment, security, traffic control and management, automotive systems, energy, environment, robotics, smart cities, and others. The course topics include
(b) Aims
The aims of the course are:
(c) Learning outcomes
By the end of the course, the student should be able to:
(d) Mode of Delivery
This course will delivered by blended learning including class lectures and practical sessions. Students will be introduced real life examples and illustrations to enable them apply the acquired knowledge with the business context. Students will be required to analyse business domain problem and come up with communications to address the needs as part of their coursework assessment
(e) Detailed Course Content
(f) Assessment method
Assessment will be in terms of tests and practical assignments (40%) and final written examination (60%)
(g) Reading List
(a) Description
Artificial intelligence (AI) is a research field that studies how to encode the intelligent human behaviors onto a computer. The ultimate goal of AI is to make a computer that can learn, plan, and solve problems autonomously. Artificial Intelligence has been studied for of over half a century but there is not computer has been made that is as intelligent as a human being in all aspects. However, there are successful applications such as computers playing chess, manufacturing and in some cases, a computer equipped with artificial intelligence technology can be even more intelligent than humans. The Deep Blue system that defeated the world chess champion is a well-know example. The course focuses on the theory and practice of Artificial Intelligence. It will concentrate on the study of modern techniques for computers to represent taskrelevant information and make intelligent decisions towards the achievement of goals. The search and problem solving methods are applicable throughout a large range of industrial, civil, medical, financial, robotic, and information systems. The course investigates questions about AI systems such as: how to represent knowledge, how to effectively generate appropriate sequences of actions and how to search among alternatives to find optimal or near-optimal solutions. We will also explore how to deal with uncertainty in the world, how to learn from experience, and how to learn decision rules from data.
(b) Aims and Objectives
(c) Learning outcomes
On successful completion of this course students will be able to:
(d) Detailed Course Content
(e) Mode of Delivery
Teaching and learning is implemented through blended learning including Lectures, Tutorials sessions and Assignments/Quizzes. Lectures will introduce and motivate the basic concepts of each topic. Significant discussions and twoway communication are also expected during lectures to enrich the learning experience. Tutorials provide opportunities for obtaining feedback. The assignments/quizzes willreinforce theoretical concepts by their application to problem solving. Assignments will be done via programming work using Python programming language. Students will be expected to make presentations of their assignments for discussion in class.
(g) Assessment method
Assessment will be by continuous assessment through practical exercises and Coursework (40%) and final exam (60%)
(h) Reading List
(a) Description
The course applies mathematics to finite or discontinuous quantities in order to master the process of problem- solving, communication, reasoning, and modeling. It gives a basic understanding of mathematical structures that are fundamentally discrete. Objects studied in discrete mathematics are largely countable sets such as integers, finite graphs, and formal languages. Applications of such concepts to computer science are to be studied. Concepts and notations from discrete mathematics are useful in studying and describing objects and problems in computer algorithms and programming languages.
(b) Aims
At the end of this course, students should demonstrate the ability to:
(c) Learning outcomes
By the end of the course unit, the student should be able to:
(d) Mode of Delivery
Teaching and learning will be by blended learning including lectures, tutorials and practical sessions.
(e) Detailed Course Content
(f) Assessment method
Assessment will be by assignments and/or tests (40%) and written examination (60%)
(g) Reading List
(a) Course Description
Research is essential in nearly all aspects of life. This course unit enables students to learn and apply principles of conducting scientific research. It caters for the rationale of doing research, the research process, findings presentation as well as validation of findings. The course also prepares the students on the process of conducting the final year project
(b) The objectives of the course are to equip students with skills to:
(c) Learning outcomes
A Student who has undertaken this course unit will be able to learn skills that will enable him/her to successfully undertake a research project. He/she will be able to:
(d) Mode of Delivery Blended learning including:
(e) Detailed Course Content
(g) Assessment method
The assessment will constitute Practical assignments on at least 5 chapters of the course and written course work (40%) and written Exam (60%)
(h) Reading List
(a) Course Description
Machine learning is the science of getting computers to act without being explicitly programmed. Over the past years, machine learning has given us self-driving cars, practical speech recognition, effective web search, and a vastly improved understanding of the human genome. Machine learning is being used in many applications now days and many researchers think it is the best way to make progress towards human-level artificial intelligence. The machine learning course aims at introducing the fundamental concepts of machine learning. In the course, students learn about the most effective machine learning techniques, and gain practice in implementing them and making them work. More to that students will learn about the theoretical underpinnings of learning and practical know-how needed to quickly and effectively apply these techniques to new problems. The course introduces models and algorithms for regression, classification and clustering. Students taking the course will need to be familiar with linear algebra, probability theory, and programming specifically in Python.
(b) aim:
(c) Learning outcomes
On successful completion of this course students will be able to:
(d) Mode of Learning
(e) Detailed Course Content
(f) Assessment method
Assessment will be by continuous assessment through programming assignments (20%) , written assignments and quizzes (20%) and Final exam (Practical exam (30) and written (30%)).
(g) Reading List
(a) Description
Robotics as an application combines many fields and allows automation of products such as cars, vacuum cleaners, and factories. The course aims at equipping the students with the fundamental concepts used in automating robotics; specifically the students will be introduced to the basic computation concepts used in robotics. The focus will be mainly on mobile robotics, and will cover the basic issues in this dynamic field via lectures and a large practical element where students work in groups. Topics include will Introduction to Robotics, Locomotion Kinematics and planning, perception and sensing, Planing, localization and navigation. The mathematical basis of each area will be emphasized, and concepts will be motivated by using common robotics applications and programming.
(b) Course Objectives:
(c) Learning outcomes
By the end of the subject, students should be able to:
(d) Detailed Course Content
(e) Mode of Delivery
Blended learning including:
(g) Assessment method
Assessment will be by continuous assessment (40%) distributed as follows: Assignments/Quizzes and group research (10%), Tests (10% and projects work (20%)) and Final exam (60%) distributed as follows Written (40%) and practical exam (20%).
(h) Reading List
(a) Course Description
This is a course that puts emphasis on the concepts and practices that reduce software cost while increasing reliability and modifiability. The quality of software systems developed is a major concern in today’s world of automation. This course focuses on how to build quality in both the software product and process. Software verification ensures that the product is being built according to the requirements and design specifications
(b) Course Objectives:
The objectives of this course are to provide the students with:
(c) Learning outcomes
By the end of the subject, students should be able to:
(d) Detailed Course Content
(e) Mode of Delivery
The teaching pattern is by blended learning including including lectures and tutorials, practical lab work, group discussions and class presentations
(g) Assessment method
Assessment will be in terms of Assignments and tests (40%) and final written examination (60%)
(h) Reading List
(a) Course Description
Cloud computing is a computing paradigm, where a large pool of systems are connected in private or public networks, to provide dynamically scalable infrastructure for application, data and file storage. With the advent of this technology, the cost of computation, application hosting, content storage and delivery is reduced significantly. This course gives an introduction to cloud computing technologies, applications as well emerging paradigms such as Cloud Native Computing.
(b) Course Objectives:
The aims of this course unit are to provide students with:
(c) Learning outcomes
By the end of the subject, students should be able to:
(d) Detailed Course Content
(e) Mode of Delivery
The teaching pattern is by blended learning including lectures, lab sessions and group projects.
(g) Mode of Assesment
Assessment will constitute practical assignments, tests and a project done in groups. A project assessment will include both a written report and oral presentation (40%) and written Exam (60%).
(h) Reading List
(a) Course Description
The course covers an introduction to the classical and contemporary theory of computation including automata, formal languages, Turing machines, recursive functions, computability and in computability, complexity, and the classes of P and NP. It examines the classes of problems that can and cannot be solved by various kinds of machines. Native Computing.
(b) Course Objectives:
The aims of this course unit are to provide students with:
(c) Learning outcomes
By the end of the subject, students should be able to:
(d) Detailed Course Content
(e) Mode of Delivery
Teaching will be in form of class blended learning including lectures, tutorials and group assignments.
(g) Mode of Assesment
Assessment will be in terms of Assignments and tests (40%) and final written examination (60%)
(h) Reading List
(a) Course Description
The course introduces the fundamental processes, principles and techniques of software development. It focuses on development of software that is safe from bugs, easy to understand and maintainable. Topics include tools and techniques for software construction, unit and integration testing, debugging and qualities of software systems such as correctness, clarity, reliability, efficiency and portability. The course provides a hands on experience with a project at the end of the course
(b) Course Objectives:
The aims of this course unit are to provide students with:
(c) Learning outcomes
By the end of the subject, students should be able to:
(d) Detailed Course Content
(e) Mode of Delivery
The teaching pattern is by blended learning including lectures, tutorials, practical lab work, group discussion and class presentations.
(g) Mode of Assesment
A programming project will be given that covers all topics learned in the course. The assessment will be done by weekly programming assignments, quizzes and tests (40%) and final examination (60%).
(h) Reading List
(a) Description
This course provides students with a mentorship opportunity in a real work environment. Students are given an opportunity to go out in the field to put whatever they have learnt into practice. It is a 2-3 months program and during this period students are attached to various organizations where they carry out training from.
(b) Course Objectives
The aims of the course are:
(c) Learning Outcomes
Upon succesful outcome, students will;
(d) Detailed Course Content
Not specified
(e) Mode of Delivery
The student is to be under the supervision of one of the workers (Field Supervisor) in the organization. The student is assigned duties in line with the operations of the organization. Staff from Makerere University (Academic Staff) will make visits to get the students view of the organization as well as the organizations view about the student.
(f) Mode of Assesment
(g) Reading List
There is no particular reference material for internship, except whatever may be recommended by the student supervisors.
(a) Description
This course teaches how to recognize a business opportunity and develop the opportunity into a business. The controlling functionsaccounting, finance, marketing, managementas well as legal and economic considerations are applied. In this course Student responsibility and initiative are encouraged as business strategies are created, planned, and presented as a final producta business plan for an actual business venture. Through the process of developing the business plan, students acquire skills necessary to operate a successful business.
(b) aims:
The course aims at providing the skills listed below to students:
(c) Learning outcomes
By the end of the subject, students should be able to:
(d) Detailed Course Content
(e) Mode of Delivery
Text books, conference and journal publications, and online resources.
(f) Assessment method
Assessment will be in form of assignments and tests (40%), practical Exam (30%) and final written exam (30%)
(g) Reading List
(a) Description
This course introduces the fundamentals of business process management (BPM) that will be used to systematically analyze, improve and automate business processes. Students will learn the techniques and tools that will be used for process identification, process discovery, process analysis, process redesign and improvement, process automation and monitoring. Students will learn how to apply these techniques and tools to a wide range of examples and case studies that will show the power of BPM in practice
(b) Course Objectives:
(c) Learning outcomes
On completion of this course unit, the students will be able to:
(d) Detailed Course Content
(e) Teaching and Learning Pattern
The teaching and learning approaches will combine classroom lectures, discussions and group activities, quizzes and take home assignments. A group project shall form part of the coursework. The material presented in class will overlap that of the text but will contain additions and variations.
(f) Mode of Delivery
(g) Assessment method
Assessment will be in terms of tests and Individual assignments (40 %) and a final examination (60%)
(h) Reading List
(a) Description
This course provides a foundation for further studies in information security. It introduces students to the exciting fields of cryptology and coding theory. Fundamentally, it deals with the mathematics that underlies modern cryptology. Cryptology combines the studies of cryptography, the creating of masked messages, and cryptanalysis, the unraveling of masked messages. Coding theory is the study of coding schemes used to detect and correct errors that occur during the data transmission. Basic problems of cryptography and coding are discussed. Topics include classical ciphers, public key cryptosystems (RSA, Diffie-Hellman key exchange, ElGamal), digital signatures, codes, linear codes, perfect codes and cyclic codes.
(b) Aims:
(c) Learning outcomes
By the end of the course, the student should be able to:
(d) Mode of Delivery
The course will be delivered by blended learning including lectures, tutorials, and group assignments.
(e) Detailed Course content
(g) Assessment method
Assessment will be by tests and assignments (40%) and final written examination (60%)
(h) Reading List
(a) Description
This course highlights programming practices that are vital in the day today work of a programming Professional. While many systems are described by functionalities, some important aspects like security, robustness, and maintainability are ignored. Students are to get an in depth understanding of these concepts as well as exploring the current trends in the programming environment. In the first half of the course, a framework like Django, CodeIgniter, Ruby on Rails, Laravel (or Symfony), MonoRail, or Bootstrap is to be used to demonstrate the MVC (Model-View-Controller) architecture. In the other half, the course should also provide mobile applications development skills to the learners.
(b) Aims:
The aims of the course are:
The aim of the course is to concretize the student’s past programming experience as well as highlighting critical practices like efficient code reuse and parallel development in programming that are necessary for a professional programmer
(c) Learning outcomes
By the end of the course, students will be able to:
(d) Mode of delivery
There will be blended (online or face-to-face) sessions, tutorials, and/or practical sessions.
(e) Detailed Course Content
(f) Assessment method
The assessment will be done by tests and take home practical assignments (40%), practical examination (30%) and written examination (30%)
(g) Reading List
(a) Description
This course introduces to the student the concepts of operations research (OR), enable the student explore the different manifestations of operations research and go deeper into two such manifestations: Linear systems and graphical systems. The students will learn how to use popular OR packages such as GAMS, AMPL, and OPL.
(b) Aims:
The aims of the course are:
(c) Learning outcomes
By the end of the subject, students should be able to:
(d) Mode of Delivery
The mode of study will be by blended learning including a mixture of student and teacher centered. The teacher will explain the concepts in class but students will also make extensive discussions and guided reading
(e) Detailed Course Content
(g) Assessment method
Assessment will be in form of tests and assignments (40%) and final examination (60%)
(h) Reading List
(a) Description
The Computer Science Project 1 is a 5 credit unit course that aims at providing a platform for students to combine knowledge and skills acquired from all course modules taught throughout the course in the production of a suitable Computer science project. The project is not a taught module but a major design and development exercise for the student carried out under supervision.
The students in this course will select a project topic from an area of computer Science that interest them, conduct a semester worth of individual/group study of that topic, resulting into a substantial written proposal and software model or solution demonstrating initial preliminary results from the study. The project should be of a problem solving nature, typically providing a software solution or a model to a practical computing problem
The project should also be able to produce an end product for users. Further, theoretical essay, literature search, or a descriptive evaluation would not be acceptable.
(b) Aims:
The aims of the course are:
(c) Learning outcomes
By the end of the subject, students should be able to:
(d) Mode of Delivery
The course is a self-study/group-study research exercise for the students carried out under supervision.
(e) Detailed Course content
Since the project is not a taught module but a major design and development exercise for the student carried out under supervision; students are expected to select a research project from the topic of interest. The following are some of the topics students can choose from
– – – – – Artificial Intelligence – – Image Processing – Bioinformatics – Operating systems – Multimedia computing – Computer vision – Algorithms & complexity(f) Assessment method
A detailed project proposal is submitted to the supervisor in the 14th week of the first semester for 40% (combined with student participation). A poster presentation of preliminary results of the project and a well written project proposal are presented to a panel of examiners for 60%.
(g) Reading List
(a) Description
The course introduces the principles of user interface development, focusing on design, implementation and evaluation.
(b) Aims:
The aim of the course is to give students experience in
(c) Learning outcomes
By the end of the subject, students should be able to:
(d) Mode of Delivery
The study mode will by blended learning including Lectures, Lab sessions, Online learning management systems, Class discussions and presentations, and Group project-based assignments
(e) Detailed Course Content
(f) Assessment method
Students will submit the signed Proposal to the department. The department will appoint a supervisor who will work with the students as they come up with their Proposal. Students will be required to present their work and answer any questions from the supervisor.
(g) Reading List
(a) Description
The course provides an introduction to the theory and practice of computer graphics; specifically it introduces the basics of 2- and 3-dimensional computer graphics where both the theoretical principles and methods will be taught and how they can be applied using graphical software libraries. More to that students will learn about the theoretical underpinnings of computer graphics and practical know-how needed to quickly and effectively apply these techniques to new problems
Topics will include: Introduction to Computer Graphics and OpenGL, Basic Programming Techniques using OpenGL, graphics systems, graphics devices and their control, 2D graphics, Color Systems and Shading,geometric object, Transformation and Viewing, Objects Modeling and Visible Surface Detection, clipping and hidden surface removal, Lighting, Surface Rendering, Basic Ray Tracing Algorithms, Applying Ray Tracing Techniques,
(b) Aims:
(c) Learning outcomes
On successful completion of this course students will be able to.
(d) Mode of Delivery
(e) Detailed Course content
(f) Assessment method
Assessment will be by continuous assessment through programming assignments (20%) and written assignments and quizzes (20%) and final exam (60%).
(g) Reading List
(a) Description
This course provides an introduction to system modeling using both computer simulation and mathematical techniques. A range of case studies are examined in the lectures and project exercises. Students will get hands-on training. The application areas considered are wide-ranging, although the emphasis is on the analysis of a variety of modeling paradigms such as queuing and dynamic systems. A simulation language will be utilized and an applied project carried out.
(b) Aims:
(c) Learning outcomes
On successful completion of this course students will be able to.
(d) Mode of Delivery
Blended learning including Lectures, lab practicals, online learning management systems, class discussions and presentations
(e) Detailed Course content
(f) Assessment method
Course work (tests, assignments) 20 % , Projects 20 % and Final written exam: 60%
(g) Reading List
(a) Pre-requisites: Computer Networks
(b) Course Description
This is a theoretical course that covers the fundamentals of data communication, Formatting and transmission of digital information over various media. The topics covered include digital versus Analog transmission, transmission media, data encoding, integrated Services Digital Networks (ISDN), Network Access Protocols, LAN standards among others.
(c) Aims:
The aims of the course are:
(d) Learning outcomes
Upon successful completion of this course, the student should be able to:
(e) Mode of Delivery
This course will be delivered through class lectures, discussions. Simulations will also be used to explain abstract concepts.
(e) Detailed Course Content
(f) Assessment method
(Assignments, Tests, Group Research course work) 40% Final Examination 60%
(g) Reading List
(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. The course gives tools for achievingparticularsecuritygoals, attacks, and countermeasures, an overview of security issues for software, and provides programming methods for the development of secure applications
(b) Aims:
(c) Learning outcomes
By the end of the subject, students should be able to:
(d) Mode of Delivery
The teaching pattern is by blended learning including lectures, lab sessions and group projects.
(e) Detailed Course Content
(f) Assessment method
Assessment will be by assignments and/or tests (40%) and written examination (60%)
(g) Reading List
(a) Description
In this course unit, students shall understand the complete process of translating a program in a high-level language to machine language. The course gives an introduction to the design and implementation of a compiler with emphasis on principles and techniques for program analysis and translation. It also gives an overview of the tools for compiler construction. Topics covered include lexical and syntactic analysis, semantic analysis, type-checking, program analysis, code generation and optimization, memory management, and runtime organization.
(b) Aims:
The aim of the course is to give students experience in:
(c) Learning outcomes
By the end of the subject, students should be able to:
(d) Teaching and Learning Pattern
The course consists of a Blended learning including lectures, projects, and tutorials. The lecture component introduces the basic concepts of compiler writing. The project component will involve students in writing a compiler for a specified programming language.
(e) Detailed Course Content
(f) Assessment method
Assessment will be by quizzes, assignments and/or tests (40%) and written examination (60%)
(g) Reading List
(a) Description
The Computer Science Project 2 is a continuation of Computer science project 1 which also aim at providing a platform for students to combine knowledge and skills acquired from Computer Science modules studied in the course in the production of a suitable Computer science project. The course is not a taught module but a major design and development exercise for the student carried out under supervision.
In the course, the students continue developing their project topics they selected in Computer Science Project 1, resulting into a substantial well written project report/dissertation and fully operational/working software solution or model that can be used by the end product users.
(b) Aims:
The aims of the course are:
(c) Learning outcomes
By the end of the subject, students should be able to:
(d) Mode of Delivery
The course is a self-study/group-study or research exercise for the carried out under supervision.
(e) Detailed Course Content
Since the course is not a taught module but a major design and development exercise for the student carried out under supervision; and students are expected to select a research project from the topic of interest. The following a some the topics students can choose from
(f) Assessment method
A detailed project report/dissertation is submitted to the supervisor in the 14th week of the second semester for 40% (combined with student participation). A presentation of the results of the project is and well written report/dissertation are assessed by a panel of examiners for the remaining 60%
(g) Reading List
(a) Description
The course is to expose provide students with an opportunity to search for knowledge in an area of interest. It is to allow a student do lightweight research and explore the current trends in a certain computer science area
(b) Aims:
The aims of the course are:
(c) Learning outcomes
By the end of the course, the student should be able to:
(d) Mode of Delivery
The study will be blended learning including a mix of student centered and learning teacher centered pedagogy. 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.
(e) Detailed Course Content
The content is not specific but will be dependent on the area the student chooses to pursue
(f) Assessment method
Assessment will be include:
(g) Reading List
(a) Description
This course gives students theoretical and practical skills on development of distributed systems and applications. This includes distributed-system specific challenges like reliability and robustness. Protocols like Remote Mothod Invocation and Remote Procedure Calls should be covered using languages like Java and C respectively
(b) Aims:
The aim of the course is to equip students with skills of developing distributed systems
(c) Learning outcomes
By the end of the course, the student should be able to:
(d) Mode of Delivery
Teaching will be in form of class lectures, tutorials, lab demonstrations as well as class presentations.
(e) Detailed Course Content
(f) Assessment method
(g) Reading List
(a) Description
This course provides candidates with practical and theoretical skills in data and information management technologies so as to provide decision support capabilities. The course provides skills on building of data warehouses, managing and querying data warehouses and utilization of business intelligence for decision-making. Modeling techniques for futuristic prediction is also covered.
(b) Aims:
The aims of the course are:
(c) Learning outcomes
By the end of the subject, students should be able to:
(d) Mode of Delivery
There will be blended learning including Lectures, Lab practicals, Online learning management systems, Class discussions and presentations, and Group projectbased assignments
(e) Detailed Course Content
(f) Assessment method
The assessment will be done by tests (20%), take home practical assignments (20%), and a final written examination (60%)
(g) Reading List