UNIVERSITY OF THE WITWATERSRAND			Tel.:  011 717 6177
Department of Computer Science			Fax.:  011 339 3513
Dr. Yinong Chen				email: yinong@cs.wits.ac.za


Computer Science III

Programming Languages

Yinong Chen


Introduction

Although algorithms have been written and expressed at least since the time of Euclid, it is only in the last fifty years since the development of the digital computer that the methods of expressing algorithms have had extensive study. Today there are different paradigms for programming, hundreds of programming languages in active use, many others in existence, and many more being designed.

 The aim of this course is to introduce the principles of the study of programming, and give you the basic foundation in the topic. By giving you a good insight into the principles of programming language design, this course should make you a better programmer, but this course is useful if you will ever need to design your own language, or choose which programming language to use for a project.

This whole area is a very fast moving one. A language like Java was unknown a few years ago. Today object-oriented programming is considered standard, but five or six years ago, teaching object-orientation was considered avant-garde. For this reason, the course focuses on the underlying principles, which will equip you to deal with new developments. We will be using a number of programming languages to illustrate some of the points. Although you will have some programming assignments to do, the course is not about how to program in language X.

Course structure

We will use the prescribed textbook as the base for the course, using additional and alternative material where appropriate. The material will cover the following sections:

Objectives

By the end of the course, you should be able to:

Lectures, Tutorials and Laboratories

The course will be given in parallel with FLA -- The two courses share the same teaching "diagonal". The time table for PL and FLA changes every week. Please check carefully the times and vennues of lectures, tutorials and labs in the time table. There are two laboratory sessions in a week. You must attend the laboratory session to which you are assigned.

The tutorials and laboratories are integral parts of the course and all students are expected to attend and participate actively in the tutorial and laboratory programmes. The tutorials will supplement the lecture material, and the laboratories will cover the course's practical material. Tests may be held in lecture and tutorial periods.

Assignments and Tests

This exam counts 60% to the topic, and the course work counts 40%. Each student must get 50% in total to get credit for the course.

The course-work comprises a class test and a number of assignments (which will be assessed by assignment tests). The class test weights 20% and the assignment tests equally share the remaining 20%.

Prescribed Book

Henri E. Bal and Dick Grune, Programming Language Essentials. Addison-Wesley, Wokingham 1994.

Consultation Time (office SH1016)

One hour consultation time per week has been reserved for the course. Please check the CS3 noticeboard or my office door for the official consultation time periods.

Outside these time periods you are also welcome to see me, and I shall try to help you if I am free.

Acknowledge

The outline is based on the outline prepared by Scott Hazelhurst in the framework of the course curriculum designed by the Department of Computer Science.

 

Yinong Chen (yinong@cs.wits.ac.za) SH1016

12 Feb 2000

 

This document is available at

http://www.cs.wits.ac.za/~yinong/teaching/pl3_outline.html