Module 01 Study Guide
Learning Objectives
Intro (CPL Ch.1)
- List several reasons for studying programming languages
- List and characterize several language categories (such as functional, imperative, etc.)
- Explain the distinction between compilation and interpretation
- Recognize and define programming language design evaluation terminology
- Explain at least one programming language design trade-off
- Name and explain several programming domains
- Identify the influence of machine architecture and programming design methodologies in programming language design
Ruby
- Run the Ruby interpreter on a script or interactively
- Edit Ruby files
- Write Ruby expressions and use Ruby methods on basic built-in types like numbers, strings, etc.
- Use Ruby control structures
- Use Ruby arrays and hashes
- Use Ruby iterators
- Look up information about Ruby classes and methods online
- Write methods in Ruby
Resources
- CPL Chapter 1 (excerpt posted on Canvas in Files tab)
- Slides: Lam
- Your computer: please install a version of Ruby greater than 1.8 on your computer if you do not already have one. See the official Ruby docs for installation instruction. If your computer is a laptop, please bring it to class on Thursday; otherwise you can use JMU laptops.
- Ruby 2.6 Core Documentation
- Ruby Developer’s Guide through JMU Libraries
Lab
Please complete the lab. You may begin it any time. You should try to finish it by Thursday so you can start working on the programming assignment in class on Thursday (please bring your computer if you can).
Deliverables
Course Survey (10%)
Please complete the course survey on Canvas by the due date indicated there.
Online Quiz (40%)
The quiz for the reading portion of this module is on Canvas and due at the time indicated there. You will have an opportunity to re-take a different version of the same quiz next week. If you choose to do the re-take, your grade for this part of the module will be the higher of the two scores.
Programming Assignment (50%)
Please complete the project for the programming portion of this module and submit your code on Canvas by the due date.