Module Catalogue 2021/22

NUS8304 : Programming for Automation

  • Offered for Year: 2021/22
  • Module Leader(s): Dr Pavan Kumar Naraharisetti
  • Owning School: NUIS
  • Teaching Location: Singapore
Semester 2 Credit Value: 20
ECTS Credits: 10.0
Pre Requisites
Pre Requisite Comment


Co Requisites
Co Requisite Comment



This module aims to provide fundamental knowledge and skills in software programming so that students will know how to write scripts to communicate with lab equipment

Outline Of Syllabus

1. Introduction to Programming – Requirements gathering, Writing Pseudo Code,
Developing Flow Charts.
2. Programming with Python - Mathematical Operators, Conditional Statements, Loops,
Error Handling, Functions.
3. Scientific Programming - Matrix operations, data exchange (excel, text, csv), numpy,
pandas, scipy, functions.
4. Object Oriented Programming, Classes
5. Threads for developing GUI / HMI
6. Client-Server architecture and APIs
7. Communications, Networking and Standards (OPC-UA, Serial and Ethernet connections,

Learning Outcomes

Intended Knowledge Outcomes

At the end of the module, students should:
• Be able to analyse a problem, perform requirements gathering and develop pseudo
code and flow-charts.
• Use knowledge of the relationship between data handling and programming to create a plan
for software development.
• Use knowledge of how equipment can be connected, data processed and equipment controlled to
create software for automation.

Intended Skill Outcomes

At the end of the module, students should be able to:
• Write programs to solve everyday problems.
• Write programs to communicate and control lab equipment.
• Build a GUI for automation applications.
• Evaluate existing code, make modifications to the same and develop new code as necessary

Teaching Methods

Teaching Activities
Category Activity Number Length Student Hours Comment
Scheduled Learning And Teaching ActivitiesLecture122:3030:00Lectures
Guided Independent StudyAssessment preparation and completion117:0017:00Preparation for programming lab exam
Guided Independent StudyAssessment preparation and completion11:001:00Programming lab exam
Guided Independent StudyAssessment preparation and completion118:0018:00Coursework assignment preparation
Guided Independent StudyAssessment preparation and completion124:0024:00Revision for exam
Guided Independent StudyAssessment preparation and completion12:002:00Final exam
Scheduled Learning And Teaching ActivitiesSmall group teaching121:0012:00Tutorials
Guided Independent StudyIndependent study122:0024:00Lecture follow-up
Guided Independent StudyIndependent study121:0012:00Tutorial preparation
Guided Independent StudyIndependent study160:0060:00Review lecture notes, general and background reading, reading specified articles, practice problems
Teaching Rationale And Relationship

Teaching is conducted via lectures and tutorial with small group discussions during class. This is complemented with self-study and preparation of tutorial solutions, coursework/project and final examination to provide feedback on student learning. Teaching materials are made available to the students online for self-study and preparation at their own pace. Tutorial classes enable students to ask questions and clarify any doubts.

Due to the emerging Covid-19 situation, it is likely that some or all of the classes are conducted online. Attendance will be taken irrespective of whether the class is online or face-to-face, and students are expected to switch on their camera for online classes.

Reading Lists

Assessment Methods

The format of resits will be determined by the Board of Examiners

Description Length Semester When Set Percentage Comment
Written Examination1202A80Final exam
Other Assessment
Description Semester When Set Percentage Comment
Written exercise2M20Assignment on writing pseudo code, developing flow-charts and writing programs to solve eng problems. Team report max 1500 words
Formative Assessments
Description Semester When Set Comment
Practical/lab report2M90-minute programming lab exam where students should write programmes using Python
Assessment Rationale And Relationship

Coursework assignment provides students more time to think about more significant problems and provide engineering solutions for the same. It allows solving smaller components of a larger problem while having their goal set on solving a more significant problem. The programming lab exam allows the students to know where they stand concerning their ability to write programmes in a real-life setting. The final written exam enables students to demonstrate the ability to apply knowledge and skills learnt to solve engineering problems


Past Exam Papers

General Notes


Disclaimer: The information contained within the Module Catalogue relates to the 2021/22 academic year. In accordance with University Terms and Conditions, the University makes all reasonable efforts to deliver the modules as described. Modules may be amended on an annual basis to take account of changing staff expertise, developments in the discipline, the requirements of external bodies and partners, and student feedback. Module information for the 2022/23 entry will be published here in early-April 2022. Queries about information in the Module Catalogue should in the first instance be addressed to your School Office.