Final exam and Review
The final exam is a comprehensive, closed-notes,
closed-book, individual-effort exam. It is worth 70 points (35%
of the class grade). The format and style of the questions will
be similar to those on the midterm test. These include multiple
choice, short-answer (a
phrase to a couple of sentences), extended answer (a
paragraph) as well as questions that ask you to predict the output and write some simple code (usually based on examples in the exam).
The exam is written to be completed within 1.5 hours. However,
everyone will be allowed up to 2.5 hours to take the exam.
Course concepts
- Model-View-Controller Architecture
- Object-relational mapping (ORM)
- Rails principles
- Don't repeat yourself (DRY)
- Convention over configuration
- Iterative development
- Models
- Validations
- Virtual attributes
- Migrations
- Controllers
- Assigning instance variables, usually from a database
- Render or redirect
- Access filters
- Views
- Tags for ruby code
- Showing ruby expressions
- Using helper methods (e.g. link_to)
- Elementary uses of HTML and CSS
- Creating forms
- Simple forms vs. model-based forms
- Parameter names and using parameter values in the controller
- GET vs. POST methods for submitting forms
- Authentication
- Use of salt and encrypted passwords
- Login and session storage
- Access control
- Filter methods
- Checking user status (logged in, admin status)
- Table relationships
- Database diagrams
- Relationship types (e.g. belongs_to)
- Foreign keys
- ORM
- Ruby and object-oriented concepts
- Terminology: constructor, object, class, inheritance
- Use of each to iterate through a list
- Simple control structures
- Routing
- Simple controller/action routing
- Resource-based routing (used in scaffolding)
- Comparison to other frameworks
- Major frameworks: PHP, Java Servlets and Java Server
Pages, ASP.NET, PHP
- MVC vs. page-centric architecture
- ORM vs. SQL-based
- Compiled vs. interpreted
Objectives
You should be able to do the following:
- Explain and modify
- Controller code
- Forms
- Object-based database access
- Identify and explain terminology
- Provide examples
- Present the process for creating or modifying web app components
- Presenting data models, their attributes, and relations
between models