1 Programming Skills for Engineers

School School of Engineering College College of Science and Engineering
Credit level (Normal year taken) SCQF Level 8 (Year 2 Undergraduate) Availability Available to all students
SCQF Credits 10 ECTS Credits 5

1.1 Summary

This course introduces python programming, software engineering and design techniques to Engineering students. It also introduces the use of libraries like SciPy, NumPy and Matplotlib for solving equations (using appropriate numerical methods) and the use of JuPyter Lab notebooks to present calculations.

1.2 Course Notes

1.3 Course description

Computer programmes are more often read than written, so it is critical that they are written in a way which makes it easy for the programme to be modified in the future and so that the programmer knows the code works (and fails) as designed.

This course introduces software engineering techniques which enable properly documented, easy to read code to be written. It is based around the Python 3 language (which is freely available) and will also cover the basic elements of Python programming.

This course will make use of a BlinkStick Square, a programmable USB key with eight LEDs. You will use the BlinkStick Python library to control the LEDs.

You will also learn to use the SciPy and NumPy libraries to solve equations and the Matplotlib library to plot graphs and charts.

Finally, the course will introduce you to JuPyter Lab notebooks which can be used to document and layout calculations, present results and code.

1.4 Timetable

Timetable

Learning and Teaching activities (Further Info)

1.5 Total Hours: 100

  • Lecture Hours 20,
  • Programme Level Learning and Teaching Hours 2,
  • Directed Learning and Independent Learning Hours 78

1.6 Assessment (Further Info)

  • Written Exam 0 %,
  • Coursework 100 %,
  • Practical Exam 0 %

Additional Information (Assessment)

The School has a 40% Rule for 1st and 2nd year courses, i.e. you must achieve a minimum of 40% in coursework and 40% in written exam components, as well as an overall mark of 40% to pass a course. If you fail a course you will be required to resit it. You are only required to resit components which have been failed.

1.7 Learning Outcomes

On completion of this course, the student will be able to:

  • Design, program, document and test reusable modules and applications in Python and use data structures such as lists, tuples, and dictionaries in Python programs;
  • Use loops, decision statements and functions in Python programmes;
  • Use external libraries to perform engineering calculations and plot graphs;
  • Use exception handling in Python applications for error handling;
  • Use JuPyter Lab notebooks to perform, layout and document calculations.

1.8 Reading List

Mark Summerfield (2010) Programming in Python 3: A Complete Introduction to the Python Language, 2ND edition, Addison-Wesley Professional.

Sadeep Nagar (2018) Introduction to Python for Engineers and Scientists: Open Source Solutions for Numerical Computation, Apress, 978-1-4842-3203-3

Jody Scott Ginther (2010) Start Here: Python 3X Programming, Alien Cat Studios.

Course organiser Prof David Ingram
Tel: (0131 6)51 9022
Email: David.Ingram@ed.ac.uk
Course secretary Miss Mhairi Sime
Tel: (0131 6)50 5687
Email: msime2@ed.ac.uk