FP3407 - Introduction to Programming

FP3407

Introduction to Programming

3

20 CC   10 ECTS

Centre for Foundation Studies

N/A


Scheduled hours Placement Hours Independent Guided study
60 0 140

Students are expected to attend all timetabled classes.

  • Focusing on developing Python programming techniques.
  • Developing an understanding of different data and collection types.
  • Differentiation between different programming languages.
  • Comparing programming paradigms (Imperative, OOP, Functional).
  • Utilising control flow, loops and functions.
  • Working with object oriented programming and classes.
  • Building graphical user interfaces and a basic introduction to event-driven programming.
  • Recursive techniques in Python.
  • Basic unit testing techniques for safe programming.
  • Local and global variables (LEGB Scope).

To develop an understanding of programming in Python and to be able to code to a high degree of fluency.
 
To be able to solve a problem using an Object Oriented approach, and utilise instance, static and class methods.

To be able to build a fully functioning Graphical User Interface (GUI) which serves a specific purpose.

To develop basic program testing knowledge using modern techniques, such as unit testing.

Lectures accompanied by IT workshops, group work, in-class tests and problem-solving scenarios. Formative assessment will be ongoing and will comprise activities that enable a student to appraise their own learning and guide them towards the development of self-study.

LO1 Efficiently use Python as a programming language and be able to implement core features such as classes, loops, functions and control flow in order to write a program that serves a specific purpose. Skills should be developed to structure code neatly to improve readability.

LO2 To be able to differentiate between 3 key programming paradigms (Imperative, OOP and Functional) and appropriately select a paradigm to complete a given task using the techniques and rules of that particular paradigm.

LO3 To design and program a graphical user interface and make use of buttons, labels, text boxes and various media. The GUI should be able to run without triggering any errors, and efficiently catch any exceptions raised. A basic understanding of event-driven programming should also be developed.

LO4 Develop an understanding of the different data/collection types to accurately recognise situations where they should be used appropriately, and understand the mutability of each type.

LO5 To develop key program testing skills to efficiently test a program throughout the course of its lifespan, and identify and implement popular methods such as Unit testing. Testing should be able to accurately identify any potential errors in code syntax or program output.

LO6 To develop an understanding of how recursion works in a programming sense, and be able to construct basic recursive functions in Python, and explain in detail how the function operates at runtime.

Component Weighting % Learning outcome(s) assessed Assessment category
1Coursework 1500 words50%1, 2 and 3Coursework
2Exam 1.5 hours50%4, 5 and 6Practical Exam


Reassessment will use the same mode of assessment.

Dawson, M. (2010). Python Programming for the Absolute Beginner, 3rd Edition. Course Technology.

Lutz, M. (2013). Learning Python, 5th Edition. O’Reilly Media.

Mertz, D. (2015). Functional Programming in Python. O’Reilly Media Inc. CA.

Philips, D. (2010). Python 3 Object Oriented Programming: Harness the power of Python 3 objects. Packet.

Robert, M. (2008). Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall.

Sale, D. (2014). Testing Python: Applying Unit Testing, TDD, BDD, and Acceptance Testing. John Wiley & Sons.

Dave Price-Williams

Centre for Foundation Studies

Learning and Teaching Institute Board of Studies

Fri, 01 Mar 2019

Close - return to programme display page  Print - launches the print options panel