Module Title:   C-Programming with Robots

Module Credit:   20

Module Code:   CM-0135D

Academic Year:   2015/6

Teaching Period:   Semester 2

Module Occurrence:   A

Module Level:   FHEQ Level 4

Module Type:   Standard module

Provider:   Computer Science

Related Department/Subject Area:   SCIM (Dept of Computer Science)

Principal Co-ordinator:   Dr J.C. Readle

Additional Tutor(s):   Ms F.L.C. Ong

Prerequisite(s):   None

Corequisite(s):   None

1. To develop a clear grasp of basic programming skills in the language C.
2. To apply these skills in small groups to the solution of practical robot problems.
3. To develop time management and team working skills.

Learning Teaching & Assessment Strategy:
Lectures and seminars will used to introduce the basic knowledge and concepts. Group based laboratory sessions will be used to develop the programming skills, knowledge and understanding. Assessment will consist of laboratory practical demonstrations, a group report/wiki and individual logbooks/e-journals. Supplementary assessment is to repair deficiencies in the original submission.

Lectures:   6.00          Directed Study:   128.00           
Seminars/Tutorials:   6.00          Other:   0.00           
Laboratory/Practical:   60.00          Formal Exams:   0.00          Total:   200.00

On successful completion of this module you will be able to...

1. Apply basic concepts fundamental to robotic construction and programming;
2. Make use of basic terminology and broad theoretical concepts that underpin the design of autonomous mobile robots employing simple sensors.

On successful completion of this module you will be able to...

1. Write working C programs which include: loops, conditionals, arrays and functions;
2. Interface with simple analogue and digital input and output sensors and circuits;
3. Program, test and demonstrate a solution to specified practical robotic problems.

On successful completion of this module you will be able to...

1. Work cooperatively with others in small groups to achieve a common objective;
2. Work with wikis and e-journals to contribute to a group report.

  Coursework   100%
  Portfolio including logbook/e-journal & practical demonstrations of design exercise

Outline Syllabus:
Introduction to robotics, concentrating on mobile robotics. Introduction of computer programming including language types and the development environments. The C language including the following core concepts:
1. Variables and basic types.
2. Input and Output.
3. Operators.
4. Conditionals
5. Loops
6. Functions
7. Scope
8. Library functions
9. Arrays
10. Strings
11. Pointers
12. Passing arguments by value and by reference
13. Structures
14. Interfacing to simple sensors and output devices
Basic ideas of software design and testing. Techniques for robot programming concentrating on sensor monitoring by polling. Problem based design group project: involving the design, construction programming and testing of simple sensor-based robotic systems. The theme of this group project will normally have an ethical or sustainable background, e.g. it may involve the design of a rescue robot for use in a disaster situation. A key part of the design exercise will be one or more practical demonstrations.
Basic principles of robot design including: Newton`s Laws of motion, potential and kinetic energy, momentum, mechanical advantage, gearing and torque.

Version No:  1