COS151 StudyGuide 14 Apr
COS151 StudyGuide 14 Apr
COS151 StudyGuide 14 Apr
Copyright
c reserved
Contents
1 Overview 1
1.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Related modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.4 Study units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 Outcomes 2
2.1 Career . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Course . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3 Plagiarism policy 6
4 Instructors 6
4.1 Course coordinator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.2 Lecturers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.3 Assistant lecturers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.4 Tutors and teaching assistants . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.5 Administrative support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5 Organisation 9
5.1 Class attendance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.2 Module website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.3 Mark Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.4 Announcements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.5 Lectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.6 Practicals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.7 Discussion forum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.8 Interaction with the Instructors . . . . . . . . . . . . . . . . . . . . . . . . . . 11
6 Study Material 12
6.1 Prescribed textbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
6.2 Additional references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
6.3 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
7 Assessment 13
7.1 Semester mark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
7.1.1 Semester Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
7.1.2 Practical Lab Experiences . . . . . . . . . . . . . . . . . . . . . . . . . 14
7.1.3 Tutorials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
7.1.4 Result Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
7.2 Examination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
7.3 Final Mark Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
7.4 Supplementary and Aegrotat Examinations . . . . . . . . . . . . . . . . . . . 15
8 Time Management 16
10 Support services 17
ii
1 Overview
1.1 Description
This module introduces concepts and terminology related to the computer science disci-
pline. Topics covered include the history of computing, machine level representation of data,
Boolean logic and gates, basic computer systems organisation, algorithms, programming
languages, complexity & automata theory, security, theory of computation, and ethical &
social issues.
The module, in essence, provides a broad overview of the fundamental concepts under-
lying computer science, as well as many of the sub-disciplines within the field. The practical
focus will be on short assignments that often does not involve the use of computers, but
rather paper assignments.
1.2 Prerequisites
A valid National Senior Certificate with admission for degree purposes, and the minimum
subject and level requirements for an appropriate degree programme.
1
Algorithms and Complexity Algorithmic strategies
Fundamental computing algorithms
Basic algorithmic analysis
Basic computability
The complexity classes P and NP
Automata theory
Architecture and Organisation Machine level representation of data
Assembly level machine organisation
Memory system organisation and architecture
Interfacing and communication
Functional organisation
Multiprocessing and alternative architectures
Architecture for networks and distributed systems
Net-centric Computing Introduction to net-centric computing
Communication and networking
The web as an example of client-server computing
Social and Professional Issues History of computing
Social context of computing
Privacy and civil liberties
Economic issues in computing
2 Outcomes
2.1 Career
This course teaches important concepts underlying very basic computer programming and
computer science in general. All the major fields within computer science are touched upon,
thus giving students a broad basis from which to approach problems in any computer science
related career.
2.2 Course
The outcomes of the study units covered by this course, taken from the ABET Computing
Accreditation Commission guidelines, are as follows:
Basic logic
• Describe how formal tools of symbolic logic are used to model algorithms and real-life
situation.
• Analyse and explain the behavior of simple programs involving the fundamental pro-
gramming constructs covered by this course.
• Design, test, and debug a program that uses each of the following fundamental pro-
gramming constructs: basic computation, simple I/O, standard conditional and iterative
structures, and the definition of functions.
2
Algorithms and problem-solving
• Discuss the representation and use of primitive data types and arrays.
• Describe how primitive data types are allocated and used in memory.
• Choose the appropriate primitive data type, array, or string for modelling a given prob-
lem.
• Summarise the evolution of programming languages illustrating how this history has
led to the paradigms available today.
Type systems
Abstraction mechanisms
• Explain how abstraction mechanisms support the creation of reusable software com-
ponents.
• Compare the contrast compiled and interpreted execution models, outlining the relative
merits of each.
• Describe the phases of program translation from source code to executable code and
the file produced by these phases.
3
Software design
Software processes
• Explain the software life cycle and its phases including the deliverables that are pro-
duced.
Algorithmic strategies
• For each of several kinds of algorithm, identify an example of everyday human behavior
that exemplifies the basic concept.
• Explain the use of big O notation to describe the amount of work done by an algorithm.
Basic computability
Automata theory
• Explain the reason for using different formats to represent numerical data.
• Explain how negative integers are stored in sign magnitude and twos-complement rep-
resentation.
• Discuss how fixed a point number representation affects accuracy and precision.
4
• Describe the internal representation of nonnumeric data.
• Explain the organisation of the classical von Neumann machine and its major functional
units.
• Summarise how instructions are represented at both the machine level and in the
context of a symbolic assembler.
• Explain the use of memory hierarchy to reduce the effective memory latency.
• Explain how interrupts are used to implement I/O control and data transfers.
Functional organisation
• Explain the basic instruction level parallelism using pipelining and the major hazards
that may occur.
• Discuss the concept of parallel processing beyond the classical von Neumann model.
5
The web as an example of client-server computing
• Explain the different roles and responsibilities of clients and servers.
History of computing
• List the contributions of several pioneers in the computing field.
• Compare daily life before and after the advent of personal computers and the Internet.
• Identify significant continuing trends in the history of the computing field.
Social context of computing
• Describe positive and negative ways in which computing alerts the modes of interaction
between people.
• Explain why computing/network access is restricted in some countries.
Privacy and civil liberties
• Describe current computer-based threats to privacy.
Economic issues in computing
• Suggest and defend ways to address limitations on access to computing.
3 Plagiarism policy
The Department of Computer Science considers plagiarism to be a serious offence. Dis-
ciplinary action will be taken against students who commit plagiarism. Plagiarism includes
copying someone else’s work without consent, copying a friend’s work (even with consent)
and copying material (such as text or program code) from the Internet. Copying will not be
tolerated in this module.
For a formal definition of plagiarism, the student is referred to http://www.ais.up.ac.
za/plagiarism/index.htm (from the main page of the University of Pretoria site, follow the
Library quick link, and then click the Plagiarism link). If you have any form of question
regarding this, please ask one of the lecturers, to avoid any misunderstanding. Also note
that the principle of code re-use does not mean that you should copy and adapt code to suit
your solution.
Note that all assignments submitted for this module implicitly agree to this plagiarism
policy, and declare that the submitted work is the student’s own work. Assignments will be
submitted to a variety of plagiarism checks. Any typed assignment may be checked using
the Turnitin system. After plagiarism checking, assignments will not be permanently stored
on the Turnitin database.
4 Instructors
4.1 Course coordinator
The module coordinator takes primary responsibility for the module and its content. Please
see Section 5.8 for information on the procedure that should be followed when contacting
the module coordinator:
6
4.2 Lecturers
The module is presented by two lecturers. Below is information regarding the primary lec-
ture group responsibilities and contact details of each lecturer associated with this module.
Please see Section 5.8 for information on the procedure that should be followed when con-
tacting the lecturers:
7
4.4 Tutors and teaching assistants
Tutors and teaching assistants are allocated to specific laboratories during practical ses-
sions, and will provide help during tutorial classes when possible. They will provide guid-
ance to students during the completion of practical and homework tasks online, probably
during the remainder of the semester, and will allocate marks for aspects of these tasks.
Please note that it is not their responsibility to complete part of a practical or tutorial for you.
Instead, they will help with explanations and guidance when you are stuck. They may also
offer one-on-one consultation sessions, depending on demand. Tutors and teaching assis-
tants should generally be consulted only during practical sessions, tutorials, or consultation
sessions, however, their contact information is available on the module website.
CosTutorium Consultation times (probably for the remainder of the semester, tutors will be
providing this service on-line using Blackboard Collaborate):
The head of the Computer Science Department must be contacted via her secretary:
8
5 Organisation
5.1 Class attendance
First and foremost, class attendance is vital to maintain a good academic record. Material
not covered in the slides or textbook may also be discussed during lectures. Please ensure
that you attend these forums so that you are aware of important announcements, additional
discussions and material not covered in this study guide.
WARNING: Students with a class attendance of less than 70% will be EXCLUDED from the
exam and you will fail the course! (UPDATE: This value is subject to change due to the
COVID19 outbreak. However, online attendance is done automatically from 20 April
2020 by means of students logging in to attend the lectures. Although we understand
that not all students might have access to equipment and/or data to access the on-
line lectures slots, your attendance will be registered automatically when you log into
the lecture.)
Class attendance will be monitored using the Turningpoint app. The app is available
on the Google Play (Android) and Appstore (iOS) platforms. Make sure you download and
install the app on your phone that will perform ’clicker’ and class interaction services. Please
ensure you have enough battery life on your phone, otherwise you will not be able to register
your attendance. Tip: bring a backup battery along if your phone’s power is running low later
in the afternoon. You may also use a laptop to access the platform via the Web in case you
do not have a phone or when your phone’s battery is dead.
• Discussion forums.
9
card or proof of registration on hand when you request your login details. Please make sure
that you have tested your user name and password prior to practicals commencing, so that
you can follow up on any technical problems you might experience.
5.4 Announcements
Announcements will be made during class time, and via the module website. While every
effort will be made to repeat announcements both in class and via the website, it is not
guaranteed that this will be the case. It is therefore expected that students attend all classes,
and check the module website on a daily basis.
5.5 Lectures
There are two (2) lectures and one (1) tutorial class per week for COS 151. Lectures are
compulsory, and will be used to present material from the textbook (see the detailed lecture
schedule, below). Tutorials are also compulsory, and will give you an opportunity to complete
written tasks that will be marked by tutors and teaching assistants. We may keep track of
your class attendance. If your class attendance is not regular, we may refuse to assist you
with queries and will not be lenient to you in any way.
The following lectures will be presented in English only (and will be presented on-line prob-
ably for the remainder of the semester; please note that lectures will be made available
on-line a few days BEFORE the lecture so students can watch it, and then attend during
these lecture times on-line to ask questions only about the lecture.):
5.6 Practicals
All practicals will be held in the Informatorium. You must book only one (1) of the following
time slots (information related to bookings will be made available during the second week of
lectures)(UPDATE: All practicals will probably commence on-line for the remainder of
the semester):
10
Day Time Venue: Informatorium
Friday 07:30 – 08:50 Blue 1 and Orange Labs
Friday 09:00 – 10:20 Orange Lab
Friday 10:30 – 11:50 Orange Lab
Friday 12:00 – 13:20 Orange Lab
Friday 13:30 – 14:50 Orange Lab
• Give a brief description of your problem in the subject line. If your query is for the at-
tention of a specific lecturer (e.g., if it relates to work covered during a specific lecture),
also include the appropriate lecturer’s name in the subject.
• Include your full name (including your first name and surname), your student number,
and a contact phone number (preferably a mobile number) in the message body.
• Your e-mail address must have your full name displayed, not just your student number.
• Always be courteous, and clearly describe your problem and what action you require.
• Make sure that your reply-to e-mail address is correct, and that your inbox is not full.
Failure to check these details are likely to result in replies not reaching you.
Please avoid sending multiple e-mails related the same query, or emailing the same queries
to different lecturers (because this wastes valuable time, and will not get you a different or
more favourable answer).
You can also speak with the lecturers after classes. It is not advisable to visit a lecturer
without an appointment, because they have busy schedules and may be unavailable. Most
queries can be dealt with in a short e-mail, and do not require a face-to-face consultation.
It is therefore advisable that you avoid making unnecessary appointments. If you need an
appointment, send an e-mail requesting one, and do so well in advance (not the day before
11
a deadline, test or examination). Don’t wait to ask questions about any module work you are
unsure about, and ensure your understanding of the work is up-to-date.
Tutors and teaching assistants should be consulted during practical or tutorial sessions.
In the event of practical- or tutorial-related queries, tutors can be contacted via e-mail. De-
pending on demand, times may be made available for tutors and/or teaching assistants to
give assistance outside of practical hours. In the event of such slots being made available,
further details will be announced in class and on the module page.
6 Study Material
6.1 Prescribed textbook
The prescribed textbook for this module is as follows. Also note that the textbook’s slides,
should we decide to provide them to you, are NOT a replacement for either the lectures or
the textbook.
Title: Foundations of Computer Science
Author: Behrouz Forouzan
Edition: Fourth Edition
Publisher: Course Technology, Cengage Learning
ISBN: 978-147-37510-40
6.3 Software
Operating system: Linux. This operating system will be installed on the lab computers, and
you will be able to install it on your own computer. Personal installations are each student’s
own responsibility, and the lecturers can not provide support. If you need help, a Google
search will provide many help forums and web sites.
Many different distributions of Linux exist, but Arch is a popular Linux distribution used
by many students. It is generally recommended that the Gentoo distribution be avoided,
because it is aimed at more technically minded users than most of the other distributions.
Should you wish to install Linux on your own computer, Linux installation CDs can be
created using ISO images available at ftp://ftp.up.ac.za/mirrors/. Alternatively, if you
are using a virtual machine (like VirtualBox, available at ftp://ftp.cs.up.ac.za/Software/
VirtualBox/) to run Linux on another operating system (like Windows), an OVA virtual
machine file for Arch linux is available at ftp://ftp.cs.up.ac.za/ (Arch32.ova for 32-
bit systems and arch64.ova for 64-bit systems). item Flowchart design software: Jav-
aBlock 0.6.1. This is a Java-based application that allows for the graphical design and
step-by-step execution of program flowcharts. A download of the program is available on the
module website, under the “Software” folder.
12
7 Assessment
The semester mark consists of the following assessment opportunities: Two (2) semester
tests, and ten (10) tutorials and practicals. Each opportunity is discussed separately, below:
WARNING: Please see Section 5.1 again. Students with a class attendance of less than
70% will be EXCLUDED from the exam and you will fail the course!
The following sections discuss matters related to the components of the semester mark.
13
There is a subminimum of 40% on the average mark over the two semester tests, for
examination entrance. Students with an average semester test mark (counted over the two
semester tests) of below 40% will not be allowed to write the examination. This is not open
to negotiation, so it is recommended that students prepare thoroughly for both tests. Do not
plan on performing better in the second semester test, because the work generally becomes
more challenging as the semester progresses.
7.1.3 Tutorials
There will be about twelve (12) tutorial classes through the semester. Tutorial classes will
generally be used for pen-and-paper exercises and practical-related discussions, and will
often cover preliminary work for the next week’s practical lab experience.
Tutorials will either be submitted at the end of a tutorial class, or at the reception desk
of the Computer Science Department by a specified deadline. Once again, ensure that you
follow submission instructions exactly, or the submission will not be assessed.
Each tutorial will count equally towards a 15% contribution to the semester mark. Tutorial
result queries are handled in the same way as practical lab experience queries.
Again, it is compulsory for students to attend all tutorial classes, unless illness prevents
this. There will also be no aegrotat tutorials (sick tutorials). At risk students may be required
to complete additional exercises to improve their tutorial results.
14
Computer Science Department for a period of a week, and will then be placed in the pigeon
holes outside the department.
7.2 Examination
The examination date, time, and venue is subject to change through the course of the
semester. Students should therefore check their examination timetable on ClickUP for up-to-
date information. All the work covered during the semester, including any additional material
made available, will be examinable. Please also check the module website towards the end
of the semester for any updates.
• A student will be refused examination entrance if his/her semester mark is less than
30%. Students should be warned, though, that it is virtually impossible to pass the
course with an exam entrance mark of 30%, because this means that you will have to
obtain 70% in the exam, which is highly unlikely.
• To pass the module, a student must obtain at least 40% in the exam, and a final mark
of at least 50%.
• A student will pass the module with distinction if he/she obtains at least 75% for the
final mark.
Please also take note of the examination rules, as stated in the general rules and regulations
of the University of Pretoria, under section G.12 (available at: http://www.up.ac.za/en/
yearbooks/2017/rules-pdf).
15
Examination clashes are also handled by your faculty. They will inform you of the correct
procedure to follow, and you will be admitted to the supplementary examination. Also note
that there will be no additional supplementary examination in such a case.
The scope for the supplementary and aegrotat examinations will be exactly the same as
the scope of the examination. In other words, all material is examinable, including additional
notes we provide you with. Please take note of this, and do not make enquiries regarding
supplementary or aegrotat examination scope.
In the case of an aegrotat examination, a student’s semester mark will be counted in
the final mark calculation, exactly as it would have been for the standard examination. Note
that, for the supplementary examination of this module, the semester mark is not consid-
ered. The mark obtained for the supplementary examination will therefore replace the final
mark for the module. The maximum mark that is achievable after writing the supplementary
examination is 50%. It should be noted that in all subsequent modules that are not on first
year level during the first semester, the semester mark will be included in the calculation of
a supplementary examination’s final mark.
8 Time Management
COS151 has a ‘value’ of 8 credits, which means that you must invest at least 8 · 10 = 80
work-hours in order to pass this course. Do not expect to pass this course if you put less
than 80 work-hours into it. During the entire semester with its 12 academic weeks, your
weekly ‘contact time’ for lectures, practicals and tutorials amounts to 12 · 4.5 = 54 work-
hours. The remaining 80 − 54 = 26 hours must be invested into the preparation for the 2
semester tests, i.e.: 13 preparation hours per semester test. ON TOP OF THAT comes
your preparation time for the final exam, after the semester lectures have ended.
UPDATE: Due to the COVID-19 outbreak, it will be required from you to down-
load/watch the lecture videos/slides BEFORE the actual lecture slot starts. This will
require from you to make time available in your schedule to watch the video and/or
slides. It will be announced on-line when videos/slides are made available.
16
21 Mar to 31 Mar: UP Recess
01 Apr to 19 Apr: CANCELED due to extended recess.
20 Apr to 24 Apr: CH09: (SG) Programming languages remaining part
28 Apr to 30 Apr: CH04: (HV) Operations on Data Part 1
04 May to 08 May: CH04: (HV) Operations on Data Part 2
11 May to 15 May: CH11: (HV) Data structures Part 1
18 May to 22 May: CH11: (HV) Data structures Part 2
25 May to 29 May: No lectures due to Engineering Test Week
01 Jun to 05 Jun: CH16: (HV) Security
08 Jun to 12 Jun: CH20: (HV) Social and Ethical Issues Part 1 (Semester Test 2: Thursday
11 June, 17:30; Thursday lecture will fall away due to semester test 2)
15 Jun to 17 Jun: CH20: (HV) Social and Ethical Issues Part 2 (Sick Semester Test 1 and 2:
Wednesday 17 June (which is a Friday timetable), 09:00-12:00
Exam date still to be rescheduled by UP
NOTE: The above schedule is volatile and is subject to change without advance no-
tice. Please always make sure you follow the latest announcements on ClickUP and/or
the Computer Science website.
10 Support services
Unit Services Telephone
Student Coun- Provides counselling and therapeutic sup- 012 420 2333
selling Unit port to students.
Student Health Promotes and assists students with health 012 420 5233 & 012
Services and wellness. 420 3423
The Careers Of- Provides support for UP students and grad- careerservices@
fice uates as they prepare for their careers up.ac.za 012 420
2315
Department 24-hour Operational Management Centre 012 420-2310, 012
of Security 24-hour Operational Manager cell Crisis 420-2760, 083 654
Services Line 0476, 0800 006 428
Department of Enquiries concerning studies, accommoda- 012 420 2371/4001
Student Affairs tion, food, funds, social activities and per- Roosmaryn Building,
sonal problems Hatfield campus
Centre for Sex- Identifies and provides training of student 012 420 4391
ualities, AIDS peer counsellors.
and Gender
Disability Unit Ensure an integrated and inclusive learning 012 420 2064
experience for students with disabilities
IT Helpdesk For student IT related queries 012 420 3051 stu-
[email protected]
17