Computing Fundamentals
13/09/2018 @ 9:00 am  17/09/2018 @ 4:30 pm
Course Code: CF
Course Duration: 5 Days
Description
This course introduces the learner to the fundamental building blocks associated with the hardware and software that make up a typical computing system. The course is a prerequisite for learners that intend to enter the IT industry in a technical capacity. The course is divided into three sections as outlined below:
COMPUTING MATHEMATICS
Set Theory
In this section a brief overview of set theory is given in order to
 define the notation which will be used in subsequent sections of this and related course notes
 examine the basic set operations
 introduce the fundamental number sets.
Number Systems
This topic is designed to refresh the learner’s understanding of the basic arithmetical operations and to elaborate on number systems as they relate to the implementation of certain data types in any computer architecture. Included are the representation and conversions of binary, octal and hexadecimal numbers and the encoding of IEEE floating point numbers.
Boolean Algebra
In this section an overview is given of the basics of Boolean Algebra and the relationship to
 programming concepts
 digital circuits.
Graph Theory
This topic gives a brief introduction to graph theory. It illustrates the application of graphs in the implementation of tree structures, directed graphs and the relationship to finite state machines and regular grammars.
Basic Statistics
In this topic basic statistical methods and distributions are covered.
Data Structures
A description and the use of the major abstract data structures that are used to implement both hardware and software related systems.
COMPUTER HARDWARE
Architectural Model
A brief overview of the basic components of the von Neumann computer model with emphasis on target and host machine architectures. Also included is a description of combinational and microcoded machine architectures thus addressing RISC and CISC type configurations.
Finally a introduction to multiprocessing covering both SMP and MPP architectures.
Instruction Processing
A detailed introduction of aspects such as cache memory, instruction pipelines, etc. This is described using a pseudo machine which allows the learners to delve into symbolic and assembler codes thus understanding the instruction processing concepts in detail.
Memory Subsystems
In this section a hardware view of memory systems such as cache, main and virtual memory implementations are given.
Storage Subsystems
A description of storage subsystems with emphasis on Storage Area Networks (SAN) implementations.
Networking
A basic overview of the TCP/IP protocols and the Internet.
COMPUTER SOFTWARE
Operating Systems
In this section a theoretical overview of the various functional management programs that constitute an operating system is given. In particular the following is addressed:
 The user interface or shells
 Process Management.
 Storage Management
 Network management
File Systems
This section looks at the basic file structures including file directories and flat files. In addition the mapping and implementation of serial, direct and index files onto flat files are explained.
Database Management Systems
This chapter introduces relation database technology. A brief view of tables and their relations are given. In addition the learner is introduced to the Structured Query Language (SQL).
Programming Languages
A thorough treatise is given on the origins and usage of various programming languages that are in use in the industry today. The development cycle is explained and concepts such as compilers and interpreters are discussed.
Algorithms
This section is a guide to algorithmic design and presentation. In addition the use of Finite State Machines (FSM’s) to describe algorithms is shown. Finally a set of generic algorithms are shown.
Object Oriented Technology
In this chapter object technology concepts such as classes, inheritance, composition and data encapsulation is described via a set of practical examples.
Networking
In this topic the Internet Protocol (IP) and Transmission Control Protocol (TCP) are described from a software perspective. The Internet and the associated Universal Resource Locator (URL) and domains are explained. Also given is an overview on browser technologies.
METHODOLOGY & PLATFORM
The course is practical in nature in that a series of online tutorials guide the learner through the practical application of the theoretical aspects taught in the course. Included are optional exercises on:
 The preferred computer platform for the practical sessions is Linux.
 Relational DBMS and SQL. The DBMS used is MySQL.
 HTML concepts
 Linux shells specifically the Bourne Again Shell (BASH)
OUTCOMES
At the completion of the course the learner will be able to:
 Recognize computer numbers and determine their context. In addition the learner will be able to convert number from one radix to another and perform basic arithmetic operations using numbers encoded in different radices.
 Construct truth tables to determine prepositions. Perform various Boolean calculations.
 Analyse statistical distributions and calculate the mean and standard deviation of such distributions. Calculate a simple arithmetic regression line and forecast future trends.
 Analyse the paths in a graph and construct finite state machines (FSM’s) and associated matrices to solve certain classes of problems. The learner will also be able to describe regular sets and their relationship to FSM’s.
 Select a given abstract data structure to implement a solution to storing data in a manner as dictated by the problem class.
 Describe the different computer architectures in use today.
 Describe the basics of storage and memory.
 Describe the major functional managers of a typical operating system. They will be able to discuss the advantages and disadvantages of open source OS’s like Linux vs proprietary systems such as Microsoft Windows, and IBM’s zOS mainframe operating system.
 Execute simple Linux commands in a shell.
 Describe the file system and directory structure of a Unix/Linux system.
 Design a simple relational database and propagate data into the database plus perform queries to the database.
 Describe the basic functionality of the Internet and associated browsers. Create a simple WEB page using HTML.
 Show an understanding of OO techniques.
 Analyse work based problems and design appropriate algorithms.
MATERIAL
The following material is supplied:

 A full set of notes covering the course outline.
 A CD with solutions to all the assignments plus all the examples covered in the notes.
PREREQUISITES
Grade 12 with mathematics.