Module design

This page contains materials which can be used to create a new modules, based on the material in Python for Rookies. We have included:

  1. Intended module learning outcomes.
  2. Modal assessment criteria.
  3. An example structure for a single semester module.

Intended learning outcomes

The following are general learning outcomes suitable for a first course in programming, using Python for Rookies. There are chapter-specific learning outcomes at the beginning of every chapter of the book.

  1. Design and implement interactive programs using appropriate linguistic features of a given programming language.
  2. Demonstrate an understanding of imperative, declarative and object oriented language features and know when it is appropriate to use each.
  3. Employ appropriate facilities in a given programming language for data abstraction and encapsulation (for example, functions, modules, packages and classes).
  4. Write programs which make use of external libraries, APIs, etc. and apply their skills to a new programming language.

Example modal assessment criteria

The following are assessment criteria suitable for a first course in programming, using Python for Rookies. We have provided criteria for Pass and First Class modes, which are used at the institutions we have taught at. However, some Universities prefer to use other modes, in which case these should be suitably adapted.

For a pass mark (≥40%), students should be able to:

For a first class mark (≥70%), students should be able to:

Module structure

Below is a typical module structure for a single semester module following Python for Rookies. We have found that in a single course of study, students can successfully move from no programming experience to writing a small, arcade game using 2D graphics.

  1. Getting Started: Basic features of the chosen programming language and environment. Algorithms, bugs and debugging.
  2. Programming Basics: Basic concepts of programming and programming languages. Specifically, students will learn about expressions, statements, commands, literals, variables and types. These will all be covered in more detail in later weeks, but here students will learn enough to enable them to write simple programs.
  3. Boolean Algebra: This is a concept that will also be covered in modules on hardware and mathematics. Booleans enable us to represent the concepts of True and False in programs. In programming, Boolean algebra makes it possible to write programs which make choices between alternatives.
  4. Choice: Students will make use of Boolean algebra and learn how to write programs which choose between alternatives.
  5. Repetition, Recursion: Recursion is one of two ways to write programs which repeat some of their actions. In these sessions students will learn how to use recursion to draw fractal curves. Students will also draw one or more fractals of their own, which will be included in their portfolio of work.
  6. Repetition, Iteration: Iteration is the other way of writing programs which repeat some of their actions. In this session students will see some of the examples that were covered in the previous work on Recursion. This should help students to learn how to implement repetition in different ways and to choose which language features to use for a particular task. One of the examples that will be covered is a simple form of encryption called the Caesar Cipher, which was invented by Julius Caesar to prevent his instructions to troops from being read by his enemies.
  7. Compound Types: This session covers how to represent and process complex pieces of information in the chosen programming language. Some of the concepts from Programming Basics will be covered in more detail, especially strings. Students will also learn about regular expressions, which can be used to perform powerful text processing.
  8. Functions and Modules: Functions and modules are two of the basic building blocks of imperative programs. Students will already have met these concepts earlier in the module, but study them here in more detail. Students will learn about professional programming practice, including how to usefully document programs and how to write code for other programmers to use.
  9. Input and Output: Most useful programs read data in from somewhere (a file, the keyboard, the Internet, ...) and produce some output (in a file, on the screen, etc). In this session students will learn all about input and output, including how to save data so that you can use it again.
  10. Object-Oriented Programming: Object-oriented programming (OOP) gained enormous popularity in the 1990s and has become the de facto standard in much of the computing industry. In the 2000s, as dynamically typed languages have become more popular, many people have begun to think that it's good to have a choice about whether to use OOP or not, and how to solve some of the problems that OOP has created. Because OOP has become so important, students need to have a good understanding of what it is, when and why it's useful and how to write programs using object-oriented techniques.
  11. Extensions: This session gives an introduction to using libraries which do not come with the chosen programming language. This gives students a chance to find out how professional programmers make use of reusable software.

Please email us with your comments about this book.