General Information
- Date: Tuesday, Apr 24, 2018
- Time/Location: Your exam will take place in lecture.
- Duration: 75 minutes
- 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.
- The best way to prepare for the exam is to practice old exams. Complete several
of them in the allocated time specified in the exam.
- We curve in this course. After you taken the exam, do not discuss
anything associated with the exam with other students that have
not taken the exam yet.
- 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
- CSS Selectors
- id selectors
- class selectors
- type selectors
- 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: indexOf, join, reverse, sort, forEach, map, every, some, find, filter, reduce, push, pop
- 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/Freezing Objects
- Error
- strict mode
- apply, call, bind
- Event Propagation
- Generator Functions (also generators in classes)
- Immediately Invoked Functions
- Defining custom types using class construct (similar to Java)
-
localStorage
The exam will NOT cover the following topics:
- XAMPP configuration, jQuery, PHP coding
- 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, textarea.
-
iframe, video tag, audio tag, canvas tag, svg tag, File Reader API, Geolocation
API.
- SQL
Practice Material
PreviousExams.zip:
Notice that previous exams may cover material that is not part of this midterm.