Review of the main topics covered in CSC 2700 this term ======================================================= [NOTE: I will progressively update this doc, if necessary, until the exam] Course Overview --------------- * Introduction to C (and some C++) * Numerical Methods * Simulation * Graphs * Dynamic Programming * Four assignments Introduction to C (and some C++) ================================ - Review the basic construct of the language, particularly those that are new to a java programmer: + Pointers + Pointers versus arrays + Pointer arithmetic - Be able to quickly see what the output of a small and short C program should be. Readings: The appropriate pages in King's book or in K&R's book. Numerical Methods ================= - Round-off errors, truncation errors, and machine precisions. - Root finding methods: bisection, secant, Newton. Readings: lecture notes and the appropriate pages in the readings. Graphs ====== - Understand basic concepts: vertex, edge, path, cycle, etc. - Representation - Depth-First Search - Beadth-First Search - Diskjstra algorithm (Single Source Shortest Paths) - Floyd-Warshall-Ingerman algorithm (All-Pairs Shortest Paths) Readings: lecture notes and the appropriate pages in the readings. Make sure to understand all of this 4 algorithms as formulated BOTH in lecture notes and in the readings. Things to notice: - understand the algorithms - apply on examples - estimate complexity - undestand the subtleties of the various algorithms Simulation ========== - Main concepts: + deterministic versus stochastic + time- versus event-driven etc - Components of a simulation - Study small examples: + the one in lecture notes + the 3 ones in the readings p. 1, 3, 5 (Mole notes) - Random number generation Readings: lecture notes and the Mole notes in the readings. Dynamic Programming =================== - The five steps for solving a problem using DP. - All-Pairs Shortest Paths as a DP problem - Multistagegraphs - Estimating the complexity Four assignments ================ Study extensively all the handouts as they are relevant material for the exam. You should be able to answer questions about material covered on them.