BACHELOR OF SCIENCE HONOURS DEGREE IN SOFTWARE ENGINEERING (HSWE)

PROGRAMME OVERVIEW

  • The programme seeks to produce 21st century graduates with the ability to develop systematic models and reliable techniques throughout the production process of high-quality computer systems to be delivered on time and within budget.

1.2 The programme will also develop engineering professionals who have an ever-learning capability, and knowledge of modern software engineering theoretical concepts and principles applicable in crafting solutions which address national and global needs. 

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:
  • Normal Entry

A minimum of 2 A’ Level passes in Mathematics AND Software Engineering OR Computer Science OR their equivalents.

  • Special Entry

Should have at least an ND or HND in Software Engineering or any relevant field, OR any equivalent qualification acceptable according to the Institute’s General Academic Regulations.

  • 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 Software Engineering field which include:

Software Architect, Software Developer, Systems Analyst, Systems Engineer,

Software Tester, Information Systems Managers, Cloud Manager, Database Engineer, Data Scientist, Network Engineer, Software Project Manager.

  • Further Studies: Masters and Doctoral studies in Software Engineering, Data Science, Cloud Computing, Information Security and any other relevant Computing discipline.

 

PROGRAMME STRUCTURE

A student will not be allowed to register for a module with a pre-requisite if the pre-requisite is not passed. Electives will be offered subject to the availability of personnel. * denotes core modules.

 

Level 1 Semester 1

Code Module Description Credits
HSWE111* Software Engineering Fundamentals 10
HCSCI132* Principles of Programming Languages 10
HCSCI133* Operating Systems 10
HCSCI136* Data Structures and Algorithms 10
HCSE138 Discrete Mathematics 10
CS131* Basics of Communication Skills 12

Level 1 Semester 2

Code Module Description Credits
HSWE121* Visual Programming 10
HSWE122* Computer Networks and Information Security 10
HSTA132* Applied Statistics 10
HCSE133* Ethics and Professionalism 10
HCSCI135* Computer Architecture and Organization 10
HCSE135* Database Systems 10

Level 2 Semester 1

Code Module Description Pre-Requisites Credits
HCSE224* Object Oriented Programming HCSCI132 10
HSWE212* Requirements Engineering   10
HCSCI235* Software Project Management HSWE111 10
HCSCI234* Research Methods   10
GS231* Gender Studies   12
TCNP201* Technopreneurship   12

Level 2 Semester 2

Code Module Description Pre-Requisites Credits
HSWE221* Web Technologies   10
HSWE222* Software Architecture and Design   10
HSWE223* Advanced Database Systems HCSE135 10
HSWE224* Mini Project   10
Electives (Select 1 module from the following):      
HSWE225 Mobile Application Development HCSE224 10
HSWE226 Game Programming HCSE224 10

Level 3 Semester 1

Code Module Description Pre-Requisites Credits
HSWE311* Work-Related Learning I   40

Level 3 Semester 2

Code Module Description Pre-Requisites Credits
HSWE321* Work-Related Learning II HSWE311 80

Level 4 Semester 1

Code Module Description Pre-Requisites Credits
HSWE411* Software Testing and Quality Assurance HSWE111 10
HSWE412* Software Evolution and Re-engineering HSWE212 10
HCSCI437* Human Computer Interaction   10
HCSCI432* Simulation and Modelling HSTA132 10
Elective 1 (Select 1 module from the following):      
HSWE415 Mobile Computing and Wireless Networks HSWE122 10
HSWE416 IoT and Cloud Computing HSWE122 10
HCSCI433 Parallel and Distributed Computing HSWE122 10
Elective 2 (Select 1 module from the following):      
HSWE418 Web Services and Service-Oriented Architecture HSWE221 10
HSWE419 Advanced Web Engineering HSWE221 10
HSWE420 Image Processing and Machine Vision   10
Level 4 Semester 2
Code Module Description Pre-Requisites Credits
HCSCI431* Theory of Computation   10
HCSE439* Network Security and Cryptography   10
HCSCI434* Artificial Intelligence   10
HSWE424* Data Science and Big Data Analytics   10
HSWE425* Capstone Project HSWE214, HSWE224 24

 

SYNOPSES

HSWE111 Software Engineering Fundamentals

This subject introduces the issues, concepts, techniques, tools, and methodologies related to large-scale software development covering the entire life cycle. Topics include definition, estimation, analysis, design, implementation, testing, deployment, maintenance, refinement of the software and use of CASE Tools.

HCSE138 Discrete Mathematics

In this course the discovery that logical propositions are the underlying model of discrete systems is made. From this modest beginning algorithms are developed and their efficacy proven. Topics include propositional and predicate logic, basic proof techniques, set algebra and Boolean algebra, recursion and induction, trees and graphs, introductory combinatorics, and matrix algebra.

HCSCI132 Principles of Programming languages

The course 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 course 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.

HCSCI133 Operating Systems

Operating Systems Overview: Evolution of operating systems, Operating Systems Concepts, Operating System structure, Processes, CPU Scheduling, Interprocess Communication, Deadlocks, Memory Management, Virtual Memory and Paging, File Systems, Protection and Security.

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.

CS131 Basics of Communication Skills

Refer to Communication Skills Department regulations.

HSWE121 Visual Programming

The course covers Object-based programming concepts, Visual Basic .NET framework, Working with Windows Forms and Controls. It also includes topics like designing user friendly user interface (UI), Data Types, Variables, Creating and Using Data Structures, Creating and using windows Objects, Using Functions, Using Decision Structures and Conditional Loop Structures. Students will be exposed to restricting user input, validating field and form data, exception handling, creating menus, creating status bars and navigation panels, and creating toolbars. Additionally, students will work with Web Forms (ASP.Net) and Database Connection Objects (ADO.NET) and deploy their Windows-based Applications on an Application Server.

HSWE122 Computer Networks and Information Security

This course introduces the technologies related to computer communications and networks. Topics include computer network topologies, and protocols with special emphasis on ISO model, ATM and TCP/IP protocol, and communication media, framing, addressing, packet switching, virtual circuits, congestion and deadlock control. Fundamentals of network security, risk management, Internet and Emerging Technologies will also be covered.

HSTA132 Applied Statistics

The module introduces students to an overview of statistics, data description, measurement scales, adequate graphic display, measures of central tendency and variability, differentiation between population and sample. It also covers how to use a statistic to estimate a population’s parameter, confidence interval and its interpretation, hypothesis testing, understanding Type I and Type II errors, comparing two population means, proportions or variances, independent data versus paired data and identifying relationships between two variables.

HCSE133 Ethics and Professionalism

This course covers ethical and social issues related to the development and use of computer technology. Topics include ethical theory, and social, political, and intellectual property (IP) and other legal considerations. Scenarios in problem areas: privacy, reliability and risks of complex systems, and responsibility of professionals for applications and consequences of their work.

HCSCI135 Computer Architecture and Organization

The course covers the fundamentals of computer architecture, Von Neumann and Harvard architecture, functions of control unit (CU), arithmetic logic unit (ALU), memory and I/O devices. Topics to be covered include number representations, fetch-decode cycle, machine instructions, memory and registers addressing modes, arithmetic operations, translating high level arithmetic into assembly, stack memory, heap memory, subroutines, recursive subroutines, negative numbers and two’s complement. The subject will also explore the evils of floating point, latches and memory reading, multi-cycle implementations, finite state machines, balancing the work into single cycles, PLAs, Microcode, RISC, CISC, pipelines, principle of locality, Direct Mapped Caches, I/O polling and interrupts.

HCSE135 Database Systems

The module covers fundamentals of database system principles, database management systems (DBMS), database design concepts and implementation. It also includes topics in database models, database system architecture, normalization, structured query system (SQL), NoSQL database manipulation and database security. The assignments are implemented using any SQL database tool depending on the instructor.

HCSE224 Object Oriented Programming 

The purpose of the module is to equip students with application experience of Object-Oriented (OO) principles (i.e. inheritance, encapsulation and polymorphism) using an Object-Oriented Programming (OOP) programming language like Java. This module will build on Object-Oriented Analysis and Design knowledge already gained. Students will be exposed to generic programming concepts, use of packages, input/output (IO) streams and exception handling techniques. The course will also enable students to build sound console and Graphical User Interface (GUI) applications which are integrated to the database.

HSWE212 Requirements Engineering

Students will be exposed to cover the fundamentals of requirements engineering; definitions, characteristics, process, evolution and management. Requirements elicitation. Requirements specification and documentation. Requirements validation.

HCSCI235 Software Project Management

The course will equip students with Project Management skills encompassing planning, tracking, people management, scheduling, estimation, quality and risk management during the development of software projects.

HCSCI234 Research Methods

This course 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. 

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

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. 

HSWE221 Web Technologies

Students will cover Web design fundamentals and internet technologies. They will have an appreciation of Web communication protocols and methods. They will learn how to use Scripting languages, interface design tools, Application Programming Interface (API), Web Services and design patterns in Web Application Development.

HSWE222 Software Architecture and Design

This will be a follow-up course on Software Engineering Fundamentals covered in Level I, introducing students to the architectural and design patterns used in the design of software systems. It covers principles and practices for structuring software. Topics include Design principles, Design patterns (Creational, Structural and Behavioural), Architectural structures and views, Quality attributes, Architectural styles and Reconstructing architecture. They will also consider the use of different libraries, frameworks, and APIs, so that they are better able to choose and integrate these tools when developing software.

HSWE223 Advanced Database Systems 

This will be a follow up course on Database Systems Fundamentals in Level I and will cover advanced concepts in Database Systems with a focus on Data Mining and Emerging Technologies. Various techniques for implementing relational databases, object-oriented and distributed databases using MySQL, Oracle, Microsoft SQL and MongoDB. In depth analysis on ODBC and JDBC connectivity will be made, Database as a Service (DaaS), query optimization, data performance tuning, data mining process and visualization will also be covered.

HSWE224 Mini Project

Students will be expected to use Software Engineering principles and other Domain area knowledge in coming up with a Mini project which addresses a particular need. The project will be done as a team/group of 2 or 3 and interdepartmental collaboration is allowed.

HSWE225 Mobile Application Development

This module includes concepts used in developing mobile applications. The following concepts should be covered: Mobile application development environment, mobile software engineering, VUIs, Intents and Services, Storing and Retrieving data, communications via the net and web, Telephony, Notifications and Alarms, Graphics, Multimedia, Location, Security, Platform issues.

HSWE226 Game Programming

The module will seek to equip students with gaming concepts and development abilities. 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 and game security. The practicals will be done using Unity3D and any OOP language as selected by the instructor.

HSWE311 Work-Related Learning I

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

HSWE321 Work-Related Learning II

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

HSWE411 Software Testing and Quality Assurance 

The subject will cover Software Testing fundamentals, Static Testing, Structural Testing, Regression Testing, Software Quality concepts and culture, Software Quality Assurance (SQA) process, Quality metrics, Configuration Management, Impact of Software Quality, Verification and Validation (VandV) concepts and techniques.

HSWE412 Software Evolution and Re-engineering 

Students will acquire knowledge on Software Maintenance concepts, the evolution processes and Program evolution dynamics. They will also cover Lehman’s Laws of Software Evolution, Build Environment Management, Legacy System Management, Reverse engineering concepts, Reengineering process activities, Types of Re-engineering and Open source development.

HCSCI437 Human Computer Interaction 

Students will cover Human Computer Interaction (HCI) concepts and best practices, Components of HCI, cognitive frameworks for HCI, Cognitive models in HCI, Interactive design methods and techniques, evaluation.

HCSCI432 Simulation and Modelling 

Students will cover Software modelling and analysis including Modelling foundations, principles, mathematical models and formal notation, and types of models. Analysis fundamentals, dependability, Formal analysis. Statistical analysis includes collecting and reading data so that one can describe past behaviour, characteristics and predict future ones.

HSWE415 Mobile Computing and Wireless Networks 

Students will cover basic mobile computing and wireless networking concepts including issues, standards and architectures. It will also cover Telecommunication Systems, Wireless LAN Standards, Mobile Network Layer, Mobile Transport Layer and Emerging Trends in Mobile Networks.

HSWE416 IoT and Cloud Computing 

This module deals with concepts of IoT. It also looks at the basics of cloud, different services offered by cloud, deployment models, edge computing and security issues in cloud. It also covers fundamental aspects of the cloud environment, mobile edge devices, radio remote heads (RRH), hybrid cloud and edge deployments.

HCSCI433 Parallel and Distributed Computing

Common applications of parallel computing; parallel machine architectures including Single Instruction Multiple Data (SIMD) or short-vector processing; multi-core and multi-processor shared memory; custom co-processors including DSPs and GPUs, and cluster and grid computing; programming approaches including parallelizing compilers; explicit message-passing (such as MPI); and specialized co-processor programming (such as for GPUs).

HSWE418 Web Services and Service Oriented Architecture

The module introduces students to the world of web service principles, applications, best practices and the service-oriented paradigm. It covers the background on distributed systems, component-based development and the factors which influenced service-oriented architecture (SOA). The course also seeks to provide learners with sound knowledge on web services architecture, technologies, development, registration and discovery process. Web services security and management will conclude the module.

HSWE419 Advanced Web Engineering

The course advances the hands-on experience of students with enterprise web development tools like J2EE, JavaBeans, JFX and Struts. It also covers web design patterns which include MVC, Observer etc., use of application and session data, state in web applications, XML and JSON will be explored. Both server-side and client-side scripting technologies like JSP, ASP.Net, JavaScript and Ajax, web application security and integration with Cloud Database will also be covered.

HSWE420 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.

HCSCI431 Theory of Computation 

The course explores Turing machines, universal computation, the halting problem and general undecidability, Rice’s theorem, the recursion theorem, efficient computation models including finite automata, regular languages, context-free grammars, time and space (memory) bounds, deterministic and nondeterministic computation and their relationships, the P versus NP problem and hard problems for NP and beyond.

HCSE439 Network Security and Cryptography

This is composed of Network traceroute, packet filtering, TCP/IP and OSI Network Security, Access Control Issues (Packet Filters, Firewalls), Communication Security (OSI Layer Security Protocols), Web Security, Messaging services security, Modern Encryption Algorithms, Cryptography Fundamentals, Cryptosystems and Techniques.

HCSCI434 Artificial Intelligence

Students are introduced to concepts of AI such as Turing test, Intelligent Agents and various techniques. They will also cover Problem-Solving, Knowledge Representation, Reasoning, Bayesian Networks, Fuzzy Logic Systems, Artificial Neural Networks (ANNs), Expert Systems and Advanced topics like Natural Language Processing (NLP) and Machine Learning.

HSWE424 Data Science and Big Data Analytics

This module covers the fundamentals of data science, Big Data systems organisation and Design, and Big Data Analytics (BDA). It also enables students to carry out practicals with Big Data analytics platforms including Hadoop, Spark, and cloud based Big Data services. The course will also cover Big Data Infrastructure management, Big Data systems for application domains and Big Data software architectures.

HSWE425 Capstone Project 

Students will be expected to use modern Software Engineering 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.