F27SQ Introduction to Programming 2

Dr Jamie Gabbay

Course co-ordinator(s): Dr Jamie Gabbay (Edinburgh), Ubaid Abbasi (Dubai).

Aims:

To further introduce the fundamentals of computer programming, including techniques of object orientation and simple data structures and algorithms.

This course further introduces computer programming language fundamentals suitable for a data scientist using a relevant programming language, e.g., python.

Detailed Information

Pre-requisites: none.

Location: Dubai, Edinburgh.

Semester: 2.

Syllabus:

  • Program design, modules, packages - Jupiter notebook
  • List comprehensions, dictionaries, dict comprehension
  • Exceptions, testing
  • Advanced procedural programming: argument passing, Lambda
  • Object Oriented Programming: functions as objects, objects, classes, attributes, methods
  • Design with classes, class diagram, data object modelling
  • Advanced Object Oriented Programming: inheritance, polymorphism, operator overloading (_eq_, _str_...); abstract classes
  • Graphical user interfaces; event-driven programming; creating simple user interface: buttons, labels, text fields, dialog - tkinter module
  • Iterators, Iterables, and Generators; Decorators, Context Managers, Regular Expressions; lazy evaluation

Learning Outcomes: Subject Mastery

  • Understand modules and program structure
  • Understanding error handling and testing
  • Designing with dictionaries and comprehensions
  • Understanding advanced argument passing; Lambda; functions as objects
  • Understanding object oriented design and programming
  • Designing and implementing simple graphical user interface
  • Designing with advanced object programming
  • Documenting, presenting programs
  • Gain fundamental skills applicable for data analytics and machine learning

Learning Outcomes: Personal Abilities

  • Understanding of the importance of regular working habits (PDP)
  • Understanding group work best practices (PDP)

Assessment Methods: Due to covid, assessment methods for Academic Year 2021-22 may vary from those noted on the official course descriptor. Please see the Computer Science Course Weightings and the Maths Course Weightings for 2020-21 Semester 1 assessment methods.

SCQF Level: 7.

Credits: 15.