Skip to main content

Module

CSC3321 : Understanding Programming Languages (Inactive)

  • Inactive for Year: 2020/21
  • Module Leader(s): Dr Troy Astarte
  • Owning School: Computing
  • Teaching Location: Newcastle City Campus
Semesters
Semester 2 Credit Value: 10
ECTS Credits: 5.0

Aims

There are a great many programming languages and those which are popular today may be forgotten in twenty years; then you will be learning languages which today do not even exist. Many other "formal" languages are around and will affect your life in computing: scripting, virtual reality, layout, robotics control... Some languages aim for general usage and others are very specific, but all embody certain ideas and concepts. Sadly, many languages focus on one new idea (objects, concurrency, memory manipulation) but have significant drawbacks compared to their predecessors in other respects.

The principal aim of this module is to teach you how to pick apart the key ideas in formal languages and communicate them. In particular, the "meaning" (or semantics) of programming languages is considered. You will learn how to model the very base concepts of computation and combine them in interesting ways to make programming languages. Ultimately this will help you better to understand any particular language you come across and will very likely increase your understanding of the languages you already know. Furthermore, you will be equipped with the knowledge and understanding required to get involved in language design or extension.

The main principle taught is abstraction. The approach to semantics follows Structural Operational Semantics (SOS), with a Viennese flavour. VDM is used for notation only.

Outline Of Syllabus

o Challenges and issues in programming languages
o Syntax (content and structure) of languages
o Semantics (meaning and effect) of languages
-Base concepts: storage, assignment, branching control
-Concurrency
-Blocks, procedures, functions
-Objects
o Context conditions (error prevention)
o Other approaches besides SOS (axiomatic, denotational semantics)

Teaching Methods

Please note that module leaders are reviewing the module teaching and assessment methods for Semester 2 modules, in light of the Covid-19 restrictions. There may also be a few further changes to Semester 1 modules. Final information will be available by the end of August 2020 in for Semester 1 modules and the end of October 2020 for Semester 2 modules.

Teaching Activities
Category Activity Number Length Student Hours Comment
Scheduled Learning And Teaching ActivitiesLecture221:0022:00Lectures
Guided Independent StudyAssessment preparation and completion221:0022:00Lecture follow-up
Guided Independent StudyAssessment preparation and completion260:3013:00Revision for exam of semester exam & exam duarion
Scheduled Learning And Teaching ActivitiesPractical111:0011:00Practicals
Guided Independent StudyProject work111:0011:00Coursework
Guided Independent StudyIndependent study211:0021:00Background reading
Total100:00
Teaching Rationale And Relationship

Lectures are used to impart knowledge and practicals are used to provide experience of the solution of problems.

Assessment Methods

Please note that module leaders are reviewing the module teaching and assessment methods for Semester 2 modules, in light of the Covid-19 restrictions. There may also be a few further changes to Semester 1 modules. Final information will be available by the end of August 2020 in for Semester 1 modules and the end of October 2020 for Semester 2 modules.

The format of resits will be determined by the Board of Examiners

Exams
Description Length Semester When Set Percentage Comment
Written Examination902A70N/A
Other Assessment
Description Semester When Set Percentage Comment
Practical/lab report2M30demonstrate understanding of both syntax and semantics of programming languages.
Assessment Rationale And Relationship

The exam is a problem solving task - it is "open book" - there is no need to learn anything by heart for this module.
The coursework is done in groups (with a small individual element) but each student has to present their own portfolio for marking - other than the (small) individual element, text can be shared between members of the group.
There is one piece of coursework (with five elements of equal weight) requiring students to demonstrate their understanding of both syntax and semantics of programming languages.

N.B. This module has both “Exam Assessment” and “Other Assessment” (e.g. coursework). If the total mark for either assessment falls below 35%, the maximum mark returned for the module will normally be 35%.

Reading Lists

Timetable