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
- 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:
- Normal Entry
A minimum of 2 A’ Level passes in Mathematics AND (Physics OR Computer Science OR any other relevant Science subject).
- Special Entry
Special entry may be granted to applicants with a National Diploma in Computer Science or any related field from a recognized institution.
- 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
- 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.
- 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.