Introduction to Python 3

Start date: 09 June 2020

Duration: 3 Days

Location: Online course, via Zoom, max 10 participants

Certificate: N/A

Cost: Members € 300; Non-members € 450

Course code: N/A

Programme overview

This course will be delivered entirely online due to the COVID-19 virus. Due to demand, this course will be held a few times on the following dates:
21st to 24th April
28th to 30th April
5th to 7th May
9th to 11th June
21st to 23rd Sept

This 3-day introductory course covers the fundamentals of the Python 3 programming language and the essential tools which can be applied in an IC design environment.

Learning outcomes

On completion of the course, participants will be able to :
• Design and program python applications using Spyder and Jupyter environments
• Use the main flow of control elements in Python
• Choose the appropriate variable type when required
• Use the different collection types, including lists, tuples and dictionaries
• Write functions and pass parameters
• Create classes and objects
• Read, write and parse different types of files
• Access operating system variables and automate tasks
• Use Numpy and Pandas to represent data sets
• Create mathematical models using Scipy, e.g using integrate and fast fourier transforms
• Graph using matplotlib and other tools

Who is the course for?

This introductory Python 3 course is for Electronic Engineers in an IC design, evaluation or test role, who wish to apply Python e.g. for automating tasks. No prior Python experience necessary. Prior knowledge of a programming language is assumed.


Day 1

  • Python Basics
    The Python environment, Spyder environment, Variables, Keywords, Built in functions, Variable types
  • Flow Control
    if and elif, Conditional expressions, Relational operators, Boolean operators, while loops, Alternate ways to exit a loop
  • Functions
    Defining a function, Function parameters, Global variables, Variable scope, Returning values
  • Modules and Packages
    The import statement, Zipped libraries, Creating Modules, Packages
  • Lists and Tuples
    About sequences, Lists, Indexing and slicing, Iterating through a sequence, Functions for all sequences, Using enumerate, Operators and keywords for sequences, The xrange() function
  • Working with files
    Text file I/O, Opening a text file, The with block, Reading a text file, Writing to a text file, “Binary” (raw, or non-delimited) data

Day 2

  • Exception Handling
    Exceptions, Handling exceptions with try, Handling multiple exceptions, Handling generic exceptions, Ignoring exceptions, Using else, Cleaning up with finally, re-raising exceptions, Raising a new exception, The standard exception hierarchy
  • Dictionaries and Sets
    About dictionaries, When to use dictionaries, Creating dictionaries, Getting dictionary values, Iterating through a dictionary, Reading file data into a dictionary
  • Functional Programming
    Creating functions with no side effects, Lambda expressions, Reduce, Decorators in Python
  • OS Services and Task Automation
    The OS module, Environment variables, Launching external processes, Paths, directories and filenames, Walking directory trees, Dates and times, Sending email, Other tasks
  • Classes
    Defining classes, Instance objects, Instance attributes, Methods, Properties, Class data, Inheritance, Pseudo-private variables, Static methods

Day 3

  • Juypter
    Tab completion, Magic commands, Benchmarking, External commands, Enhanced help, Notebooks
  • Numpy
    Objectives, Python’s scientifc stack, numpy overview, Creating arrays, Creating ranges, Working with arrays, Shapes, Slicing and indexing, Indexing with Booleans, Stacking, Iterating
  • Scipy
    About scipy, Polynomials, Integrate and interpolate, Vectorizing functions, Fftpack
  • Pandas
    About pandas, Architecture, Series, DataFrames, Index Objects, Basic Indexing, Broadcasting
  • matplotlib
    About matplotlib, matplotlib architecture, How to set up your plt, Alternatives to matplotlib – e.g ggplot2
  • Task Automation, Developing an automation pipeline, Real world automation problem 

Trainer Profile

Bill Emerson of Professional Training has worked as a software engineer, developer and trainer in the UK and Ireland since 1992, in a variety of industries, including financial services, scientific and educational. He has programmed extensively in Java and Python and divides his time between development projects and designing and delivering training courses. He has delivered python courses to many groups, including climate researchers and electronic engineers.

Bill lectures in software design and data analytics at Undergraduate and Postgraduate level, and is involved with a number of research projects involving data mining, analysis and visualization.

Contact to book places