COMS1015A BCO - Course - Outline
COMS1015A BCO - Course - Outline
Professor R. Ajoodha
Associate Professor: School of CSAM
Director: WITS ExplainableAI Lab
Postgraduate Coordinator: Computer Science
CoE-MaSS: Focus Area Coordinator of Machine Intelligence and Learning
from Experience
2 Course Description
This course serves as an introduction to computation, which is a method for converting input data into
output using a predetermined process. Imagine baking a cake: you start with various ingredients (input),
follow a specific baking recipe (procedure), and the result is a delicious cake (output).
Throughout the course, we explore computation as used by modern computers to operate. Initially, we
focus on the units of digital computation: bits. These bits are used to represent various forms of multimedia
data we encounter daily, such as images, music, and videos. The course investigates how computers strive
to manage, process, and share these bits efficiently, with an emphasis on their security and integrity.
Floor UG and 1, TWK Mathematical Sciences Building, Braamfontein Campus West, 1 Jan Smuts Avenue, Braamfontein 2000, South Africa
T +27 11 717 6188 | E [email protected] | www.wits.ac.za
The course also addresses the hardware aspects of computing components and how they can be pro-
grammed. This allows us to use the same hardware to solve many different problems by writing software.
Finally, we end the course by looking at the limits of computation. Here, we learn that there are certain
problems that cannot be computed.
The prerequisites and co-requisites to register for this course are defined in the current Faculty Rules &
Syllabuses available here: https://www.wits.ac.za/students/academic-matters/rules-and-syllabuses/.
Students are not expected to be computer literate, however they should have a good grasp of high school
level mathematics, particularly in algebra and set theory. Students should also know how to use a non-
programmable scientific calculator. More importantly, students should demonstrate a strong curiosity and
willingness to learn.
4 Learning Outcomes
By the end of the topic, you are expected to be able to do the following:
1. Convert numbers into different number systems, perform base arithmetic, and represent numbers in
floating-point representation.
2. Encode, compress, transmit, and encrypt digital data and evaluate the effectiveness of these opera-
tions.
3. Design and optimise Boolean expressions and digital circuits to perform logical operations, and use
Boolean Algebra and Karnaugh maps to simplify logical expressions.
5. Write, trace, and interpret low-level and high-level instructions to solve problems.
6. Evaluate, analyse, and interpret the limitations of computation through Turing machines and compu-
tational complexity.
Floor UG and 1, TWK Mathematical Sciences Building, Braamfontein Campus West, 1 Jan Smuts Avenue, Braamfontein 2000, South Africa
T +27 11 717 6188 | E [email protected] | www.wits.ac.za
The mark breakdown, structure of assessments, and teaching activities for the course is as follows:
6 Prescribed Text
The course will reference the following textbook, which provides additional information about the topics
covered:
• Dale, N. B., & Lewis, J. (2007). Computer science illuminated (fourth or later edition). Jones & Bartlett
Learning.
Floor UG and 1, TWK Mathematical Sciences Building, Braamfontein Campus West, 1 Jan Smuts Avenue, Braamfontein 2000, South Africa
T +27 11 717 6188 | E [email protected] | www.wits.ac.za
The learning management system will be Moodle. A link to the course can be found here: https://courses.
ms.wits.ac.za/moodle/course/view.php?id=395. All students are expected to consult the course home page
at regular intervals.
Introduction
In addition to skills and knowledge, The University of the Witwatersrand aims to teach students appropriate
Ethical and Professional Standards of Conduct. The Wits Academic Honesty Policy exists to inform stu-
dents and Faculty of their obligations in upholding the highest standards of professional and ethical integrity.
All student work is subject to the Wits Academic Honesty Policy. Professional and Academic practice pro-
vides guidance about how to properly cite, reference, and attribute the intellectual property of others. Any
attempt to deceive a faculty member or to help another student to do so will be considered a violation of
this standard.
Floor UG and 1, TWK Mathematical Sciences Building, Braamfontein Campus West, 1 Jan Smuts Avenue, Braamfontein 2000, South Africa
T +27 11 717 6188 | E [email protected] | www.wits.ac.za
Authorship
The student must clearly establish authorship of their work. Work presented without (or incorrect) author-
ship will be given a grade of zero. Referenced work must be clearly documented, cited, and attributed,
regardless of media or distribution. Even in the case of work licensed as public domain or Copy-left, (See:
http://creativecommons.org/) the student must provide attribution of that work to uphold the standards of
intent and authorship.
Declaration
Online submission of, or placing one’s name on an exam, assignment, or any course document is a state-
ment of academic honour that the student has not received or given inappropriate assistance in completing
it and that the student has complied with the Academic Honesty Policy in that work.
Consequences
An instructor may impose a sanction on the student that varies depending upon the instructor’s evaluation
of the nature and gravity of the offense. Possible sanctions include but are not limited to, the following: (1)
Require the student to redo the assignment; (2) Require the student to complete another assignment; (3)
Assign a grade of zero to the assignment; (4) Assign a final grade of “F" for the course. A student may
appeal these decisions according to the Academic Grievance Procedure (See the relevant section in the
Student Handbook). Multiple violations of this policy will result in a referral to the Conduct Review Board for
possible additional sanctions.
Any and all results of in-class and out-of-class assignments and examinations are data sources for research
and may be used in published research. All such use will always be anonymous.
11 Course Structure
The table below shows the tentative schedule for the course on a weekly basis. This schedule is subject to
change depending on public holidays and other factors.
Floor UG and 1, TWK Mathematical Sciences Building, Braamfontein Campus West, 1 Jan Smuts Avenue, Braamfontein 2000, South Africa
T +27 11 717 6188 | E [email protected] | www.wits.ac.za
12 Lecture Synopsis
This lecture explores number systems, with a particular focus on the Binary number system, which is used
to represent data and instructions in most modern computing devices. You will learn how to convert integers
and real numbers between different number systems using the positional numeral principle. The lecture
also covers base arithmetic in any number system.
This lecture addresses how digital data is represented in computing, using the basic building blocks of
bits and bytes. We will cover the digital encoding of various data types such as numbers, text, sound,
images, and video. In representing numbers, we introduce One’s Complement and Two’s Complement
and discuss how real numbers are represented in computers using the IEEE standard. We then look at
encoding text data using ASCII and UNICODE character sets, and also examine how to encode data as
text using Base-64. For sound, we explore digital audio conversion, including sampling and quantisation, to
represent sound. The representation of images and video is also discussed, including colour models and
video digitisation, which covers frame rate and resolution.
Floor UG and 1, TWK Mathematical Sciences Building, Braamfontein Campus West, 1 Jan Smuts Avenue, Braamfontein 2000, South Africa
T +27 11 717 6188 | E [email protected] | www.wits.ac.za
In this lecture, our focus is on how computers manage and protect multimedia data through compression,
error correction, and encryption techniques. We will introduce various data compression algorithms de-
signed to reduce file sizes while preserving essential information. Furthermore, we will evaluate these
algorithms using principles from information theory. We will also examine data transmission in modern
computing environments, including the use of parity checks and checksums for error detection. Finally, we
will turn our attention to data security, focusing on protective measures such as encryption and hashing to
safeguard data against unauthorised access or alteration.
In this lecture, we will look at digital logic design, starting with binary logic, truth tables, and the application
of logic gates. We will explore how binary logic is used to construct digital electronics and decision-making
circuits. The discussion then transitions to Boolean Algebra, including methods for organising and simpli-
fying logical expressions. We will review various combinational circuits, discussing their design and role
in data processing, introduce Karnaugh Maps for logic minimisation, and conclude with an overview of
sequential circuits.
In this lecture, we investigate the computing components in modern computing and their operations. We
begin by discussing classical computer architectures, such as the Von Neumann model and the Harvard
Model. We then examine central components like the CPU and GPU, including processes such as the
fetch-execute cycle and the graphics pipeline. The discussion extends to memory and storage solutions.
We also cover the role of the motherboard in bringing all the components together. The lecture concludes
by discussing how different hardware setups cater to a spectrum of user requirements.
12.6 Software
This lecture focuses on software. We begin by discussing the use of pseudocode for algorithm concep-
tualisation. We then introduce low-level programming languages, which offer direct control over computer
hardware, in contrast to high-level languages known for their abstraction from hardware functions. We also
briefly examine system and application software. The lecture concludes with an overview of the Software
Development Life Cycle (SDLC) and various methodologies, such as Waterfall and Agile.
Floor UG and 1, TWK Mathematical Sciences Building, Braamfontein Campus West, 1 Jan Smuts Avenue, Braamfontein 2000, South Africa
T +27 11 717 6188 | E [email protected] | www.wits.ac.za
In this final lecture, we will explore the boundaries of computation, focusing on the feasibility of a universal
algorithm to solve all mathematical problems and acknowledging the existence of unsolvable issues. We
will briefly explore computational complexity, which analyses the growth rates of algorithms as the input
size increases. We will categorise computational challenges into P and N P classes, using examples of
problems we have already encountered in the course. The lecture then examines the physical limitations of
computing, as suggested by Moore’s Law. The course concludes by discussing heuristics and the potential
of quantum computing as a promising field for addressing these challenges.
Floor UG and 1, TWK Mathematical Sciences Building, Braamfontein Campus West, 1 Jan Smuts Avenue, Braamfontein 2000, South Africa
T +27 11 717 6188 | E [email protected] | www.wits.ac.za