Module Catalogue 2014/15

CSC3321 : Understanding Programming Languages

  • Offered for Year: 2014/15
  • Module Leader(s): Prof. Cliff Jones
  • Owning School: Computing Science
Semesters
Semester 2 Credit Value: 10
ECTS Credits: 5.0
Pre Requisites
Pre Requisite Comment

None

Co Requisites
Co Requisite Comment

None

Aims

Programming languages come and go - if you make a career in computing, there is no doubt that you will have to learn languages which do not even exist today. (In addition to literally thousands of general purpose languages, there are those tailored for specific applications like virtual reality, text layout, robotics, ...) Sadly, many languages embody one new idea (e.g. objects, remote execution) but are significantly *worse* than their predecessors in other respects.

The principal aim of this module is to communicate ways of understanding and documenting the key ideas in a language. The material should equip you to make sense of the many languages you will meet in your career. If you design new languages, they will benefit from you being able to manipulate the key concepts.

Outline Of Syllabus

Introduction - syntax versus semantics
Syntax - 2 weeks (concrete versus abstract; context conditions).
Semantics (meaning) - 8 weeks
(Focusses on the "Structured Operational Semantics" technique.)
Revision/other approaches - 2 weeks.

Covering large definitions (PL/I, Ada, Java) and different (to SOS) approaches

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

Graduate Skills Framework

Graduate Skills Framework Applicable: Yes
  • Cognitive/Intellectual Skills
    • Critical Thinking : Assessed
    • Data Synthesis : Assessed
    • Active Learning : Assessed
    • Numeracy : Assessed
    • Information Literacy
      • Synthesise And Present Materials : Assessed
      • Use Of Computer Applications : Assessed
  • Self Management
    • Personal Enterprise
      • Innovation And Creativity : Present
      • Initiative : Present
      • Problem Solving : Assessed
  • Interaction
    • Communication
      • Interpersonal : Assessed
      • Written Other : Assessed
    • Team Working
      • Collaboration : Present
      • Relationship Building : Present

Teaching Methods

Teaching Activities
Category Activity Number Length Student Hours Comment
Guided Independent StudyAssessment preparation and completion221:0022:00Lecture follow-up
Scheduled Learning And Teaching ActivitiesLecture221:0022:00Lectures
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.

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 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%.

Timetable

Past Exam Papers

General Notes

Based on module CSC3004

Note: The Module Catalogue now reflects module information relating to academic year 14/15. Please contact your School Office if you require module information for a previous academic year.

Disclaimer: The University will use all reasonable endeavours to deliver modules in accordance with the descriptions set out in this catalogue. Every effort has been made to ensure the accuracy of the information, however, the University reserves the right to introduce changes to the information given including the addition, withdrawal or restructuring of modules if it considers such action to be necessary.