units

FIT1029

Faculty of Information Technology

18 September 2017
29 May 2023

Monash home | About Monash | Faculties | Campuses | Contact Monash |

Staff directory | A-Z index | Site map |

## 6 points, SCA Band 2, 0.125 EFTSLRefer to the specific census and withdrawal dates for the semester(s) in which this unit is offered.
## Synopsis
Algorithms are recipes for solving a problem. They are fundamental to computer science and software engineering. Algorithms are the formal foundation of computer programming but also exist independently of computers as systematic problem-solving procedures. This unit introduces algorithmics, the study of algorithms. It is not about programming and coding but rather about understanding and analysing algorithms and about algorithmic problem-solving, i.e. the design of systematic problem-solving procedures. The unit is very hands-on and students will develop algorithms to solve a wide variety of different problems, working individually as well as together in groups and as a class. ## Objectives
At the completion of this unit students will have - - the difference between algorithms and processes;
- basic ways to structure algorithms: basic data structures (simple variables, collections structure, specifically vectors, lists, sets, and tables); basic control structures (sequence, choice, iteration);
- recursion;
- modular algorithm structures;
- the equivalence of recursion and iteration;
- problem solving strategies suitable for algorithm development including top-down design and bottom-up design;
- simple standard patterns for algorithms (eg traversal, search);
- what makes a good algorithm
- limitations of algorithms (high level).
- develop simple iterative and recursive algorithms
- argue the correctness of simple algorithms
- judge the efficiency of simple algorithms, and
- value clear specification of problems;
- understand the relation between algorithms and programs;
- appreciate the value of designing abstract algorithms before starting to code a program;
- have confidence that they can develop algorithms to solve computational problems;
- appreciate that seemingly difficult problems can have very simple elegant algorithmic solutions (and vice versa);
- value correctness arguments for algorithms; and
- value the importance of simplicity and efficiency.
- solve a problem by discussing possible approaches and solutions as a team; and
- clearly communicate (the specification of) a computational problem, its algorithmic solution and arguments for correctness and efficiency.
## AssessmentExamination (3 hours): 60%; In-semester assessment: 40% ## Chief examiner(s)## Contact hours2 hrs lectures/wk, 2 hrs tutorials/wk ## PrerequisitesOnly for students in the Bachelor of Computer Science and Bachelor of Software Engineering, associated Double Degrees and major/minor sequences. Exceptions can be approved by the unit leader after assessment of mathematical background knowledge. ## Additional information on this unit is available from the faculty at: |