Sophisticated mathematics and numerical programming underlie many computer applications, including weather forecasting, computer security, video games, and computer aided design. This unit of study provides a strong foundational introduction to modern interactive programming, computational algorithms, and numerical analysis. Topics covered include: (I) basics ingredients of programming languages such as syntax, data structures, control structures, memory management and visualisation; (II) basic algorithmic concepts including binary and decimal representations, iteration, linear operations, sources of error, divide-and-concur, algorithmic complexity; and (III) basic numerical schemes for rootfinding, integration/differentiation, differential equations, fast Fourier transforms, Monte Carlo methods, data fitting, discrete and continuous optimisation. You will also learn about the philosophical underpinning of computational mathematics including the emergence of complex behaviour from simple rules, undecidability, modelling the physical world, and the joys of experimental mathematics. When you complete this unit you will have a clear and comprehensive understanding of the building blocks of modern computational methods and the ability to start combining them together in different ways. Mathematics and computing are like cooking. Fundamentally, all you have is sugar, fat, salt, heat, stirring, chopping. But becoming a good chef requires knowing just how to put things together in creative ways that work. In previous study, you should have learned to cook. Now you're going to learn how to make something someone else might want to pay for more than one time.
Three 1 hour lectures and one 1 hour laboratory per week.
Quiz (15%), Assignment (15%), Assignment (15%), Final Exam (55%)
(MATH2X21 and MATH2X22) or (MATH2X61 and MATH2X65)
[A mark of 65 or above in (12cp of MATH2XXX) or (6cp of MATH2XXX and 6cp of STAT2XXX or DATA2X02)] or (12cp of MATH3XXX)