CSC3321 : Understanding Programming Languages (Inactive)
CSC3321 : Understanding Programming Languages (Inactive)
- Inactive for Year: 2024/25
- Module Leader(s): Dr Troy Astarte
- Owning School: Computing
- Teaching Location: Newcastle City Campus
Semesters
Your programme is made up of credits, the total differs on programme to programme.
Semester 2 Credit Value: | 10 |
ECTS Credits: | 5.0 |
European Credit Transfer System | |
Pre-requisite
Modules you must have done previously to study this module
Pre Requisite Comment
None
Co-Requisite
Modules you need to take at the same time
Co Requisite Comment
None
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)
Learning Outcomes
Intended Knowledge Outcomes
To be able to:
- distinguish between syntax and semantics (and the subsidiary notions like context conditions)
- identify the need for an abstract syntax and context conditions.
- identify the different ways of documenting the semantics of programming languages.
- distinguish operational semantic descriptions
Intended Skill Outcomes
To be able to:
- read a large language definition and understand its consequences
- write and change definitions of smaller languages that you might need to design in your career
Teaching Methods
Teaching Activities
Category | Activity | Number | Length | Student Hours | Comment |
---|---|---|---|---|---|
Scheduled Learning And Teaching Activities | Lecture | 22 | 1:00 | 22:00 | Lectures |
Guided Independent Study | Assessment preparation and completion | 26 | 0:30 | 13:00 | Revision for exam of semester exam & exam duarion |
Guided Independent Study | Assessment preparation and completion | 22 | 1:00 | 22:00 | Lecture follow-up |
Scheduled Learning And Teaching Activities | Practical | 11 | 1:00 | 11:00 | Practicals |
Guided Independent Study | Project work | 11 | 1:00 | 11:00 | Coursework |
Guided Independent Study | Independent study | 21 | 1:00 | 21:00 | Background reading |
Total | 100:00 |
Teaching Rationale And Relationship
Lectures are used to impart knowledge and practicals are used to provide experience of the solution of problems.
Reading Lists
Assessment Methods
The format of resits will be determined by the Board of Examiners
Exams
Description | Length | Semester | When Set | Percentage | Comment |
---|---|---|---|---|---|
Written Examination | 90 | 2 | A | 70 | N/A |
Other Assessment
Description | Semester | When Set | Percentage | Comment |
---|---|---|---|---|
Practical/lab report | 2 | M | 30 | demonstrate 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%.
Timetable
- Timetable Website: www.ncl.ac.uk/timetable/
- CSC3321's Timetable
Past Exam Papers
- Exam Papers Online : www.ncl.ac.uk/exam.papers/
- CSC3321's past Exam Papers
General Notes
Based on module CSC3004
Welcome to Newcastle University Module Catalogue
This is where you will be able to find all key information about modules on your programme of study. It will help you make an informed decision on the options available to you within your programme.
You may have some queries about the modules available to you. Your school office will be able to signpost you to someone who will support you with any queries.
Disclaimer
The information contained within the Module Catalogue relates to the 2024 academic year.
In accordance with University Terms and Conditions, the University makes all reasonable efforts to deliver the modules as described.
Modules may be amended on an annual basis to take account of changing staff expertise, developments in the discipline, the requirements of external bodies and partners, and student feedback. Module information for the 2025/26 entry will be published here in early-April 2025. Queries about information in the Module Catalogue should in the first instance be addressed to your School Office.