BACHELOR OF SCIENCE HONOURS DEGREE IN ARTIFICIAL INTELLIGENCE AND MACHINE LEARNING (HAIML)

PROGRAMME OVERVIEW

The BSc Honours degree in Artificial Intelligence (AI) and Machine Learning (ML) is a programme that aims to provide students with sound theoretical and practical training in artificial intelligence and in-depth detail of the risks that users are likely to encounter within the artificial intelligence realm. 

 

ENTRY REQUIREMENTS

  1. For all entry pathways candidates must have at least five Ordinary Level subjects/ National Foundation Certificates including English Language, Mathematics and a Science subject at grade C or better:
    1. Normal Entry

A minimum of 2 A’ Level passes in Mathematics AND (Physics OR Computer Science OR any other relevant Science subject).

 

  1. Special Entry

Special entry may be granted to applicants with a National Diploma in Computer Science or any related field from a recognized institution. 

  1. Mature Entry

Refer to Section 3.3 of the General Academic Regulations.

  • Visiting School/Block Release

Should have at least an ND or HND in Software Engineering or any relevant field AND have proof of employment in the field specifying the nature of duties.

CAREER OPPORTUNITIES AND FURTHER EDUCATION

  1. Employability: Careers in the Careers in the AI and Machine Learning field include: 

AI Data Science Experts, AI Business Development Manager, AI Team Leader, AI Engineer, Machine Learning Engineer, AI Scientist, ML Data Engineer, ML Architect, AI Specialist Developer, ML Intelligent System Researcher and ML Applied Research Scientist and AI Technopreneur. 

  1. Further Studies: Masters in AI, Machine Learning, Data Science, or in interdisciplinary programmes related to computing practices.

 

PROGRAMME STRUCTURE

A student will not be allowed to register for a module with a pre-requisite (defined as Pre.) if the pre-requisite is not passed. All the modules under this programme are core. Electives will be offered subject to availability of personnel.

 

Level 1 Semester 1

Code Module Description Credits
HAIML111* Fundamentals of Artificial Intelligence 10
HAIML112* Machine Learning Fundamentals 10
HAIML113* Intelligent Signal Processing 10
HCSCI132* Principles of Programming Languages 10
HCSE138* Discrete Mathematics 10
CS131* Basics of Communication Skills 12

Level 1 Semester 2

Code Module Description Credits
HAIML121* Natural Language Processing 10
HCSEC111* Introduction to Information Security 10
HCSC1135* Computer Architecture and Organization 10
HCSE121 Web and Multimedia Development 10
HCSE135* Database Systems 10
HCSCI136* Data Structures and Algorithms 10

Level 2 Semester 1

Code Module Description Credits
HCSCI237 Data Communications and Networks 10
HCSE231* Object Oriented Analysis and Design 10
HAIML212* Deep Learning 10
HAIML211* Data Science and Analytics 10
TNCP201* Technopreneurship 12
GS231* Gender Studies 12

Level 2 Semester 2

Code Module Description Pre-Requisites Credits
HAIML222* Artificial Intelligence and AI Programming   10
HAIML221* Programming with Big Data and Data Analytics   10
HAIML223* Mini Project   10
HCSCI234* Research Methods   10
HCSEC221* Network Programming HCSEC123 10
HCSE224* Object Oriented Programming HCSE231 10

Level 3 Semester 1

Code Module Description Credits
HAIML311* Work-Related Learning I 40

Level 3 Semester 2

Code Module Description Pre-Requisites Credits
HAIML321* Work-Related Learning II HAIML311 80

Level 4 Semester 1

Code Module Description Credits
HCSEC411* Blockchain Technology 10
HCSE432 Embedded Systems 10
HCSE433* IoT and Cloud Systems Engineering 10
HAIML411* Neural Networks 10
HAIML412* Metaverse 10
HAIML413* Robotics 10

Level 4 Semester 2

Code Module Description Pre-Requisites Credits
HCSE422* Image Processing and Machine Vision   10
HAIML421* Human AI Interaction   10
HAIML422 Games Development   10
HAIML423* Robot Programming HAIML413 10
HAIML430* Capstone Project   24
Electives (Choose one):      
HAIML424 Introduction to Industry 5.0   10
HAIML425 Expert Systems and Recommender Systems   10

 

SYNOPSES

HAIML111 Fundamentals of Artificial Intelligence

This module is focused on Artificial Intelligence techniques. Students will become familiar with the foundations of agent-based approaches to software design, decision making and problem solving including under uncertainty through the topics covered in this module. This module also covers the basic underpinnings of AI that provide a foundation for degree level study. It will give a broad overview of the field that will support learning in other modules and will be expanded further within the degree.

HAIML112 Machine Learning Fundamentals

This module covers the basic underpinnings of Machine Learning that provide a foundation for degree level study. It will give a broad overview of the field that will support learning in other modules and will be expanded further within the degree.

HAIML113 Intelligent Signal Processing

This module aims to provide students with a broad experience of digital signal processing techniques and applications on how audio and video signals can be captured and processed by a computer program. Students will learn about time domain and frequency domain representations and processing. Students will learn how students can extract information from audio signals. Students will implement movement and face detection systems that work with live camera input

HCSCI132 Principles of Programming Languages

The module aims to introduce the basic principles of programming, programming paradigms, program constructs and implementation of algorithms using Python programming language. Modular programming through use of functions, modules will also be covered to enhance students’ understanding of code reusability. Moreover, data persistence will be demonstrated in files and data structures. The module will equip students with knowledge on basics of Object-Oriented Programming (OOP) and databases. Lastly, students will get to explore fundamentals of object-based programming using the Tkinter library in Python.

HCSE138 Discrete Mathematics

This module introduces and discusses the fundamentals of Discrete Mathematics as applied to Artificial Intelligence, focusing on providing a basic theoretical foundation for further work. Students are exposed to logic and proof techniques, set theory, elementary number theory, functions and relations, graphs, trees, modelling computations and abstract algebra. This module integrates symbolic tools, graphical concepts, and numerical calculations. Techniques of counting: permutations, combinations, recurrences, and algorithms are also covered.

CS131 Basics of Communication Skills

Refer to Communication Skills Department regulations.

HAIML121 Natural Language Processing

This module will provide students with a grounding in both rule-based and statistical approaches to NLP combining theoretical study with hands-on work. The module focuses on text processing, and by taking this module, students will learn about how they can work with text-based natural language in their computer programs. Students will learn about grammars and how they can be used to analyse text. Students will learn how statistical analysis can be used to extract information from and classify text. They will work in an appropriate programming environment for NLP, using libraries to implement NLP workflows.

HCSEC111 Introduction to Information Security

A review of the origins of information security, outline of the phases of the security systems development life cycle, critical characteristics of information (CIA). Examination of the various threats facing organizations and methods for ranking these threats (in order to assign them relative priority), examination of the types of attacks that could result from these threats, and how these attacks could impact the organization’s information systems, secure software development. Legal, ethical, and professional issues in Information Security. Risk Management: an overview of risk management (know yourself/the enemy), Risk identification, Risk assessment, Risk control strategies, Selecting a risk control strategy (feasibility studies). Benchmarking and best practices, Baselining, Residual risk. Information security policy, standards, and practices. EISP, ISSP, SysSP, The information security blueprint, Security Education, Training, and Awareness Program (SETA), Continuity strategies. Security Technology: Security Technology: Intrusion Detection and Prevention Systems. Physical Security: Physical access controls, Mobile and portable systems, Remote computing security. Implementing Information Security: Information security project management, Technical aspects of implementation (Conversion strategies, The Bull’s-Eye model). Personnel Security: Positioning and staffing the security function, Credentials of information security professionals, Employment policies and practices, Security considerations for non-employees. Information Security 

HCSCI135 Computer Architecture and Organization

This module studies the basic instruction set architecture and organization of a modern computer. Topics include Assembly language, The Von Neumann Machine Instructions, Registers, translating high level arithmetic into Assembly, Memory and Registers Addressing Modes, Logic Gates, Truth Tables, implementing Truth Tables, Latches and Memory Reading, Multicycle implementations, the concept of a Cycle. Finite State Machines, Balancing the work into Single Cycles, ROMs, PLAs, Microcode, RISC/CISC, Pipelines, Principle of Locality, Direct Mapped Caches, I/O Polling and Interrupts.

HCSE121 Web and Multimedia Development

Site development processes, Design principles; page layout navigation, HTML, CSS and PHP programming language. Database-driven web pages using PHP. PHP framework and syntax, connection to any ODBC-compliant database, and hands-on practice with a MySQL database to create database-driven HTML forms and reports.

HCSE135 Database Systems

The module focuses on concepts and principles related to database management systems and links these to Relational Database Systems. Topics covered include: Database Systems Evolution, Database Systems in the Organization, Principles of Conceptual Design, Database Models, The Relational Data Model, Data Modelling, Database Design Theory, Data Definition and Manipulation Languages, Storage and Indexing Techniques, Query Processing and Optimization, Concurrency Control and Recovery and Database Programming Interfaces.

HCSCI136 Data Structures and Algorithms

This module builds on the programming skills acquired in Principles of Programming Languages. It couples work on Program Design, Analysis, and Verification with an introduction to the study of Data Structures. Students are introduced to: Lists, Stacks, Queues, Trees, Hash Tables, and Graphs. Students are expected to write several programs, ranging from very short programs to more elaborate systems. Emphasis is placed on the development of clear, modular programs that are easy to read, debug, verify, analyze, and modify.

HCSEC123 Principles of Secure Coding

This module provides a detailed explanation of common programming errors in programming languages and describes how these errors can lead to software systems that are vulnerable to exploitation. It will also cover defensive programming and identify its benefits and disadvantages, secure programming, its relationship to defensive programming, and its benefits and disadvantages, sources of risk that can negatively impact software applications, best practices for creating secure code, how to include defensive programming techniques into software development process, why testing should be performed and identify the major phases of the software testing process, what unit testing is and the benefits it provides, the benefits of employing defensive and secure programming and recognizing the phases of the software testing process. Software security, organizational security and connection security are covered. 

HCSCI237 Data Communications and Computer Networks

This module explores the principles underlying the design of computer networks. Topics covered include: Computer network technologies and applications, Transmission Media, Signaling, Communication protocols, Communication architectures, Network connections, Network types, Routing and routing algorithms, spanning tree protocol and IP addressing.

TCNP 201 Technopreneurship  

Nature and importance of technopreneurship, Differences between technopreneurship and entrepreneurship; Relationship between technopreneurship and the national economy. Developing a business model and basics of small business management, Risks and stages of funding, Sources of funding, Financial funding for growth, and product valuation. Opportunity recognition and creation, Sources of opportunity, Screening technology opportunities. The New Product Development process. Concept of intellectual property and its significance, Basics of patenting, legislation governing IP in Zimbabwe. 

GS231 Introduction to Gender Studies 

This module will empower the students with knowledge and skills that enable them to be gender sensitive in the University, workplace and in all their social interaction. Topics covered include: understanding gender, gender analysis, gender issue in Zimbabwe, redressing gender imbalances, empowerment and strategies for creating gender responsive environment. Students gain insight into accounts of gender studies in Science and Technology

HCSE231 Object Oriented Analysis and Design

Introducing object orientation; classes; objects; abstraction; encapsulation; software modelling; aims of modelling; principles of modelling; overview of UML; object-oriented analysis and design process; user stories; analysis and design of artefacts; the conceptual model; identifying classes and their relationships; identifying class responsibilities; CRC cards; Domain Driven Design; Object-Oriented Design Principles; Object-Oriented Design Patterns.

HAIML211 Data Science and Analytics

This module deals with areas that involve extraction of meaningful information and insights by applying various algorithms, processes, and scientific methods from structured and unstructured big data. The data science part also comprises mathematics, computations, statistics, programming, etc to gain meaningful insights from the large amount of data provided in various formats. On the other hand, the Data analytics is then used to get conclusions by processing the raw data through converting a large number of figures in the form of data into Plain English i.e., conclusions which are further helpful in making the decisions.  Areas covered also include: Data and Visualizations – Introduction to Data: What it is and What’s Driving it, Emerging Issues On Data, Types of Data. Data Collection Methods: Traditional and Modern. Data wrangling and pre-processing. Predictive Data Analysis. Data Predictions and Models. Statistical Data Analysis including distributions, probability, and simulations.  Data mining: finding similar items, mining data streams, frequent itemsets. Machine learning: k nearest neighbor, decision trees, naive Bayes, regression.  Ecological and Environmental Data Analysis. Application can be done using Excel for Data Analysis and Data Visualisation. R: The Statistical Programming Language or any other relevant software at the time.

HAIML212 Deep Learning

Deep learning principles and fundamentals, the practical knowledge of TensorFlow, DialogFlowpython, AI for DevOps and Python will be covered

HCSEC221 Network Programming

Modules covers Linux Utilities- File handling utilities, Security by file permissions, Process utilities, Disk utilities, Networking utilities, Filters, Text processing utilities and Backup utilities. Bourne again shell(bash) – Introduction, pipes and redirection, here documents, running a shell script, the shell as a programming language, shell meta characters, file name substitution, shell variables, command substitution, shell commands, the environment, quoting, test command, control structures, arithmetic in shell, shell script examples. Files- File Concept, File types File System Structure, Inodes, File Attributes, file I/O in C using system calls, kernel support for files, file status information-stat family, file and record locking-lockf and fcntl functions, file permissions. File and Directory management – Directory contents, Scanning Directories- Directory file APIs. Process- Process concept, Kernel support for process, process attributes, process control – process creation, replacing a process image, waiting for a process, process termination, zombie process, orphan process.: Signals- Introduction to signals, Signal generation and handling, Kernel support for signals, Signal function, unreliable signals, reliable signals, kill, raise, alarm, pause, abort, sleep functions. Interprocess Communication – Introduction to IPC mechanisms, Pipes- creation, IPC between related processes using unnamed pipes, FIFOs-creation Shared Memory- Kernel support for shared memory, UNIX system V APIs for shared memory, client/server example. Network IPC – Introduction to Unix Sockets, IPC over a network, Client-Server model, Address formats (Unix domain and Internet domain), Socket system calls for Connection Oriented – Communication, Socket system calls for Connectionless-Communication, Example-Client/Server Programs- Single Server-Client connection, Multiple simultaneous clients, Socket options – setsockopt, getsockopt, fcntl. Network Programming in Java- Network basics, TCP sockets, UDP sockets (datagram sockets), Server programs that can handle one connection at a time and multiple connections (using multithreaded server).

HAIML222 Artificial Intelligence and AI Programming

Problem solving, reasoning, planning, natural language understanding, computer vision, automatic programming, machine learning, pattern recognition, search algorithms for problem solving; knowledge representation and reasoning; pattern recognition; fuzzy logic; and neural networks.

HCSE224 Object Oriented Programming

The module aims at providing a solid foundation in Object Oriented Paradigm. Topics covered include: Objects Overview and Review, creating Class Instances within constructors, Object Analysis, creating Fields and Properties, Inheritance and specialized Classes, Base Class and Abstract Classes, Events and Exceptions, providing services using Interfaces and Abstract Classes, Polymorphism, Shared and Static members, Overloading Operators, Overriding, Multithreading.

HAIML221 Programming with Big Data and Data Analytics

Programming with Big Data in R is a series of R packages and an environment for statistical computing with big data by using high-performance statistical computation. It uses the same programming language as R with S3/S4 classes and methods which is used among statisticians and data miners for developing statistical software. It mainly focuses on distributed memory systems, where data are distributed across several processors and analyzed in a batch mode, while communications between processors are based on MPI that is easily used in large high-performance computing (HPC) systems. 

HCSCI234 Research Methods

This module equips students with research techniques including definition of research objectives, research framework, design, research problem, experimental research, experiment data acquisition and processing, population and sampling methods, research methods and instruments, data processing and analysis, descriptive statistics, inferential statistics, data presentation and interpretation, research ethics, report writing.

HAIML223 Mini Project

After having gained knowledge in modules undertaken earlier on, students will be equipped enough to conceive a project idea in any of the thematic areas within the cyberspace realm exposed to earlier on. The expectation is that the student will design and implement a solution under the supervision of a lecturer and submit a suitable report on the work carried out. An artifact commensurate with the level of study is expected at this point. Project can be done in groups depending upon approval by the departmental board.

HAIML311 Work-Related Learning I

Refer to Section 8 of the Faculty of Science and Technology Regulations

HAIML321 Work-Related Learning II

Refer to Section 8 of the Faculty of Science and Technology Regulations

HCSEC411 Blockchain Technology

Areas to be covered include:  Distributed Database, Two General Problem, Byzantine General problem and Fault Tolerance, Hadoop Distributed File System, Distributed Hash Table, ASIC resistance, Turing Complete. Cryptography: Hash function, Digital Signature – ECDSA, Memory Hard Algorithm, Zero Knowledge Proof. Blockchain: Introduction, Advantage over conventional distributed database, Blockchain Network, Mining Mechanism, Distributed Consensus, Merkle Patricia Tree, Gas Limit, Transactions and Fee, Anonymity, Reward, Chain Policy, Life of Blockchain application, Soft and Hard Fork, Private and Public blockchain. Distributed Consensus: Nakamoto consensus, Proof of Work, Proof of Stake, Proof of Burn, Difficulty Level, Sybil Attack, Energy utilization and alternate. Cryptocurrency: History, Distributed Ledger, Bitcoin protocols – Mining strategy and rewards, Ethereum – Construction, DAO, Smart Contract, GHOST, Vulnerability, Attacks, Sidechain, Namecoin. Cryptocurrency Regulation: Stakeholders, Roots of Bit coin, Legal Aspects-Crypto currency Exchange, Black Market and Global Economy. Applications: Internet of Things, Medical Record Management System, Domain Name Service and future of Blockchain. Tutorial and Practical: Naive Blockchain construction, Memory Hard algorithm – Hashcash implementation, Direct Acyclic Graph, Play with Go-ethereum, Smart Contract Construction, Toy application using Blockchain, Mining puzzles 

HCSE432 Embedded Systems

This module covers Embedded Systems concepts. Topics include the nature of embedded systems, specific problems, special issues; role in computer engineering; embedded microcontrollers, embedded software; real time systems, problems of timing and scheduling; testing and performance issues, reliability; low power computing, energy sources, leakage; design methodologies, software tool support for the development of such systems; problems of maintenance and upgrade; networked embedded systems.

HCSE433 IoT and Cloud Systems Engineering 

IoT and Cloud Computing. IoT Physical Devices and Endpoints: IoT physical servers and cloud offerings: cloud storage models and communication Networks, Cloud technologies, Framework and Platforms. Internet of services, SOA, Grid computing, System types, architectures and models, applications in telecommunication systems, cloud systems examples, security management, Governance, legislation, economic environment.

HAIML411 Neural Networks

Introduces machine learning fundamental principles, supervised and unsupervised machine learning algorithms, linear regression, logistic regression, decision trees, k-nearest neighbour, Bayesian learning, naïve Bayes algorithm, support vector machines and kernels and artificial neural networks (Deep Learning), Ensemble methods, clustering algorithms (K-means).Data preprocessing, feature extraction and dimensionality reduction. Model selection, generalization, over fitting and optimization of training models. Provides a hands-on problem-solving experience with programming in Python. Python, anaconda package installation and other relevant software Jupyter note book, google colab. It also covers applications of machine learning computer vision in self driving cars, spam filtering in social networks etc.

HAIML412 Metaverse

Computer graphics basics , implementation of  various algorithms to scan, convert the basic geometrical primitives, transformations, fundamentals of animation, augmented reality, virtual reality, 3D display systems, additive manufacturing concepts, display optics and electronics, IMUs and sensors, tracking, haptics, rendering pipeline, multimodal human perception and depth perception, strengths and limitations of VR technology in order to be able to construct simple immersive environments as well as to understand the human factors and cognitive issues that should be considered when using this medium.

HAIML413 Robotics

This module introduces the basic concepts of robotics, focusing on: Robot Anatomy-Definition, law of robotics, History and Terminology of Robotics, Accuracy and repeatability of Robotics, Specifications of Robots, Speed of Robots, Robot joints and links, Robots classifications, Architecture of robotic systems, Robot Drive systems, Hydraulic, Pneumatic and Electric systems, construction and programming of autonomous mobile robots

HCSE422 Image Processing and Machine Vision

Image Processing and Computer Vision Background, Image Processing and Computer Vision Applications Digital Image Processing Hierarchy: Human Perception of Pictures, Digital Image Processing Hardware. Image Model, Amplitude digitization: Intensity Quantization, Spatial co-ordinate digitization: Image Sampling, Image Quality, Image Pixel Relationships, Linear Operators, 2-D Transforms. Spatial Domain Methods, Frequency Domain Methods. Inverse Filtering. Image Compression, Redundancy Types, Lossless and Lossy Compression, Image Compression Standards. Object Detection Methods, Edge Liking and Boundary Detection, Thresholding Methods, Region Oriented Methods. Object Representation and Description, Representation schemes, Description. Pattern Recognition, Decision Theoretic Methods for Recognition.

HAIML421 Human AI Interaction

Human characteristics: human and computer Graphic design basics, Interaction: input and output, Dialogue interactions and response times, Design process, Models of users in design, Dialog notations and design, Implementation support, Evaluation, Help and documentation, Hypertext, multimedia and WWW, Game design basics.

HAIML422 Games Development

The module will seek to equip students with gaming concepts and development ability. The students will be required to apply visual and OOP programming concepts in creating interactive games. The course will cover event driven programming, gaming design patterns, scene creation, game security and basic game programming. The practicals will be done using the Unity3D and any OOP language as selected by the instructor.

HAIML423 Robot Programming

This module is a fundamental programming module that teaches students how to safely manipulate the robot through proper use of the robot controller and teach pendant. This module is designed to enable students to set-up, program, edit and operate robots. It is a lab-based module that uses a hands-on approach to introduce the basic concepts of robotics, focusing on the construction and programming of autonomous mobile robots. Module information will be tied to lab experiments and students will work in groups to build and test increasingly more complex mobile robots. Students will: 1. Explore the broad scope of robotic applications 2. Learn the basic components and building blocks of robots 3. Develop the robot construction skills 4. Learn to program the robots 5. Program autonomous mobile robots to achieve challenging tasks.

HAIML430 Capstone Project

Students will be expected to use AI and Machine Learning principles, Emerging Technologies and other Domain area knowledge in coming with a final year research project which addresses a particular need and produce a working prototype.

 

HAIML424 Introduction to Industry 5.0

Looks at trending and emerging AI technologies like edge AI

 

HAIML425 Expert systems and Recommender systems

Looks at the Fundamentals and the basics of expert systems, rule-based systems and recommender systems.