The University of Sheffield
School of Computer Science

COM219 Programming for Engineers

Summary

The first part of this module introduces basic concepts of computer programming, through an introduction to problem solving and the development of simple algorithms using the programming language Python. The module will stress the importance of good programming style and good code design and will introduce how an object-oriented approach can help to achieve these aims.
The second part of this module introduces some of the fundamental principles of object oriented programming and software engineering using the Java Programming Language. It introduces models of real-world systems. Techniques for developing sound programming techniques are introduced and applied.

Session Academic Year 2025/26
Credits 20
Assessment
  • Blackboard quizzes and assessed labs
  • Multiple choice exam (at the end of the Semester 1)
  • Assignment (during Semester 2).
Lecturer(s) Dr Mark Hepple & Dr Siobhán North
Resources
Aims
  • to provide an introduction to the concepts of problem solving and developing algorithms;
  • to provide a grounding in the principles of programming, using the Python and Java languages;
  • to establish good programming style;
  • to introduce the main features of object-oriented programming;
  • to develop the ability to create Java programs to solve problems;
  • to introduce the Java Application Programmers Interface;
  • to develop good programming practice particularly with respect to reuse.
Learning Outcomes  By the end of the module the student will be able to:
  • Implement algorithms using appropriate programming constructs
  • Choose suitable data constructs to be used in the solutions to programming problems;
  • Design, implement and test programs in Python and Java;
  • Demonstrate an object oriented approach to software development.
Content
  • introduction to algorithms and problem-solving;
  • introduction to imperative programming in Python;
  • control structures: conditionals, loops, functions;
  • data structures: arrays/lists, dictionaries;
  • introduction to object-oriented programming in Python and Java;
  • software development within an object-oriented framework;
  • the Java Collections Framework and its use.
Restrictions
Not open to students from the School of Computer Science or students who are taking or have taken COM160.
Teaching Method 1 lecture per week and 2 hours of supervised practical work per week, involving programming exercises in Python and Java;
Students are also expected to work in their own time.
Feedback Within three working days of Blackboard quizzes otherwise within the usual time limit of 3 working weeks.