The Introduction to Programming course comprises sessions dealing with variables, expressions, conditional
statements, collections, iterative statements, functions, objects, compilation and execution, and best practices.
This hands-on course uses a small subset of Python, a professional programming language which is simple to
use and easy to understand. However, it is as broad as possible, and relevant to most modern programming
languages, by familiarising delegates with standard programming terminology, structures, and principles.
Exercises and examples are used throughout the course to give practical hands-on experience with the techniques
covered.
This course aims to provide the delegate with the knowledge to be able to produce simple computer
programs that demonstrate an understanding of the three core principles of programming - sequence, selection,
and iteration. Delegates will also be exposed to functions, objects, and both procedural and object-oriented
programming paradigms. The course further aims to prepare delegates to go on to learn any one of many
programming languages in detail.
This Introduction to Programming course is designed for those new to programming who want to learn about the
terminology, structures, and principles of programming generally. Attending this course will provide delegates with
the prerequisite knowledge and required skills to go on to learn any programming language in detail, e.g. Java,
JavaScript, Python, C, C++, C#, PHP, Perl, Ruby, etc.
By actively participating in this course, you will learn about the following:
Solving a problem with code.
Planning and preparing to write code.
Breaking down complex problems.
Writing to and reading from the console.
Understanding core programming constructs and knowing when to use them.
Declaring and initialising variables.
Constructing expressions.
Constructing conditional statements.
Working with arrays/lists and dictionaries/mappings.
Constructing iterative statements.
Declaring and invoking/calling functions.
Writing procedural programs.
Writing object oriented programs.
Compiling and executing code.
Structuring larger programs.
Delegates should be able to navigate the filesystem, edit a file, and browse the web. No programming experience
is necessary.
Module 1: Fundamentals
Hardware, software and programs. The key components of a modern computer, and their role in running
programs.
Programming and programming languages. How do you tell a computer to do something, what are the
different types of programming languages.
Key programming concepts. Algorithms and data. Variables, constants, literals and expressions
Module 2: Preparing to write code
When learning a new skill or taking on a complex task it can help to take small steps, to minimise overwhelm and
prevent expensive mistakes.
Requirement analysis. Document and understand what you're trying to achieve.
Planning. Get ready to code using flowcharts, pseudo code and other planning techniques.
Waterfall models versus incremental coding (Agile, Scrum). How much planning should you do before you
start? How do you approach and manage a large programming project.
Bottom up versus top down. Some ideas for solving complex programming tasks.
Module 3: Programming essentials
Most modern programming languages share a common set of essentials:
Creating and using variables.
Working with different types of data - text, numbers and collections.
Code flow - decisions using if/else, doing the same thing multiple times using for/while/repeat/until loops.
Structuring code using functions and classes.
This will be covered with an emphasis on
What they do and when to use them.
Common misunderstandings.
Module 4: Writing tested, working, quality code
Writing code is an iterative process. Even experienced programmers don't write perfect code first time.
Understanding the whole process will make you a more efficient and confident developer.
The programming process. Read, write, test, fix, repeat.
Writing code. Turn your pseudo code into real code in your target language.
Good coding habits. Writing small programs is fairly easy. Writing large programs which work, and which
grow and develop over time, requires good coding habits.
Testing your work. How do you make sure your code works correctly, in all relevant situations?
Debugging. When your code doesn't work correctly, how do you know exactly what went wrong so you can
fix it?
Refactoring. Working code is great, but code evolves over time and degrades in the process until it becomes
unusual. Regular refactoring stops your code from degrading and extends its useful life.