Course Information

This course will teach you programming in JavaScript and introduce you to several JavaScript frameworks that will enable you to build modern web applications.

A full-stack JavaScript developer is a person who can build modern software applications using primarily the JavaScript programming language. Creating a software application involves integrating many technologies--from creating the user interface to saving information in a database and everything else between and beyond. A full-stack developer is not an expert in everything. Instead, s/he is someone who is familiar with various (software application) frameworks and has the ability to take a concept and turn it into a finished product.

A student who completes this course will be on the expedited path to becoming a full-stack JavaScript developer.

Pre-requisites

Students must have taken EN.601.220 Intermediate Programming or EN.601.226 Data Structures. Students must not have taken or been concurrently enrolled in EN.601.421/621 Object-Oriented Software Engineering. Students who do not formally meet the pre-requisite may be enrolled by permission of the instructor.

You should have modest exposure to a programming language such as Java, C++, or Python:

  • know the basics of structured programming (decomposing a solution into modules, making use of control structures, etc.)
  • know the basics of object-oriented programming (modeling a solution as a set of interacting objects, capturing complexity through the use of inheritance and object composition, etc.)

Course Topics

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 the MERN stack (MongoDB with Mongoose.js, ReactJS, Express.js, Node.js) and several other JavaScript libraries.

This course will address the following Computer Science BS Program Student Outcomes:

  • Analyze a complex computing problem and apply principles of computing and other relevant disciplines to identify solutions. [SO1]
  • Design, implement and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program's discipline. [SO2]
  • Apply computer science theory and software development fundamentals to produce computing-based solutions. [SO6]