F21SC Industrial Programming

Marko DokoDr Marta Vallejo

Course co-ordinator(s): Marko Doko (Edinburgh), Dr Marta Vallejo (Edinburgh), Huseyin Kusetogullari (Dubai).

Aims:

  • To develop proficiency in contemporary industrial programming languages and platforms;
  • To enable the elaboration and combination of system components in different languages;
  • To enable an agile and flexible response to changes in industrial practices;
  • To enable participation by industrial practitioners to provide context and applicability.

Detailed Information

Course Description: Link to Official Course Descriptor.

Pre-requisites: Programming skills in a language such as C or Java..

Location: Dubai, Edinburgh.

Semester: 1.

Syllabus:

  • Programming in a modern general purpose language e.g. C#, C++11
  • Programming for concurrency using state-of-the-art libraries and language extensions
  • Rapid prototyping in a major scripting language with associated libraries and frameworks e.g. Python, PHP, Ruby, Lua
  • Coverage of advanced language features where languages have been met in earlier courses
  • Foresight of emerging programming language technologies
  • Practical experience with standard environments (Unix, Windows), virtual machines (.NET) and tools (e.g. compilers, debuggers, libraries, shell)

Learning Outcomes: Subject Mastery

Understanding, Knowledge and Cognitive Skills Scholarship, Enquiry and Research (Research-Informed Learning)

  • Critical appreciation of role of different programming paradigms in programming/managing systems
  • Autonomous problem analysis/solution
  • Critical understanding of core characteristics of contemporary operating systems and virtual machines
  • Detailed knowledge of key abstractions across programming languages
  • Technical proficiency in advanced language techniques in different programming paradigms

Learning Outcomes: Personal Abilities

Industrial, Commercial & Professional Practice Autonomy, Accountability & Working with Others Communication, Numeracy & ICT

  • Ability to choose/deploy/combine appropriate languages, architectures and tools
  • Ability to employ an agile approach to software development

SCQF Level: 11.

Credits: 15.