Preface

Welcome to EN.601.280 Full-Stack JavaScript!

A full-stack JavaScript developer is a person who can build modern software applications using primarily the JavaScript programming language. Creating a modern software application involves integrating many technologies—from creating the user interface to saving information in a database and everything else in between and beyond.

A full-stack developer is not an expert in everything. Rather, s/he is someone familiar with various (software application) frameworks and the ability to take a concept and turn it into a finished product.

This course is designed to provide a solid introduction to the JavaScript language. In particular, we will explore the features of JavaScript (such as asynchronous programming) that are not familiar to many students who are introduced to programming with languages such as Java, C++, or python.

After exploring the core programming concepts, the class lectures and homework assignments will introduce how JavaScript is used as a popular technology for software development. In particular, we will explore Web development with the MERN stack (MongoDB with Mongoose.js, Express.js, React, Node.js).

In the process, you will also learn about the engineering of modern software applications, emphasizing: object-oriented design, decomposition, encapsulation, abstraction, testing, and good programming style.