##Course Description Olin.js is a project oriented approach to learning modern web application development. With server and client technology advancing so rapidly, the modern website looks very different from that of even a few years ago, and the web will only become a bigger part of our lives in the near future. Olin.js will quickly familiarize students with Node.js as a web server framework and ES5 JavaScript as a responsive client-side language with three weeks of introductory instruction and four weeks of partner labs.
Along the way, students will learn the basic layout of the web, how to deploy and maintain large applications, important development strategies, skills, and technologies, and how to design and manage complex, multi-developer software projects. Students will spend the last six weeks of the course putting their knowledge and skills to the test by designing and developing their own web applications.
###Learn Web Development If you stumbled across this repository and feel like learning some web development, please follow along with us! This repository contains all of the lesson material and assignments to get you going. Feel free to submit a Github issue if you find any problems in the course and we'll do our best to fix it up.
##Course Contents
- Lesson 0 - Getting Ready for the Course
- Lesson 1 - Course Introduction and The Internet
- Lesson 2 - Intro to Javascript
- Lesson 3 - Express, Templating, and MongoDB
- Lesson 4 - The Client
- Lesson 5 - Sessions, Users, Errors, CSS, and Debugging
- Lesson 6 - Application Integration
- Lesson 7 - Unit Testing and Task Running
- Lesson 8 - Architecture and Diagramming
- Lesson 9 - Application Frameworks (Lab 1)
- Lesson 10 - Security
- Lesson 11 - Deployment and Scaling
- Lesson 12 - Agile Project Management
- Lab 1
- Lab 2
- Final Project
##Learning Objectives
- Understand the modern internet and web applications
- Become adept with JavaScript, Node, and database technologies
- Learn software design skills and strategies relevant to web infrastructure
- Work effectively as a member of a project team
- Balance scope and design decisions to complete a viable web application
- Communication and presentation of code and software projects