CSC212 is a second semester course comprising two modules: Computer Architecture and Algorithms & Complexity, spanning 13 weeks of lectures and/or contact hours with lecturers.

1. LECTURERS

Prof. A Gerber (AG)                     (agerber@uwc.ac.za)

A/Prof. Antoine Bagula (AB)              (abagula@uwc.ac.za)

Dr. Omowunmi Isafiade (OI)              (oisafiade@uwc.ac.za)

All queries about lectures should be addressed to the lecturer concerned. All queries about the running of practicals and tutorials should be addressed to the Teaching Assistants, lecturers could also be approached regarding missed tests and if the Teaching Assistant cannot help.

2. TEACHING ASSISTANTS (TA)

 

Your TA can help on the running of tutorials/practicals, marking of assignments and tests and general questions about the course.

 

3. BOOKS

Prescribed (required):

  • Computer Organization & Architecture, Global Edition, 10/E, by William Stallings, Publisher-Pearson . ISBN: 9781292096858

  • Notes will be available from the Department or the Department Web pages. Additional web resources will be provided if/when required.

Purchase:

  • Books are obtainable at: Campus Books, Juta, Atlas or Van Schaik

  • Books are also available on the reserve shelf of the UWC Library

4. SYLLABUS

Algorithms and Complexity                        RD

This course is the culmination of the study of Data Structures and their Algorithms. It is an introduction to Algorithms and their Complexity and their efficient implementation for manipulating data structures. The implementation language is Java and many examples in Java are developed in the practicals. The time and space complexity of algorithms are studied and the student should have a good grasp of the space and time efficiency of algorithms. The student should: (1) be able to verify the correctness of algorithms by induction proofs; (2) understand loop invariants; (3) calculate the asymptotic bounds for algorithms; (4) implement algorithms for manipulating data structures to execute efficiently on computing machinery; and (5) reproduce algorithms under examination conditions; and (6) understand what is meant by computability; (7) What do N = NP? or N ≠ NP mean?

NB: For more info on Algorithms and Complexity please visit this link: http://cs.uwc.ac.za/~regdodds/index.html

Computer Architecture                           OI & AB

This is a practical and discussion-oriented introduction to high-level concepts in modern computer architecture. Topics include: assembler; principles and implementation of CPU architecture; pipelining; multicore architectures; caching; virtualization; CPU/memory performance; storage and RAID; flash memory; and USB.

Please note that this syllabus is subject to change and details will be updated regularly throughout the course.

5. PRACTICAL WORK

Note: All practical work is done individually, unless otherwise specified by the lecturer concerned. Penalties for late hand-ins are: 10% per day. Work which is more than 4 days late will NOT be accepted. Remember the plagiarism policy (see Section 8) and do not submit material that is not your own work. Tutors are available during tutorial sessions to assist with the open practical.

Marks and comments will usually be returned within 2 weeks.

6. ATTENDANCE, EXEMPTIONS, EXTENSIONS

Lecture attendance is expected and some lectures will include in-class assessments, which will count towards your course grade.

Exemption and extensions of deadlines for practicals, tutorials and weekly problem solving exercises will only be considered on medical or compassionate grounds. Medical grounds have to be supported by a Valid Medical Certificate signed by a qualified Medical Doctor, which clearly explains why the student is unable to complete their assignment. Compassionate grounds will normally require a letter of support from a parent/guardian or counsellor.

Please submit your Medical Certificate to Ms Rene Abbot (rabbot@uwc.ac.za), administrative assistant at the reception, and alert the lecturer that you have done so via email. See the lecturer regarding compassionate grounds: do this before the deadline in question, or if that is not possible, immediately on your return to UWC. It is vital to do this immediately as late applications after the deadlines have passed will not be considered. The TA cannot grant extensions and exemptions, so do not ask them.

7. MISSED CLASS TESTS

Any student who misses a class test for Medical or Compassionate reasons will be required either to rewrite the test or to do an oral – exemption from class tests will not be granted. However, the lecturer concerned will make a final decision regarding this. The procedure to follow is:

A. It is the student’s responsibility to inform the Departmental Secretary and lecturer concerned as soon as possible and no later than 3 days after the test that you have missed the test and provide the following:

                                                                      either

  • A Medical certificate, signed by a Medical doctor must be provided to the Departmental Secretary; this must clearly indicate that the student is medically unable to write the test .

                                                                       or

  • In the case of Compassionate reasons please discuss this with the lecturer concerned no later than 3 days after the test.

B. The re-test could be done within 10 days of the test (or by the end of the week following the test) which ever date comes first. It is usually arranged for 1 week after the original test. However, note that the lecturer concerned gives the final recommendation for a missed test.

C. In the case of an extended Medical situation please contact the lecturer concerned in good time.

8. PLAGIARISM (COPYING)

All forms of plagiarism (programs, essays, tutorials etc) are illegal and will be punished according to the University’s rules. These rules are severe and can lead to rustication. The Computer Science Department checks all program submissions to ensure that the work submitted has not been copied. Work by other authors must be acknowledged as such under all circumstances. The department will assume that you have agreed to the plagiarism declaration for every of your hand-in.

While we do encourage you to share, debate ideas and discuss your work, we however draw a careful line between that and plagiarism. Please pay close attention, we take it very seriously.

9. PRIOR KNOWLEDGE/COMPETENCIES

  • Knowledge of a high level programming language

  • Understanding of programming structures

  • Some knowledge of stack mechanisms and procedure calls

10. OUTCOMES/COMPETENCIES

  • Demonstrating and understanding of the interaction between low and high-level software and hardware.

  • Know the architecture of a typical RISC/CISC processor at the conventional machine level and understand the fundamental limitations and bottlenecks in modern processors.

  • Have some knowledge of assembler language programming.

  • Understand how hardware components and their interconnection affect the performance of a computer.

11. SCHEDULE and NOTIONAL HOURS

 

  • The class meets twice a week for a one hour lecture: 13 * 2 = 26 hrs
  • Practical session every week for one hour used for programming: 13 * 1 = 13 hrs
  • You are expected to spend at least two hours for every hour in class, studying and writing up assignments – this includes the time spent studying for tests and exams13*2 * 2  + 7 = 59 hrs
  • Tests and Pop quizzes are spread throughout the term: during class
  • Assessment in Exam 2 hrsTotal: 26 + 13 + 59 + 2 = 100 notional hours

 

Period

Monday

Tuesday

Wednesday

Thursday

Friday

1

08h30-09h30

CSC212

Complexity

CS/ SunLab

2

09h40-10h40

CSC212

Architecture

Sc8

3

10h50-11h50

CSC212

Architecture/

Complexity

Sc8

Group 1

Architecture

Thintana

4

12h00-13h00

Group 2

Complexity

SunLab

LUNCH

CSC212

Complexity

SC9/SunLab

Group 2

Architecture

Thintana

5

14h00-15h00

CSC212

Algorithms

Practical

CSC212

Algorithms

Practical

Group 1

Complexity

SunLab

6

15h10-16h10

7

16h20-17h20

CSC212

Algorithms

Practical

Lecture and practical times are as set out on the Faculty timetable.

Week

Date

Topic (see chapters in the book)

Assignments

1

7th – 11th August

9th August: Women’s day

Overview and Computer Evolution and Performance

Do review on lectures and questions in Chapters 1 & 2

2

14th – 18th August

A Top Level View of Computer Function and Interconnection

Read the chapter

Review the review questions & problems of this chapter

Assembler Assignment 1

3

21st – 25th August

Cache Memory

Hardware & Software Architecture

Do review on lectures

Read the chapter

Review the review questions & problems of this chapter

4

28th August – 1st September

Internal Memory

Do review on lectures

Read the chapter. Review the review questions & problems of this chapter

Assembler Assignment 2

Prepare for test

5

4th – 8th September

External Memory

Introduction to Assembly Language

Test 1 (Algorithms & Complexity)

TBC

Do review on lectures

Read the chapter. Review the review questions & problems of this chapter

6

11th – 15th September

Input/Output

Assembly Language Fundamentals

Test 1 (Architecture)

TBC

Do review on lectures

Read the chapter. Review the review questions & problems of this chapter.

Assembler Assignment 3

7

18th – 22nd September

24thSeptember:Heritage day

Number Systems

Computer Arithmetic

Do review on lectures

Read the chapter

Review the review questions & problems of this chapter

8

25th – 29th September

25thSeptember: Public Holiday

Digital Logic

Do review on lectures

Read the chapter

Review the review questions & problems of this chapter

Prepare for test

9

30th September – 8th October

Holiday

10

9th – 13th October

Instruction Sets

Addressing Modes…

Do review on lectures

Read the chapter

Review the review questions & problems of this chapter

Assembler Assignment 4

11

16th – 20th October

Instruction Sets

CISC / RISC

Test 2 (Algorithms & Complexity)

TBC

Do review on lectures

Read the chapter

Review the review questions & problems of this chapter

12

23rd -27th October

Test 2 (Architecture)

TBC

Do review on lectures

Read the chapter

Review the review questions & problems of this chapter

13

30th October – 3rd November

Processor Structure & Pipelining

Do review on lectures

Read the chapter

Review the review questions & problems of this chapter

14

6th November – 10th November

RISC Machines

Do review on lectures

Read the chapter

Review the review questions & problems of this chapter

15

15th – 19th November

Study Period

Do review on lectures

Prepare for exams

16

20th November- 13th December

Assessment Period

 Good luck for the course!

NB: Test dates will be confirmed by the lecturers concerned.

12. ASSESSMENT EVENTS and METHODS

  • Computer Architecture:                                         50%

PopQuizzes, Assembler (programming), Exam and Tests (1 & 2) 100%

  • Algorithms and Complexity                                  50%

                                                          TBC                                  100%

                                                                                   100%

12b) POP QUIZZES

A pop-quiz is an unannounced short, e.g. 5-10 minutes, individual quiz, in class, that cover material covered in class and also reading material announced in class, in this syllabus, including what is prescribed for the day of the lecture(s). There is no make-up for a missed pop quiz.

 

13) INFUSION OBJECTIVES

 

  • Comprehension and Communication Skills: Discussion of problems in groups.
  • Problem Solving: Reading of problems and effectively interpreting it.
  • Programming Competency: Introduction to Assembly Language for Intel-based Computers.
  • Team Work: Students will possibly work in teams when completing some projects/ solving exercises
  • Leadership: Within a team
  • Ethics & Professionalism: Professional conduct
  • Responsibility: Time management: – Exercises/pop quizzes must be completed during tut/prac times, programming assignments completed in the student’s own time but within the stipulated deadline.
  • Software Development: Use SDLC for all programming assignments.
  • Research Methods: Using and referencing the web as well as articles in academic journals.