Chat with us, powered by LiveChat

Programming Principles

This subject is available under ICMS undergraduate degrees, please click the button below to find an undergraduate course for you.

Subject Code:


Subject Type:


Credit Points:

3 credit points



Subject Level:


Subject Rationale:

Software solutions are setting the groundwork and foundation of the present, emerging, and future technology landscapes. It is for this reason that programming has become a core competence in the ICT domain, equipping IT professionals with the essential skills, such as algorithmic thinking, computational problem-solving, solution design, etc., that underpin technological discovery, innovation, and advancement. From task automation to game development and data science to embedded applications, Python has become one of the most prominent programming languages that form the backbone of the novel technologies. 

This subject introduces students to computer programming, furnishing them with the foundational knowledge and skills necessary to apply the structured programming paradigm using a multidisciplinary language, Python. Through hands-on activities, students will learn the fundamental coding principles and techniques by adopting the Python philosophy and applying its inherent syntax, semantics, and constructs. 

In this subject, students will create small-scale solutions to computational challenges, exercising their creative thinking and problem-solving skills and using programming techniques in a Python-specific integrated development environment. Python modules, packages, and libraries, along with the basic concepts of the object-oriented programming (OOP) paradigm, will also be examined. Upon completing this subject, students will be ready to take the PCEP™ (Certified Entry-Level Python Programmer) and PCAP™ (Certified Associate in Python Programming) certification exams delivered by Python Institute. 

Learning Outcomes:

a) Apply core computer programming principles and structured programming paradigm concepts using a general-purpose language.

b) Write, debug, and run basic readable computer programs using programming tools and techniques in an integrated development environment.

c) Demonstrate competency in using Python language, incorporating its inherent syntax, semantics, and in-built constructs.

d) Analyse and solve small-scale problems by writing clear, reliable, well-structured, and functional Python programs.

e) Explain the fundamental characteristics of the object-oriented programming paradigm, including the differences between procedural and object approaches.

Student Assessment:

Broad Topics to be Covered:

Week 1: Introduction to Python and Computer Programming 

  • Fundamentals of computer programming 
  • Compilation and interpretation 
  • Python and its programming environment 
  • Python and other programming languages 
  • Installing and using Python 
Week 2: Programming Essentials with Python 

  • Data types  
  • Variables 
  • Basic operators 
  • Basic input-output operations 
Week 3 – 4: Programming Controls with Python 

  • Boolean variables 
  • Logical operators 
  • Logical and bitwise operations 
  • Conditional execution 
  • Nested and compound conditions 
Week 5 – 6: Iterative Programming with Python 

  • Loops and their utilisation (while and for) 
  • Break and continue instructions 
  • Mutable sequence types: lists, iterative list processing, and slicing 
  • Multi-dimensional arrays 
Week 7 – 8: Functional Programming with Python 

  • Functions, scope, and arguments 
  • New data aggregates: tuples, dictionaries, and their role in data processing 
  • Modules, packages, and libraries 
  • Functions and module coding 
  • Exceptions 
Week 9: Strings, List Methods, and Files with Python 

  • Characters, strings, and coding standards 
  • Strings, lists, and list methods 
  • Files and simple I/O 
  • Python’s built-in I/O library, working with file-system, directory tree and files 
Week 10 – 11: Object-Oriented Programming (OOP) with Python 

  • Basic concepts of OOP and procedural vs object approaches 
  • Classes, objects, properties, and methods 
  • Designing reusable classes and creating objects 
  • Inheritance and polymorphism 
  • Exceptions as objects 
  • Generators, iterators, and closures  

Please note that these topics are often refined and subject to change so for up to date weekly topics and suggested reading resources, please refer to the Moodle subject page.