CMSI 185: Welcome to Week 10
This Week's Class Agenda
What's Going On This Week
The Python discussion is moved to next week. That way we'll have time to:
- Review for the next quiz, which is on Thursday [as you well remember]
- TAKE the next quiz, which will require the entire class period
The Review
These are the topics we have covered so far. I will talk about them briefly in class, and then
will give you time to ask questions about them if you have any.
- Introduction:
- important people
- what is computer science
- some beginning terms
- the idea of "abstraction"
- scripts, programs, crashes, clients, servers
- grammar, bug, definition of an algorithm
- early computing machines [Babbage, Ada, Jacquard's loom, slide rule, Colossus, Mark 1, ENIAC]
- famous people [full list on page 13 of
week01.pdf file
- three steps of Von Neumann architecture
- Program modeling: designing the doghouse, flowcharts
- Data Types in JavaScript: Booleans, numbers, text, undefined, null, and Objects
- Variables and naming
- Basic input and output: alert() and prompt() functions, changing data to different types
- Expressions and statements, the addition algorithm, pseudocode, flowcharting the algorithm
- Number representations: Binary, Decimal, Hexadecimal, processor word size
- Character representations:
ASCII,
Unicode, codepoints
- Truth Tables, operator precedence, parenthesizing
- Object definitions: the easy way, the "function" or "constructor" way, the dot operator
- Diagrams of what goes on in memory when defining objects; variable references and values
- Arrays and Strings, using data types to make data structures like stacks and queues
- "Prototypes" or templates for objects, subclassing, inheritance, encapsulation
- Euclid's algorithm, stack implementation, Russian Peasant Multiplication algorithm
- Conditionals: if statements and decisions, Conditional expressions, Switch statements, Short circuits
- Iteration: using the 'for loop', the 'while' and the 'do-while loop', the 'for-in loop', Break, continue, and return
- Exceptions and error handling in programs
- What is a function, How to define a function, How to call a function, Program "scope"
- HTML pages and the script tag, Functions as objects, Functions in prototypes, "this" keyword and referencing
- Function closures, functions as first-class functions, function nesting, passing functions as arguments to functions
- Putting it all together; development of basic page, then iteratively adding more and more, keeping it all working