• No results found

Art of Code Front-end Web Development Training Program

N/A
N/A
Protected

Academic year: 2021

Share "Art of Code Front-end Web Development Training Program"

Copied!
7
0
0

Loading.... (view fulltext now)

Full text

(1)

Art of Code Front-end Web Development Training Program

Pre-work (5 weeks)

Codecademy HTML5/CSS3 and JavaScript tracks

HTML/CSS (7 hours): http://www.codecademy.com/en/tracks/web JavaScript (10 hours): http://www.codecademy.com/tracks/javascript

Class Textbook: Eloquent JavaScript, 2nd Edition, written by Marijn Haverbeke Book URL: http://eloquentjavascript.net/

Mozilla JavaScript Reference: https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference

Course Lesson Plan (12 Weeks) Week 1 – Language Basics

Session 1: Variables, Types & Operators

Learning objectives: Students should be able to explain and use variables. They should also understand the main types in JavaScript and should be able to explain the difference between primitives and objects. Students should also be able to use logical operators and without running code know how to identify the output of complex logical expressions.

Students should be able to understand how JavaScript stores primitive and complex types in variables. They should also be able to explain how the JavaScript interpreter works and what dynamic typing is.

Homework assignment: Students will receive a problem set where they will have to answer questions that test their understanding of the topics covered in this session.

Session 2: Control flow, Arrays, Iteration

Learning objectives: Students should be able to write simple programs using if

statements combined with variables and operators. They should also be able to explain what arrays are and how they are used. Students should know the common methods that exist on the Array prototype and how to use them to manipulate or retrieve data stored in arrays. Students should be able to use for and while loops to perform actions for a

specified number of times. They should also know how to use looping constructs to iterate through arrays.

Homework assignment: Students will receive a problem set where they will have to answer questions that test their understanding of the topics covered in this session.

Problem Set 1 - TBD

(2)

Week 2 – Object-oriented JavaScript

Session 1: Functions and Objects

Learning objectives: Students should understand how to use functions to enforce code reuse. They should understand conceptually that functions are objects and can be used to create objects by returning them. Students should be able to understand how objects are used and why they are useful. They should be able to articulate when to use objects instead of arrays. They should understand how to iterate through objects using the “for in”

loop and should understand the inherent problems associated with using this construct.

Homework assignment: Based on what was taught in class students will be required to write a function that takes several arguments and returns an object.

Session 2: Constructor Functions, Prototype, Protoypal Inheritance

Learning Objectives: Students will understand how to use functions in JavaScript. They should be able to explain JavaScript concept of prototype and how prototypal inheritance works. Students should also be able to explain the specifics of the prototype chain.

Homework assignment: Students will receive a coding challenge that will test their understanding of the topics covered during this session.

Problem Set 2 – TBD

Week 3 – Code organization

Session 1: Closures and Scope

Learning objectives: Students should be able to explain how scope works in JavaScript and how scope is created by functions. Students should be able to understand and explain the concept of lexical scope. They should know what happens to variables declared in functions after the function is called. Students should understand how to use functions to create private variables. They should also understand the concept of closures and should be able to identify when variables defined in functions will remain stored in memory even after the function that declared them has been called.

Homework Assignment: Students will receive a problem set that will test their understanding of closures and scope in JavaScript.

Session 2: Code organization

Learning Objectives: Students should understand how to use the module, revealing module and factory patterns to organize and share code. Students should understand the concept of the global namespace and why it is bad to clutter it. They should understand how to use modules, byway of functions, to keep the global namespace clean.

Homework Assignment: Students will receive will receive a problem set that will test their understanding of the different ways code can be organized.

(3)

Problem Set 3 – TBD

Week 4 – Document Object Model

Session 1: The DOM

Learning objectives: Students should be able to explain the Document Object Model.

They should be able to use native JavaScript methods as specified by the DOM to query for and manipulate HTML elements. Students should be able to identify the most efficient way to query for elements in the DOM.

Homework assignment: Students will be given a HTML markup and will have to use JavaScript to change.

Session 2: jQuery

Learning objectives: Students should be able to use jQuery to perform DOM manipulation.

They should understand that jQuery is simply a utility library and show understand that vanilla JavaScript is actually working behind the scenes to manipulate the DOM.

Homework assignment: Students will refactor their code from the previous assignment to use jQuery instead of native JavaScript.

Problem Set 4 – TBD

Week 5 – Events

Session 1: Event Handling

Learning objectives: Students should be able to explain what events are and demonstrate proficiency in using them. They should be able to identify and describe how to use events to add interactivity to a website. Students should also understand the concept of callback functions and how to use them to handle events.

Homework Assignment: Students will be tasked with building a simple website that uses events.

Session 2: Event Bubbling

Learning objectives: Students should be able to explain the concepts of event bubbling and event capturing. They should understand the benefits and limitations of using these two techniques.

Homework assignment: Students will receive a problem set that will test their understanding of event capturing and bubbling.

Midterm (take home) – students will receive an example that will ask 20 questions testing their understanding of the material. They will also have to create a simple quiz game using HTML, CSS and JavaScript.

(4)

Week 6 – Asynchronous JavaScript

Session 1: AJAX and JSON

Learning Objectives: Students should be able to explain how AJAX works and use jQuery to make AJAX requests to an API to receive data. They should be able to explain how JSON maps to a database and should be able to write programs that will post data to a server. In addition, they should have the ability to display this data.

Homework assignment: Students will receive a coding challenge that will test their understanding of the topics covered during this session.

Session 2: Node.js

Learning Objectives: Students should be able to explain how JSON can be created from database data. They should be able to explain the major concepts behind Node.js

including the event loop, asynchronous callbacks. Students should also be able to explain MVC and how MVC frameworks can be used to create RESTful applications.

Homework Assignment: Students will be asked to create a simple REST API using Node.js and Express.js

Project 1 – Students will take what they learned during the first half of class and build a simple website that has interactivity.

Week 7 – Advanced Asynchronous JavaScript

Session 1: HTTP, REST

Learning Objectives: Students should understand HTTP and HTTP actions. They should understand what rest is and how it relates to HTTP.

Homework assignment: Students will receive a problem set that will test their understanding of the topics covered during this session.

Session 2: Promises

Learning Objectives: Students should understand how data can be returned from the server out of order thus causing bugs in our programs. Students should understand how to use promises to ensure that these kind of bugs do not occur.

Homework assignment: Students will receive a coding challenge that will test their understanding of the topics covered during this session.

Problem Set 5 – TBD

(5)

Week 8 – JavaScript Gotchas!

Session 1: Gotchas Part I

Learning Objectives: Students will learn several “gotchas” in the JavaScript programming language and how to avoid them.

Homework assignment: Students will receive a coding challenge that will test their understanding of the topics covered during this session.

Session 2: Gotchas Part II

Learning Objectives: Students will learn about more “gotchas” in the JavaScript programming language and how to avoid them.

Homework assignment: Students will receive a coding challenge that will test their understanding of the topics covered during this session.

Problem Set 6 – TBD

Week 9 – Browser Performance

Session 1: Cross Browser Compatibility Issues

Learning Objectives: Students will learn about the different bugs in JavaScript and HTML/CSS across the browsers maintained by different vendors.

Homework assignment: Students will receive a problem set that will test their understanding of the topics covered during this session.

Session 2: Memory Management Cycle

Learning objectives: Students should understand how memory is managed in JavaScript.

They should be able to explain how garbage collection works and how items are signaled to be cleaned up by the garbage collector.

Homework assignment: Students will receive a problem set that will test their understanding of the topics covered during this session.

Problem Set 7 – None. Work on Project 2.

Week 10 – Build Tools

Session 1: Students will receive a short lecture on the different build tools that can be used to automate development tasks (i.e. Grunt, Gulp, Bower) followed by open office hours for help with projects.

Homework: Work on projects.

Session 2: Students will receive a short lecture on the different plugins they can use in their build tasks to minify and test code quality (i.e. Uglify, JSHint, ) followed by open office hours for help with projects.

Homework: Work on projects

(6)

Problem Set 8 – None. Work on Project 2.

Week 11 – Open Session 1: TBD

Learning Objectives: TBD Homework Assignment: TBD

Session 2: TBD

Learning Objectives: TBD Homework Assignment: TBD

Problem Set 9 – None. Work on Project 2.

Week 12 – Open Session 1: TBD

Learning Objectives: TBD Homework Assignment: TBD

Session 2: TBD

Learning Objectives: TBD Homework Assignment: TBD

Project 2 Due – Students will take what they’ve learned during the first half of the course and build a more complex web application that sends to and receives data from an API that was created using Express or a cloud computing platform.

Final Examination and Projects

Written Final Exam (Cumulative) – The final written example will be closed book and will focus on testing student’s understanding of the course material. The example will consist of approximately 50 multiple choice and essay questions.

Oral Exam/Interview – The oral examination will take approximately 30 minutes and will consist of basic JavaScript questions in addition to several white-boarding exercises. This will take place one month after class ends and will be administered before they present their final project.

Final Projects – Students will have one month after class to work on and submit their final projects. Students can pick any idea/website they would like to build. Ideas for final

(7)

projects are due on the last day of class. Students will have to demo their projects and walk through the code that they have written to produce them. Students will be

encouraged to explore and use third-party libraries and frameworks that were not covered in class as this is often what developers will have to do in the real world.

Additional Course Materials

Sublime Text 2 Google Chrome

LINUX Operating System Laptop Computer

Soft Skills

The soft skills that will be taught to students are basic interviewing skills. These skills include knowing their resume, having stories that explain how they work in teams, solved problems or acted under pressure to accomplish a goal or meet a deadline. Students will be taught how to read the interviewer and try to find things they may have in common to make the interview go much smoother.

In addition to learning how to interview well students will learn how to work on teams through team-building exercises in addition to training on public speaking and presenting.

References

Related documents

Employee Informal economy The person is a … Informal employment in the informal sector Informal employee Formal employment in the informal sector Formal employee OAW - Own

Here, we present results from the Water, Sanitation, and Hygiene for Health and Education in Laotian Primary Schools (WASH HELPS) study, a cluster-RCT designed to measure the impact

Student affairs professionals should prepare themselves as best as possible to be advocates for the needs of students with visible and invisible disabilities just as social

If two-thirds of the Lions members in good standing vote to terminate sponsor- ship of the Leo club, an officer of the sponsoring Lions club should submit a written request to

You want to build a website or landing page for you new app or business, or you want to gain a technical knowledge so you can communicate effective your technical co-founder..

To gain a deeper understanding of the role of the heart in accessing intuitive intelligence and thereby lifting consciousness, it is first prudent to discuss how memories of

This being the true state of the Arminian notion of liberty, the writers who defend it are forced into gross inconsistencies, in what they say upon this subject. To instance in

Using course web site report data, student grades, and redesigned course evaluations, we aimed to determine whether these modifications have led to increased interaction,