csc1015f 2024 Notes-V1-1
csc1015f 2024 Notes-V1-1
Course Description
Computer Science 1015F and 1016S together constitute a complete Computer Science
curriculum for first year students, offering an introduction to the development of algorithms
and design of computer programs, along with other selected topics in Computer Science.
CSC1015F is offered in the first semester and CSC1016S is offered in the second semester.
The course is offered in a blended learning format. Student contact time is in a single face-to-face lecture per
week as well as a practical session aimed at reinforcing the principles introduced in the online lectures and
giving students time to do exercises under the supervision of tutors.
Prerequisites
Mathematics at NSC level 6 or better (70%).
No prior knowledge of computer programming is necessary!
Staff
Course Convener: Aslam Safla [email protected]
Lecturers: Prof. James Gain [email protected]
Aslam Safla [email protected]
Victoria Chuma [email protected]
Du Toit Spies [email protected]
Lucas Carr [email protected]
Page 1
Textbook and Notes
There is no prescribed textbook. There is a departmental Python book that is structured
roughly in order of the lectures' schedule of topics (see further below), available from:
http://www.cs.uct.ac.za/mit_notes/Python/
If you like hard copy books, then the following one is highly recommended:
Python Programming: An Introduction to Computer Science (second or third edition) by
John Zelle, Franklin, Beedle and Associates, Inc.,
Class notes (copies of slides) may be available for selected sections and announced by the
relevant lecturer(s). Electronic copies of lecture slides will be made available on Amathuba.
Amathuba
Amathuba (http://amathuba.uct.ac.za) is the university-wide online learning management
system that gives you access to resources to assist in the learning process. The class website
for all courses will be located on the Amathuba system.
Lecturers, TAs and tutors may be consulted through Amathuba – this is preferable since any
questions that are answered may benefit other students as well. Amathuba is used for the
submission of ALL practical assignments and practical tests and for providing students with
marks for assignments and tests, and feedback where appropriate. All students will be
expected to consult the website on a daily (Monday-Friday) basis for updates on lecture
material, assignments, marks, hints, deadlines, etc.
Refrain from posting anything of the following nature anywhere on the website, as it may
violate the university’s Appropriate Use of Computer Facilities policy (see ICTS website),
necessitating disciplinary and/or legal proceedings: sexist, racist or otherwise discriminatory
comments, flame wars, trolling; segments of program code (other than something provided by
the instructor); solutions to graded work (or part thereof) before or after submission; or illegal
material.
Lectures
Lectures are held in the following venues:
Venue
Period 4: M304
Period 5: M304
Lectures are held from Monday-Friday every week. You should attend one of these lecture
sessions per week (see Groups on Amathuba to signup for your session).
Continuity of Teaching
If lectures are disrupted and / or access to campus is restricted, teaching and learning will continue
online, with live online lectures via MS Teams. All lectures will be recorded as well.
The course convener will make announcements about changes to the mode or timing of any
activities associated with the course (lectures, practicals, tests, ect.). Students without Internet
access at home should take note of eduroam locations (https://eduroam.ac.za/) and other places
where free wifi is available.
Page 2
Hotseat
The Computer Science HotSeat is run by senior tutors who can assist you to understand
difficult concepts or work through problems you have encountered during lectures,
assignments or tests. The HotSeat tutor is available on level 2A in CS2A.2 in the Computer
Science building (the mentor room next to the Senior lab). A schedule of available times will
be posted on Amathuba once finalised.
Tests
There will be 2 closed-book 40 minute theory tests. Each test will run in two or three sessions;
venue to be confirmed.
Test 1: Monday, 11 March, 11am – 1pm (2 sessions, details will follow)
Test 2: Monday, 29 April , 6pm (details will follow)
There will be 3 open-book 40 minute practical tests as part of the laboratory sessions. Each
practical test will be offered 2 times; you may write one or both of them (so, only once a
week) and the maximum mark obtained will be used for each test. You have to do the test in
the practical session you signed up for.
See the schedule for detailed test dates. These tests contribute to your DP mark and your final
mark.
Practical Sessions
Practical sessions are held either in one of the Scilabs or in a lecture room. You must attend
one 2-hour session each week, where you may work on the current practical assignment and
discuss any general issues related to practical work with the tutors who are available. Students
can complete a weekly quiz during these sessions, and students write a practical test (as
described above) if one is scheduled for that week.
It is your responsibility to ensure that you choose a practical session (on Amathuba) that fits
in with your timetable. If you discover that all slots that suit you best are full already, it is
your responsibility to find a student with whom you can arrange a swap as soon as possible.
Marking
Most assignments will be marked automatically based on test cases and the marks will be
uploaded to Amathuba. Tutors will mark randomly-chosen practical assignments during the
semester.
Page 3
assignments will execute on the university equipment before submission – no discussion will
be entered into after submission.
Computing facilities are available for use in the Scilabs that are located in the Computer
Science building (Scilab A and B), RW James (Scilab C) and P D Hahn (Scilab D).
It is ALWAYS the student’s responsibility to ensure that adequate backup copies are made of
all work in progress and all work already completed. Loss of data or programs is not an
acceptable excuse for non-submission or late submission of assignments.
Plagiarism
Refer to the document in Assignment 1 for the departmental plagiarism policy. This policy
will be strictly enforced.
All assignments, tests and examinations are done individually – there is NO group work
allowed in this course. It is acceptable to discuss the questions for assignments with peers but
not the specific details of the solutions, nor engage in “pair programming”. When in doubt,
speak to a tutor or TA.
Students are required to sign and submit a form (on the last page) verifying that they have
read and understood the contents of this policy before commencing any form of assessed
work.
There will be randomised code plagiarism checking.
DP Requirement
A student is granted DP status (and therewith may write the exam) in CSC1015F if the
following conditions are met:
• (3/5 * Assignment average + 2/5 * Practical test average ) >= 45%
• Practical test average >= 45%
Final Examination
The examination timetable will be published sufficiently in advance of the final examination
on university notice boards. It is the student’s responsibility to take note of the correct time
and place for the examinations.
All examinations will be cumulative, closed-book and closed-notes (i.e., you may not bring
your notes or textbooks into the examination room), and 2 hours in duration.
A final mark in CSC1015F will be calculated as follows:
Page 4
Final = 0.10 * Assignment average + 0.15 * Test average+ 0.15 * Practical test average +
0.60 * Exam
In order to pass, ALL of the following requirements MUST be met:
• Final >= 50%
• (3/5 * Assignment average + 2/5 * Practical test average ) >= 45%
• (1/5 * Test average + 4/5 * Exam) >= 45%
All students who pass CSC1015F are eligible to continue with CSC1016S.
Supplementary Examinations
Students who do not pass but obtain a mark of 45-49 may be awarded a supplementary
examination; this is indicated either with xS (with 45 <= x <= 49) or OSS ['failed theory
subminimum'] in PeopleSoft. These are written in July, usually in the week before the 2nd
semester commences. An Amathuba announcement will be made regarding the exact time
and date of the supplementary exam.
The final mark will be calculated as above, but then with the supplementary exam mark. The
system then converts this into a “UP” unqualified pass or “UF” unqualified fail if you had a
plain supp and into the 'June grade' if you had an OSS with the June exam.
Note that there are no other examination opportunities for this course. Please note that
deferred exams do not allow the option of a subsequent supplementary exam: if you fail a
deferred exam, you have failed the course.
Grade Allocation
In other/exceptional circumstances, where a student would like to be away from their studies
for a short and defined period of time, the Short Leave Application form (under Amathuba
resources) must be filled out and submitted to the course convenor for recommendation and
HoD for approval.
Page 5
Appeals Procedure
If a student feels that their marks are incorrect for any piece of marked work, they must first
approach the tutor or TA responsible for that test or assignment. Then, if need be, they may
appeal to the course convenor. Finally, they may appeal to the HoD.
Queries
Any queries about the content of the lectures MUST be directed to your face-to-face lecturer.
Any queries about marks or marking of practical assignments must be directed to your tutor
or TA.
All marked work (whether in paper or electronic format) must be kept until the end of the
semester. In general, queries about marks MUST be made within a week of marked work
being returned. No queries about any marks will be entertained after the final examination.
Any queries about the administration of the course must be directed to the TA.
The course convener must ONLY be contacted as a last resort, unless otherwise indicated.
Disability
If any student needs special accommodation because of a disability, please contact the course
convener during the first week of classes.
Syllabus
Corresponding chapter numbers in the recommended textbook are indicated in parentheses.
Introduction to Computer Science (Ch. 1): What is Computer Science, Applications of Computing, History of
Computing, Computer Hardware (Machine Architecture), Computer Software (System Software, Applications), Algorithms,
Programming Languages
Introduction to Python Syntax (Ch. 2.1-2.5; 3): Basic syntax, variables, operators, comments, expressions, output
Conditionals (Ch. 7): Boolean expressions and logical conditions, If statements, nested ifs, if-else, if ladders,
Loops (Ch. 8): for, while, nested loops
Strings and Input (Ch. 5)
Functions (Ch. 6): parameters, return values
Testing: debugging, equivalence classes
Arrays (Ch. 5; 11): lists, dictionaries, sets, multi-dimensional arrays
Recursion (Ch. 13.2)
Sorting and Searching (Ch. 13.1; 13.3)
File I/O (Ch. 5.9): text files, exceptions
Number Systems: Machine representations of data, Binary operations, Boolean algebra
Page 6