Start date: 21 April 2020
Duration: 3 Days
Location: Online course, via Zoom, max 10 participants
Cost: Members € 300; Non-members € 450
Course code: N/A
This course will be delivered entirely online due to the COVID-19 virus.
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.
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.
- 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
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
- 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
Defining classes, Instance objects, Instance attributes, Methods, Properties, Class data, Inheritance, Pseudo-private variables, Static methods
Tab completion, Magic commands, Benchmarking, External commands, Enhanced help, Notebooks
Objectives, Python’s scientifc stack, numpy overview, Creating arrays, Creating ranges, Working with arrays, Shapes, Slicing and indexing, Indexing with Booleans, Stacking, Iterating
About scipy, Polynomials, Integrate and interpolate, Vectorizing functions, Fftpack
About pandas, Architecture, Series, DataFrames, Index Objects, Basic Indexing, Broadcasting
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
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.