Skip to main content

Unit information: Programming for Robotics (UWE) in 2012/13

Please note: you are viewing unit and programme information for a past academic year. Please see the current academic year for up to date information.

Unit name Programming for Robotics (UWE)
Unit code MENGM0007
Credit points 15
Level of study M/7
Teaching block(s) Teaching Block 1 (weeks 1 - 12)
Unit director
Open unit status Not open
Pre-requisites

None

Co-requisites

None

School/department Department of Mechanical Engineering
Faculty Faculty of Engineering

Description including Unit Aims

This unit is provided by UWE

The syllabus will cover the following topics. Although the following subjects are presented as a list, delivery will not be in the sequence outlined below. We will use a holistic approach based upon continual fun challenges to integrate the following;

  • The four things that computers do. Why programming is easy.
  • Risks. Different types of risk. Avoiding and Mitigating. Prioritising.
  • Test-driven development. Why test first? How do I know I'm succeeding?
  • The Linux Environment. Basic skills and concepts.
  • Python programming.
  • An introduction to the basics of programming
  • Objects and Classes
  • Documentation and where to find help.
  • Micro-controller programming.
  • An introduction to the basics.
  • Integrating Sensors and Actuators.
  • Talking to the PC

Examples of the sort of project-based learning that might take place in the module could be;

  • Make a coloured disk spin faster or slower depending on the current BT share price.
  • Get updates on the temperature of the lab sent to your phone via Twitter

Since the module is designed to give an introduction to programming to M-level students with little or no prior experience, the main focus will be on equipping the students with the tools and confidence to progress independently. Experience shows novice programmers often make the same mistakes; infrequent testing with no clear idea of what the expected output will be or what it means, debugging by random changes in the hope that clarity emerges, and development without focus on the shortest path to delivery. We will explain alternatives.

We hope to equip students with the skills to become productive quickly.

Intended Learning Outcomes

On completion of this module a student will typically be able to:- Show a detailed knowledge and understanding of

  • The importance of a risk-driven and test-focused approach to successful software development
  • Common reasons for failure in software projects, and techniques to mitigate against these risks.
  • Levels of abstraction in software development, e.g. Procedural, Object-Orientation, Component-based, Service-based Architectures.

Demonstrate subject specific skills with respect to

  • Developing hybrid software systems on heterogeneous hardware
  • Integrating sensors, actuators, embedded controllers and PCs

Show cognitive skills with respect to

  • The selection and re-use of components to aid rapid development
  • Identifying and mitigating risks.

Demonstrate key transferable skills in

  • Communication skills
  • self-management skills
  • IT skills in context
  • problem formulation and decision making
  • working with others
  • awareness of professional literature
  • progression to independent learning

Teaching Information

The module will be delivered as a combination of 'lectorials' and lab-based practical work. Students will be expected to use both the code of others and write their own code to meet a number of challenges in order to learn both the mechanics of programming, and the best way to organise themselves to deliver solutions to problems.

Assessment Information

Show a detailed knowledge and understanding of

  • The importance of a risk-driven and test-focused approach to successful software development
  • Common reasons for failure in software projects, and techniques to mitigate against these risks.
  • Levels of abstraction in software development, e.g. Procedural, Object-Orientation, Component-based, Service-based Architectures.

Demonstrate subject specific skills with respect to

  • Developing hybrid software systems on heterogeneous hardware
  • Integrating sensors, actuators, embedded controllers and PCs

Show cognitive skills with respect to

  • The selection and re-use of components to aid rapid development
  • Identifying and mitigating risks.

Demonstrate key transferable skills in

  • Communication skills
  • self-management skills
  • IT skills in context
  • problem formulation and decision making
  • working with others
  • awareness of professional literature
  • progression to independent learning

Reading and References

Reading Strategy

Reading which supports the learning of the students will be made available in electronic format via BlackBoard. This may include copies of peer-reviewed papers. Students will be expected to buy or otherwise provide for access to a copy of the essential reading for the course.

Indicative Reading List: (see guidance notes)

The following list is offered to provide validation panels/accrediting bodies with an indication of the type and level of information students may be expected to consult. As such, its currency may wane during the life span of the module specification. However, as indicated above, CURRENT advice on readings will be available via other more frequently updated mechanisms.

Essential Reading.

  • making Things Talk: Practical Methods for Connecting Physical Objects, by Tom Igoe. Publisher Make; 1 edition (September 28, 2007), ISBN-10 0596510519
  • Programming Python [Paperback] by Mark Lutz. Publisher: O'Reilly Media; 4 edition (October 15, 2010). ISBN-10: 0596158106

Further reading.

  • Programming Interactivity: A Designer's Guide to Processing, Arduino, and Openframeworks by Joshua Noble. Publisher: O'Reilly Media. ISBN-10: 0596154143
  • 30 Arduino Projects for the Evil Genius, by Simon Monk. Publisher McGraw-Hill/TAB Electronics; 1 edition (July 28, 2010), IBSN-10 007174133X
  • Arduino Cookbook by Michael Margolis. Publisher : O'Reilly Media; 1 edition (October 15, 2010) ISBN-10 0596802471
  • Test Driven Development: By Example, by Kent Beck. Publisher : Addison-Wesley Professional (November 18, 2002). ISBN-10: 0321146530
  • Just Enough Software Architecture: A Risk-Driven Approach, by George Fairbanks. Publisher: CRC Press; 1 edition (21 Sep 2010). ISBN-10: 1439812349

Feedback