The University of Western Australia
School of Computer Science and Software Engineering

School of Computer Science and Software Engineering

CITS1401 Problem Solving and Programming

If you are from CITS1401 or CITS4406 you are at the right place for the complete Semester-1 2016. If you are from ENV4408 you are still at the right place but during the first 8 teaching weeks only.


Problem solving is a key intellectual activity. Computer technology has become an important tool to help solve problems in a wide range of disciplines, from the natural sciences, engineering and mathematics to business, architecture, the social sciences and medicine. The strength of computer technology is that it can be programmed to perform nearly any task. While effective programs are available for many kinds of tasks, each program can only perform the tasks anticipated when they were designed, and this limits the kinds of problems they can help solve. To fully utilise the potential of computer technology it is often necessary to build programs that are specifically designed to solve a particular problem.

Students taking this unit learn to solve problems via programming, with a focus on building small programs for specialised tasks. The unit is organised around a number of problems that the students solve as the unit progresses. Many of the problems have a focus on data, and require tasks such as data retrieval, extraction, conversion, aggregation, cross referencing, filtering, calculation, processing and storage. Other problems involve techniques such as search, enumeration, backtracking and "divide and conquer". There is some focus also on building programs that utilise some of the vast amount of information available via the Internet.

To implement solutions, students learn the fundamentals of programming using a high-level programming language. In addition to solving particular problems, the unit includes a focus on the problem solving process itself including problem definition, analysis, generalisation, decomposition into sub-problems, reduction to previously solved problems and evaluation of solutions.

  • Unit Co-ordinator: Ajmal Mian
  • Lectures: 2 hours per week; labs: 3 hours per week; workshop: 1 hour per week
  • Consultation hours: 2:00--3:00PM Wednesdays, Room 1.12 of CSSE Building
  • Prerequisites: WACE Mathematics 2C/2D or TEE Discrete Mathematics

Recent News:

2 May 2016 Exam discussion will be in the last lecture on Wed 1st June 2016 so that it is recorded.
2 May 2016 I will explain (again) how to use variables, call functions and return multiple parameters in the workshop on Fri 6th May.
9 Mar 2016 Link to the recorded lectures added here making this the single stop for everything related to CITS1401 & CITS4406

Archived News

23 Jan 2015 Watch this video and be glad you chose computing! Or just try computing.

Assessment Structure:

Mid-semester test 15% 27/4/2016
Project 1 10% Wk 7 - 8
Project 2 15% Wk 11-13
Final exam 60% June

To pass CITS1401, you must achieve ALL of the following:

  • an overall mark of at least 50%, AND
  • at least 40% in the test and Project 1 combined, AND
  • at least 40% in the final exam.