school and education

Integrity

Knowledge

Diligence

Innovativeness

Professionalism

  

 

 

You want to be a part of a vibrant University

 BACHELOR OF SCIENCE HONOURS COMPUTER SCIENCE (HCS)

Module CodeModule NameDescription
 

HCS101

 

 

Programming Fundamentals

 

This module examines the concepts and structures governing the design and implementation of programming languages. Major outcomes are for students to be able to express syntax and semantics in formal notation, apply suitable programming paradigms and understand high level language design and implementation. Upon completion, students should be able to manage files with operating system commands, use top-down algorithm design, implement algorithmic solutions in a programming language and write small

programs that allow them to accomplish useful goals.

 

HCS102

 

 

Statistics for Computer Science

 

This module provides an introduction to probability and statistics with applications. Topics covered are: probability axioms, Science conditional probability; Bayes' theorem; discrete random variables, moments, bounding probabilities, probability generating functions, standard discrete distributions; continuous random variables, uniform, normal, Cauchy, exponential, gamma and chi-square distributions, transformations, the Poisson process; bivariate distributions, marginal and conditional distributions, independence, covariance and correlation, linear combinations of two random variables, bivariate normal distribution; sequences of independent random variables, the weak law of large numbers, the central limit theorem; definition and properties of a Markov chain and probability transition matrices; methods for solving equilibrium equations, absorbing Markov chains; hypothesis testing; confidence intervals, and linear regression.

 

HCS103

 

 

Calculus

 

This module is intended to develop practical skills in differential and integral calculus. As well, it is intended to illustrate various applications of calculus to technical problems. The rules of differentiation will be introduced, and methods of differentiating various algebraic and transcendental functions will be developed. Methods of algebraic integration will also be introduced, with both definite and indefinite integrals being determined for a variety of functions.

 

HCS104

 

 

Linear Algebra  

 

The module will lay down basic concepts and techniques of linear algebra and provide an appreciation of the wide application of this discipline within the scientific field. Topics include non-homogeneous and homogeneous systems of linear equations, Gaussian and Jordan-Gauss elimination, matrices and matrix operations, elementary determinants by cofactor expansion, inverse of matrix using the adjoint, Cramer's rule, evaluating determinants using row/column reduction, properties of the determinant function, vectors in 2- , 3- and n- space, dot product, projections, cross product, areas of parallelograms and volumes of parallelepipeds determined by vectors, lines and planes in 3-space and complex numbers. The module will provide insight into how linear algebra theorems and results, sometimes quite abstract, impinge on everyday life.

HCS111

 

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 able to identify appropriate data structures for solving computing problems in respective language and write several programs, ranging from very short programs to more elaborate systems, in any language. Emphasis is placed on the development of clear, modular programs that are easy to read, debug, verify, analyze, and modify.

HCS112

 

Electrical and Electronic Principles

The module introduces general concepts of electricity and magnetism which forms the basis for an understanding of electric circuits. The module explores topics such as electrostatics; conductors, capacitors, and dielectrics; electric circuits; magnetic fields; and electromagnetism. Techniques for the analysis of DC resistive circuits will be introduced including serial and parallel networks, mesh and node analysis and the principle of superposition. Equations for the response of a switched voltage across a capacitor and inductor will be developed considering an R-C and R-L circuits. The module then develops the analysis of AC circuits, introducing the more powerful methods associated with the use of complex numbers. The module is also designed to introduce the most common electronic devices and their applications in small-scale electronic systems. The module is based on formal seminar/lecture sessions followed by comprehensive practicals/tutorials, which provide an opportunity for students to gain experience in using and applying test and measurement equipment and simulators.

HCS113

 

Web and mobile computing

The module will explain basics of web design, Site development processes, Design principles; page layout navigation. The module explains HTML, CSS and PHP programming language. The hands on PHP Programming module provides the knowledge necessary to design and develop dynamic, database-driven web pages using PHP. This module introduces the PHP framework and syntax, and covers in depth the most important techniques used to build dynamic web sites. Students learn how to connect to any ODBC-compliant database, and perform hands on practice with a MySQL database to create database-driven HTML forms and reports. The subject will also cover the fundamentals in Mobile Application Development (MAD) encompassing Mobile Phones and Application Frameworks e.g. Android and iOS platforms. Use of software development toolkits like Android and iOS will enable students to bring out small to large scale innovative solutions while leveraging on cross platform technologies like PhoneGap.

HCS114

 

Database Design and Development

This module focuses on the design and implementation of relational databases and includes extensive exposure to SQL. Practical methodologies for data analysis, data modelling and database design are examined, coupled with study of the relational database model. The module builds applied skills in data modelling, normalization, database design and the creation and management of database objects using SQL. The module operates within a framework that focuses on developing business problem-solving and communication skills, and extensive use is made of business case studies.

 

HCS201

 

 

Object Oriented Programming

 

The module aims at providing a solid foundation in Object Oriented Programming. Topics covered include: Objects overview and review, Creating class instances within constructors, Objects analysis: creating fields and properties, Inheritances and specialized classes, Base class and abstract classes, Events and exception, Providing services using interfaces and Abstract classes, Polymorphism: using classes, interchangeably, Shared and static members, Overloading operators, Overriding, Multithreading.

HCS202

 

Software Engineering

This module provides a general introduction to software engineering. It introduces concepts such as software processes and agile methods, and essential software development activities, from initial specification through to system maintenance. Formalisms and tools to assist in software development are also presented, including common design patterns and UML notation. There is a focus on software testing, from unit testing to the testing of software releases. Project management and professional software engineering practice will also be covered. Case studies provide practical examples for many of these concepts.

HCS203

 

Artificial Intelligence and Expert Systems  

The module develops among students a working knowledge of expert systems as well as the understanding of the application of artificial reasoning in industrial processes. Topics covered include: An introduction to intelligence, historical and current trends and characterization of knowledge-based systems, Search, logic and deduction, Knowledge representation, production system, expert systems, architecture of expert systems, criteria for selecting expert system shells, end-user interface, developer interface, system interface, inference engine, knowledge base, data interface

HCS204

 

Discrete Mathematics  

The goal of this module is to introduce students to ideas and techniques from discrete mathematics that are widely used in science and engineering. This module teaches the students techniques in how to think logically and mathematically and apply these techniques in solving problems. To achieve this goal, students will learn logic and proof, sets, functions, as well as algorithms and mathematical reasoning. Key topics involving combinatorics, number theory, probability theory, and graph theory and formal languages and computability are covered in this module.

 

HCS211

 

 

Data Communications and Computer Networks  

 

The module exposes students to the different technologies applied in data communication and the principles of computer networking. Topics covered include: Computer network technologies and applications, Role of Data communication in organizations, Transmission Media , Signaling, Communication protocols, Communication architectures – ISO OSI Model, Transmission media, Network connections (Data transmission modes, multiplexing), Network types (LAN,WAN,MAN), LAN topologies, LAN MAC protocols, Routing and routing algorithms (distance vector, link state, BGP), Basic router configurations and routing tables, switching and switching devices. Spanning tree protocol. Configuration, operation and administration of PC-based LAN and WAN, troubleshooting a network. Administration of multiple network Operating Systems e.g. Windows 2000, Linux and Unix services via TCP/IP protocol. IP addressing (IPv4and IPv6). Network security, Accessing the WAN protocols-ATM, Frame Relay, HDLC, PPP, PAP, CHAP and broadband links. WAN traffic control and Access Control Lists (ACL), Enterprise Network (NAT, DHCP and troubleshooting),

HCS212

 

Machine Learning

In this module, students will learn about the most effective machine learning techniques, and gain practice implementing them and getting them to work for yourself. More importantly, students will learn not only the theoretical underpinnings of learning, but also gain the practical know-how needed to quickly and powerfully apply these techniques to new problems. This module provides a broad introduction to machine learning, datamining, and statistical pattern recognition. Topics include: (i) Supervised learning (parametric/non-parametric algorithms, support vector machines, kernels, neural networks). (ii) Unsupervised learning (clustering, dimensionality reduction, recommender systems, deep learning). (iii) Best practices in machine learning (bias/variance theory; innovation process in machine learning and AI).

HCS213

 

Operating Systems and Computer Architecture

The topics covered will be divided between the traditional computer architecture and operating systems study domains: Computer Architecture: General-purpose computer, bus structure, the physical arrangement of buses, bus parameters. Block diagram of the processor. System of the interruptions, algorithm of the interruptions. Description of the system bus. Input and output devices, functions. Parallel port. Serial port, interfaces. Direct Memory Access. Computer memory, types of memory, cache. Optical and magnetic storage media, methods of writing and reading. PC video system, types and parameters. Computer architecture: basic principles, instruction set, processor, memory hierarchy, I/O organization.

Operating systems: Evolution and role of the operating system. Architectural concepts. Organization and functionality of an operating system. Process Management, Direct and indirect communication, Scheduling, Algorithm evaluation, Process synchronization, SW approaches for mutual exclusion, Synchronization constructs, Deadlock, Memory management, Virtual memory, Disk scheduling algorithms, File System, Free space management: bit vector, lists. Directory implementation: linear list, hash table. I/O subsystem, I/O techniques, Device driver and application interface, I/O kernel services

HCS260

 

Physical Computing and the Internet of Things

Studying this module will introduce the technology involved in the development and programming of hardware devices that can sense and act in the environment. It explains and demonstrates how the environment, which is inherently continuous, can be monitored by analogue electrical and mechanical sensors, then captured and analysed using a computer, which is a discrete system. A focus of this module is the interface between the digital and the analogue. You’ll learn basic physics, electronics, programming and software engineering. The module’s practical objective is the development of the skills needed for designing and building interactive physical devices.

HCS212

 

Machine Learning 

In this module, students will learn about the most effective machine learning techniques, and gain practice implementing them and getting them to work for yourself. More importantly, students will learn not only the theoretical underpinnings of learning, but also gain the practical know-how needed to quickly and powerfully apply these techniques to new problems. This module provides a broad introduction to machine learning, datamining, and statistical pattern recognition. Topics include: (i) Supervised learning (parametric/non-parametric algorithms, support vector machines,kernels, neural networks). (ii) Unsupervised learning (clustering, dimensionality reduction, recommender systems, deep learning). (iii) Best practices in machine learning (bias/variance theory; innovation process in machine learning and AI).

 

HCS213

 

Operating Systems and Computer Architecture

 

The topics covered will be divided between the traditional computer architecture and operating systems study domains: Computer Architecture: General-purpose computer, bus structure, the physical arrangement of buses, bus parameters. Block diagram of the processor. System of the interruptions, algorithm of the interruptions. Description of the system bus. Input and output devices, functions. Parallel port. Serial port, interfaces. Direct Memory Access. Computer memory, types of memory, cache. Optical and magnetic storage media, methods of writing and reading. PC video system, types and parameters. Computer architecture: basic principles, instruction set, processor, memory hierarchy, I/O organization. Operating systems: Evolution and role of the operating system. Architectural concepts. Organization and functionality of an operating system. Process Management, Direct and indirect communication, Scheduling, Algorithm evaluation, Process synchronization, SW approaches for mutual exclusion, Synchronization constructs, Deadlock, Memory management, Virtual memory, Disk scheduling algorithms, File System, Free space management: bit vector, lists. Directory implementation: linear list, hash table. I/O subsystem, I/O techniques, Device driver and application interface, I/O kernel services

 

HCS260

 

Physical Computing and the Internet of Things

 

Studying this module will introduce the technology involved in the development and programming of hardware devices that can sense and act in the environment. It explains and demonstrates how the environment, which is inherently continuous, can be monitored by analogue electrical and mechanical sensors, then captured and analysed using a computer, which is a discrete system. A focus of this module is the interface between the digital and the analogue. You’ll learn basic physics, electronics, programming and software engineering. The module’s practical objective is the development of the skills needed for designing and building interactive physical devices.

 

HCS301

 

Programming Languages

 

This is a practical module which focuses on the design and implementation of programming languages. From the design point of view, learners will study language features as tools for expressing algorithms. From the implementation point of view, learners will study compilers, interpreters, and virtual machines as too ls to map those features efficiently onto modern computer hardware. Languages such as C, C++, Java, C#, VB.NET, Python, Prolog, Ruby on Rails, PHP and Ruby on Rails will be used to discus language features.

 

HCS311

 

Theory of Computation

 

The module covers theoretical treatment of what can be computed and how fast it can be done. Applications to compilers, string searching, and control circuit design will be discussed. The hierarchy of finite state machines, pushdown machines, context free grammars and Turing machines will be analysed, along with their variations. The notions of decidability, complexity theory and a complete discussion of NP-Complete problems round out the module.

 

HCS360

 

Industrial Attachment

 

In this module, students are attached to an organization offering relevant in-house training. During the attachment period, student will be exposed to practical Computer Science skills ranging from programming, software engineering, database and server administration, networking, computer security. Students are also expected acquire at least one certification in Computer science related professional module.

 

HCS380

 

Internship Project

 

Students will be required to undertake two industrial standard projects aimed solving practical problems within the organization they are attached to using Computer Science skills. The project scope should be agreed upon between the industrial and academic supervisor hence the project will be jointly supervised.

HCS401

Design and Analysis of Algorithms

The module introduces students to the design of computer algorithms, as well as analysis of sophisticated algorithms. Topics include asymptotic ("Big-oh") notation, sorting and searching, divide and conquer (master method, integer and matrix multiplication, closest pair), and randomized algorithms (QuickSort, contraction algorithm for min cuts); data structures (heaps, balanced search trees, hash tables, bloom filters), graph primitives (applications of breadth-first and depth-first search, connectivity, shortest paths), and their applications (ranging from deduplication to social network analysis); greedy algorithms (scheduling, minimum spanning trees, clustering, Huffman codes) and dynamic programming (knapsack, sequence alignment, optimal search trees); shortest paths (Bellman-Ford, Floyd-Warshall, Johnson), NP-completeness and what it means for the algorithm designer, and strategies for coping with computationally intractable problems (analysis of heuristics,local search).

 

HCS402

 

Computational Thinking

 

The aims to provide students with an understanding of the role computation can play in solving problems and to help students feel justifiably confident of their ability to write programs that allow them to accomplish useful goals. Students will spend a considerable amount of time writing programs to implement the concepts covered in the module. Topics covered include plotting, stochastic programs, probability and statistics, random walks, Monte Carlo simulations, modeling data, optimization problems, Knapsack problem, Graphs, Dynamic programming, Statistical fallacies and clustering.

 

HCS411

 

Computer Graphics and Visualization

 

This module offers an introduction to computer graphics hardware, algorithms, and software. Topics include: line generators, affine transformations, line and polygon clipping, splines, interactive techniques, perspective projection, solid modelling, hidden surface algorithms, lighting models, shading, and animation. Students will also learn how to work with images in a variety of ways, how to synthesise graphics and how to process visual signals, mathematical ideas that underpin digital Representations of graphics; how digital media files represent graphics, and how to handle and manipulate them, and the basics of working with simulated physics and 3D graphics.

 

HCS412

Computer Security

 
 

The Computer Security module gives students an understanding of the need for computer security and the technologies supporting it. It has both a theoretical component that will teach students mathematical underpinnings of security systems and a practical element to help them discover the pitfalls of security design and comprehend the mathematics underlying the protocols by small programming examples.

HCS460

Capstone Project 1

In this module, students will undertake a substantial research that allows them to demonstrate a wide range of skills such as project planning, management, research, software implementation and written presentation. Students will integrate knowledge gained throughout the degree and use skills acquired in other modules in final dissertation. The work will consist of a combination of research and software development. Students will be expected to use methodologies from various components of computer science.

HCS461

 

Capstone Project 2

 

In this module, students will undertake substantial research that allows them to demonstrate a wide range of skills such as project planning, management, research, software implementation and written presentation. Students will integrate knowledge gained throughout the degree and use skills acquired in other modules in final dissertation. The work will consist of a combination of research and software development. Students will be expected to use methodologies from various components of computer science. Its a continuation of capstone project 1.

  • Bachelors

    For all Undegraduate Bachelors Degree programs

    Apply Online

  • Masters/PhD

    For all Masters and PhDs you can apply online

    Apply Online

  • Diplomas

    Apply online for all University of Zimbabwe Diplomas

    Apply Online

  • Apply online

    Apply online


207

Undergraduate Degree Programmes


223

Postgraduate Programmes


44

Postgraduate Specialised Programmes


32

Associate/or Affiliate Colleges

REPUTATION

Award 1
Award 2
Award 3

Teaching

Community Outreach

Research

Innovation

Industrialization

window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-BEMM867998');

Talk to us

+2634303211