The University of Sheffield
Department of Computer Science

COM161 Introduction to Programming and Problem-Solving

Summary 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.
Session Autumn 2021/22
Credits 10
Assessment
  • Blackboard multiple choice exam
  • Assessed lab
Lecturer(s) Dr Mark Hepple
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 programming language;
  • to introduce the main features of object-oriented programming;
  • to establish good programming style.
Objectives By the end of this course the students should:
  • be able to express algorithms using sequencing, conditional and iterative constructs;
  • be able to use basic data structures, and produce programs employing them;
  • be able to design, implement and test programs in Python;
  • understand what is meant by object-oriented programming.
Content
  • introduction to algorithms and problem-solving:
  • introduction to imperative programming in Python;
  • control structures: conditionals, loops, functions;
  • data structures: arrays, dictionaries;
  • simple object-oriented programming in Python;
Restrictions
Not open to students from the Department 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. Students will also be expected to work in their own time.
Feedback Shortly after Blackboard quizzes; within three weeks of assessed labs.
Recommended Reading There are a number of introductory texts/tutorials available free on the web. The following is suitable for student having no previous programming experience: