Final Exam Information
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.25 hours to take the exam.
The exam takes place Wednesday June 6 from 8:30 AM to 10:45 AM in the regular classroom (CDM 218).
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 encrypted passwords
- Login and session storage
- Access control
- Filter methods (before_action, use of skip_before_action)
- Checking user status (logged in, name of user)
- 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, Django
- 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