BACHELOR OF SCIENCE HONOURS CLOUD COMPUTING AND INTERNET OF THINGS (HCC)
| Module Code | Module Name | Description |
|---|---|---|
|
HCC101 |
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. |
|
HCC102
|
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. |
|
HCC103
|
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. |
|
HCC104
|
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. |
|
HCC111
|
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. |
|
HCC112
|
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. |
|
HCC113
|
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. |
|
HCC114
|
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. |
|
HCC201
|
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. |
|
HCC202
|
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. |
|
HCC203
|
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 |
|
HCC204
|
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. |
|
HCC211
|
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), |
|
HCC212
|
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). |
|
HCC213
|
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 |
|
HCC214
|
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. |
|
HCC301 |
Cloud Computing Infrastructure |
This module, focuses on components of Infrastructure as a Service (IaaS) cloud service model. These components include: compute, storage, network, and auxiliary services. |
|
HCC311 |
Intelligent Signal Processing |
Students will study how programs can capture and process audio and video signals. Students will also learn about time domain and frequency domain representations and processing and how you can extract information from audio signals; and how to implement movement and face detection systems that work with live camera input. |
|
HCC360 |
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. |
|
HCC380 |
Industrial Attachment |
In this module, students are attached to an organization offering relevant in-house training. During the attachment period, students will be exposed to practical Artificial Intelligence skills ranging from programming, software engineering, database and server administration, networking, computer security. Students are also expected acquire at least one certification in Artificial Intelligence related professional module. |
|
HCC401 |
IoT Networks and Protocols |
In this module we will focus on how the IoT works. You will learn about IoT networks and explore how ‘things’ connect to it, including whether the connection and processing is local (fog) or remote (cloud). |
|
HCC402 |
Cloud Security |
This module will introduce students to industry best practices for cloud security and learn how to architect and configure security-related features in a cloud platform. Students will develop the necessary skills to identify possible security issues in the cloud environment. Students will also gain experience with tools and techniques that monitor the environment and help prevent security breaches such as monitoring logs and implementing appropriate security policies. |
|
HCC411 |
Big Data Technologies |
This module covers, Analytics: Names of Big Data; Case for Big Data; Big Data Options Team Challenge; Features of Big Data: Security; Compliance; Auditing and Protection; Big Data Characteristics: Volume, Velocity, Variety and Veracity; Major Modern Data Base Types, Database Systems Architecture; Relational, Federated, Map/Reduce; Systems Design and Architecture Considerations: Storage Engines; Query Languages; Concurrency; Physical Database Systems; Component/Architecture Considerations: Discs; Memory; Network; Distributed Architecture Share Architecture; Controllers. Analytic Scalability; Convergence; Parallel Processing Systems; Cloud Computing; Grid Reduce; Map Reduce; Enterprise Analytic Sandbox; Analytic Data Sets; Analytic Methods; Analytic Tools Cognos; Micro-strategy Pentaho. Analysis Approaches: Statistical Significance; Business Approaches Analytic Innovation; Traditional Approaches; Hadoop; Hive; No SQL Databases; Data for Commerce. |
|
HCC412 |
Interaction Design |
In this module, you’ll examine the notion of ‘interaction with technology’. You will focus on the concepts behind modern UX design and production and gain a solid grasp and practical experience of the process which allows the creation of interactive systems. This process involves specification, design, prototyping and evaluation. You’ll examine several design approaches and techniques and consider how they enable usability engineering. You’ll learn how to evaluate interactive systems against criteria such as efficiency and usability. You’ll examine accessibility issues from the perspective of different populations. |
|
HCC460 |
Capstone Project 1 |
In this module, students 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 their knowledge gained throughout the degree and use skills acquired in other modules in the implementation of the final project. 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. |
|
HCC461 |
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. |



