General Information
- Date: Monday, May 14, 2018
- Time: 8 am - 10 am (Exam is in the MORNING)
- Duration: 120 minutes
- Location: ESJ
2204
- Closed-book, Closed-notebooks, No Computers/Calculators.
- Use a pencil/mechanical pencil (no pen) to answer the exam.
- Please bring a stapler if you tend to separate the pages of the exam.
- Please take a look at the general exam rules available at
Exam Rules.
- Posting any information in Piazza about the exam after taking it
is considered an academic integrity violation.
Exam Structure
- Short answer questions: This includes for example, multiple
choice, true/false, and fill-in-the-blank type questions.
- Code analysis questions: We will give a short segment of code and
you may be asked to identify syntax and logical errors, generate code
output, etc.
- Code Writing: Write a program/code snippets to solve a given
problem. You should be prepared to give a complete program, but we may also
ask you to provide just a single function or a code fragment.
Topics
The exam will include all the material covered
in lecture and projects including the following topics:
- Only the following HTML
- How to define tables.
- How to define ordered and unordered lists.
- How to define forms using text fields, hidden fields and
submit buttons. You don't need to know any other form
elements (e.g., radio buttons, etc.)
- Other tags you should be familiar with:
- <br>
- <strong></strong>
- <em></em>
- <h1></h1>
- <div></div>
- <span></span>
- <p></p>
- <pre></pre>
- <img>
- <a></a>
- <img>
- Only the following CSS properties
- color
- font-size
- background-color
- table properties: border-collapse
- CSS Selectors
- id selectors
- class selectors
- type selectors
- SQL
- how to create a table of strings and integers
- how to insert a record in a table
- how to delete a record
- how to display the table
- Server Side Includes
- PHP Language
- echo
- print
- variables
- superglobals
- expressions
- casting
- constants
- conditional statements
- iteration statements
- functions
- default arguments
- arrays
- foreach
- array_keys(), count(), array_values(), functions
- string functions: only explode() and trim()
- include functions: only require_once
- heredoc
- self-referencing scripts
- header function
- type conversions
- processing information submitted via forms using PHP
- reading/writing from files
- cookies
- sessions
- array_map
- random_int()
- htmlspecialchars, htmlentities
- data types hinting
- serialization
- iterators
- namespaces
- exceptions
- spaceship operator
- Object-Oriented PHP
- defining classes and interfaces
- constructor
- using $this
- __toString
- parent::
- static fields and methods
- public, private, protected
- const
- ::self
- get_class
- JavaScript
- JavaScript data types
- Expressions
- prompt
- alert
- console
- typeof
- instanceof
- let, const
- for of
- template Literals
- isNaN()
- generation of random values
- iteration constructs(while, for in, etc.)
- functions
- arrays
- JSON
- string methods: toLowerCase, toUpperCase, trim, split, indexOf
- array methods: push, pop, indexOf, join, reverse, sort, splice, forEach, map, every, some, find,
filter, reduce, findIndex
- default parameters
- rest operator
- spread operator
- arrow functions
- symbols
- sets
- maps, weakmaps
- form validation using JavaScript
- DOM
- document.getElementById
- getAttribute, setAttribute
- innerHTML
- JavaScript object definition
- Prototypes, execution context, constructor/prototype/default pattern,
private variables, private functions
- Object properties
- Objects as associative arrays
- Ajax
- Sealing/Freezzing Objects
- Error
- strict mode
- apply, call, bind
- How to define classes using E6 syntax (class, constructor, extends, etc.)
- Event Propagation (capturing, bubbling)
- Immediately Invoked Function Expressions (IIFE)
- parseInt
- Number.isInteger
- localstorage
- Web Services
- NodeJS Concepts (no coding)
- Express Concepts (no coding)
The exam will NOT cover the following topics:
- XAMPP configuration, Bootstrap, PHP date functions,
DNS
- You don't need to know the JavaScript code used to identify which element
has been selected in checkboxes, drop-down lists, scrollable
lists, radio buttons, textareas
-
Regular expressions, iframe, video tag, audio tag,
canvas tag, svg tag, geolocation, jQuery
- Security information provided in slides
- Frameworks
- File reading using the JavaScript API
Practice Material
Take a look at old midterms we have already posted. We do not post old final exams.