CSCI 305: Programming Languages
Midterm Review
Exam Time and Location: 8:00–8:50am, Roberts 101
Relevant Course Materials
- Slide Decks: Lectures 1-10
- Readings: Webster 1-10 and 24
- Assignments: HW1, HW2
Review
- Prior exams as found on BrightSpace
- True / False
- Multiple Choice
- Free Response:
- Be able to understand simple program(s) in C, Javascript, and/or Java syntax
- Ruby and ML will not be part of the exam
Materials Allowed
- Permitted: 1 page, 2 sides, 8.5 x 11” crib sheet
- NOT Permitted: electronic devices of any kind
- NOT Permitted: textbook, notebooks
Midterm Concepts
All of Chapters 1 - 9 and Chapter 24
- History of programming languages (no need to memorize dates or people)
- The four programming language paradigms
- Grammars
- Backus-Naur form grammars (BNF)
- parse-trees
- ambiguity
- EBNF
- operator precedence
- operator association
- Regular Expressions (in Ruby)
- Language Systems
- Classical Sequence
- Deviations from the Classical Sequence
- Types
- type conversion
- strong vs. weak typing
- static vs. dynamic typing
- type equivalence
- abstract data types
- enumerations
- type annotation
- Polymorphism
- parameter coercion
- parametric polymorphism
- subtype polymorphism
- ad-hoc vs. universal polymorphism