This preview shows pages 1–5. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: Course Summary ENGINEER 1D04 Dr. William M. Farmer and Dr. Spencer Smith McMaster University, Fall 2010 Revised: 14 December 2010 1 Topics 1. Computing. a. What computing is. b. Main branches of computing. c. Why engineers need to study computing. 2. Mathematical concepts. a. Number systems. b. Sequences (finite and infinite). c. Σ and Π notation. d. Functions. e. Boolean operators and truth tables. 3. Programming languages. a. Values and types. b. Expressions. c. Variables and constants. d. Statements. e. Representation of number systems. f. Characters and strings. g. Function definition and application. h. Name spaces and scope. i. Modes of execution. j. Programming paradigms (especially imperative, functional, and objectoriented). 4. Values, types, and expressions in Python. a. Numeric types (especially int , long , and float ). 1 b. Sequence types (especially str and list ). c. Objects. d. Functions. e. Booleans and boolean operators. f. Exceptions. g. Type conversion. 5. Statements in Python. a. Assignment statements. b. Conditional statements. c. Definite loops. d. Indefinite loops. e. Function definitions. f. Exception handling. g. Class definitions. h. Method definitions. i. Module import statements. 6. Input/Output. a. I/O devices. b. Files. c. Standard input and output. d. File processing in Python. e. Python input and print statements. 7. Algorithms. a. What an algorithm is. b. Algorithm design and analysis. c. Search algorithms. d. Sorting algorithms. e. Recursion. 8. Software Development. a. Software development phases. b. Software development models. c. What software engineering is. d. Software engineering principles (especially the principle of least privilege). e. Software design techniques (especially pseudocode and flow charts). f. Software testing. 2 2 Themes Theme 1 : Every engineer needs to have a sophisticated understanding of computing. Theme 2 : There are various ways that common mathematical objects and other data are represented in programming languages. Theme 3 : Modularity is a powerful concept that is extensively em ployed in computing. Theme 4 : Software development should be a rational process. 3 Historical Figures 1. Euclid (c. 300 BCE). 2. Gottfried Leibniz (1646–1716). 3. George Boole (18151864). 4. Alan Turing (1912–1954). 5. Donald Knuth (1938– ). 6. David Parnas (1941– ) 4 Case Studies 1. Therac25. 2. Ariane 5. 5 Applications 1. Numerical evaluation. 2. String and list processing. 3. File processing. 4. Graphics. 5. Iterated additionlike operations (e.g., Σ and Π). 6. Function examples. 7. Class examples. 8. Euclid’s GCD algorithm. 9. Sorting algorithms. 3 6 Advice 1. Read carefully all the course material!...
View
Full
Document
This note was uploaded on 10/14/2011 for the course ENGINEER CHEM ENG 3 taught by Professor Ghosh during the Spring '11 term at McMaster University.
 Spring '11
 Ghosh

Click to edit the document details