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