CITS4406 Problem Solving and Programming

Credit
6 points
Offering
(see Timetable)
AvailabilityLocationMode
Not available in 2018UWA (Perth)Face to face
Content
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 it was designed. Thus to fully utilise the potential of computer technology, it is 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'. 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.
Outcomes
Students are able to (1) solve many kinds of problems using programming as a primary tool; (2) write programs using a high-level programming language, including programs for data retrieval, extraction, conversion, aggregation, calculation, processing and storage; and (3) demonstrate a generic understanding of problem solving as a process and be familiar with common approaches for problem solving.
Assessment
Typically this unit is assessed in the following ways: (1) mid-semester test; (2) project 1; (3) project 2; and (4) examination. Further information is available in the unit outline.

Supplementary assessment is only available in this unit in the case of a student who has obtained a mark of 45 to 49 and is currently enrolled in this unit, and it is the only remaining unit that the student must pass in order to complete their course.
Unit Coordinator(s)
Associate Professor Ajmal Saeed Mian (Semester 1) and Associate Professor Mark Reynolds (Semester 2)
Unit rules
Prerequisites:
enrolment in the Master of Information Technology (62510)
Incompatibility:
CITS1401 Problem Solving and Programming
Contact hours
lectures: 2 hours per week; labs: 3 hours per week; workshops: 1 hour per week
Texts

To be advised by the School of Computer Science and Software Engineering.

  • The availability of units in Semester 1, 2, etc. was correct at the time of publication but may be subject to change.
  • All students are responsible for identifying when they need assistance to improve their academic learning, research, English language and numeracy skills; seeking out the services and resources available to help them; and applying what they learn. Students are encouraged to register for free online support through GETSmart; to help themselves to the extensive range of resources on UWA's STUDYSmarter website; and to participate in WRITESmart and (ma+hs)Smart drop-ins and workshops.
  • Books and other material wherever listed may be subject to change. Book lists relating to 'Preliminary reading', 'Recommended reading' and 'Textbooks' are, in most cases, available at the University Co-operative Bookshop (from early January) and appropriate administrative offices for students to consult. Where texts are listed in the unit description above, an asterisk (*) indicates that the book is available in paperback.