Dear CISC106-010 Students: Our final exam is on Thursday Dec.13, 2007, at 7-9pm, in room KRB 100. Final exam is cumulative. Therefore, whatever we have covered in class during the semester about Unix, MATLAB and C++ is included in the exam. The ratio of each topic in the final exam is as follows. 5% - 10% : about Unix 35% -40% : about MATLAB 60% : about C++ and comparing C++ and MATLAB Since we have 2 hours allocated for the final exam, expect a longer exam with more questions compared to the midterm exams (this is actually good because because if you miss a question, you won't be penalized with a huge point-cut :) . The weight of each question will be less on your overall grade in the final exam). Here is a guide for you on how to study for the final exam: ------------------------------------------------------------------- * Study your lecture notes * Review and study the Labs 01-09 (Make sure to review the sections of the labs that did not ask you to submit any work, also). * Review the quizzes, practice questions, Midterm #1, and Midterm #2 * Review the sample code from the lectures (look at the course web page) * Refer to the reading list (below) -------------------------------------------------------------------- There will be factual questions as well as problem-based questions in the exam (there might be some multiple choice and true/false questions, too). Factual questions will ask you to make definitions, explain the difference between the concepts, etc. For instance, - What is a compiler ? - What is machine code ? - What is static typing and dynamic typing? Do we have static or dynamic typing in C++? What about MATLAB? Problem-based questions will ask you to apply your knowledge into a problem. You can be asked - to complete a code piece, - identify the errors in a code piece, - given a problem in English text, write the MATLAB or C++ code, - given a function prototype, write the function body for the function in MATLAB or C++ - given a function A, write a function B to solve a given problem using the function A, etc. For instance, Question-1: What does the MATLAB code below do? x = 7; if (x >= 9) fprintf('blue\n'); elseif (x <= 3) fprintf('red\n'); else fprintf('yellow\n'); end fprintf('green\n'); Question -2: Write a C++ version of the same code? Question-3: Look at the C++ array declaration below. int A[5] = {10, 20, 30, 40}; Write a C++ expression to get the first element of array A i.e., value 10). Reading List: ------------------- MATLAB Book -------------------- Chp 1 - About MATLAB Chp 2 - MATLAB Environment Chp 3 - Built-in MATLAB Functions Chp 6 - User-Defined Functions Chp 4 - Manipulating MATLAB Matrices AFTER MIDTERM #1 Chp 5 - Plotting (Section 1, for basic plotting) Chp 7 - User-Controlled Input and Output Chp 8 - Logical Functions and Control Structures Chp 10 - Other Kinds of Arrays (mainly Section 1 and Section 4 on CellArrays) ------------------- C++ Book -------------------- AFTER MIDTERM #2 Chp 1 - Creating a Basic Program Chp 2 - Simple Variables and Data Types Chp 3 - Operators and Control Structures (skip pages [72-75], [82-87]) Chp 5 - Defining your Own Functions (skip pages [160-164]) Chp 6 - Complex Data Types (look at only arrays, i.e, pages [170-175]). ------------ UNIX book: ------------ Chp 1 - Getting Started with Unix Chp 2 - Using Directories and Files Chp 4 - Creating and Editing Files (read only pp 83-90 for vi, pp 91-95 for emacs) AFTER MIDTERM #1 Chp 5 - Controlling Ownership & Permissions (especially for the 'chmod' Unix command)