Programming Foundations with JavaScript


In this course, we'll increase the level of complexity from the Programming Prep course and work on more meaningful exercises.

After some preliminary work getting set up, we'll dive right into writing some simple, but complete, applications using the open-source, cross-platform, JavaScript runtime environment called Node.js. This program executes JavaScript code without the need of a browser, and is commonly used for back-end programming tasks.

We'll take a step-by-step approach to writing our first application, then introduce some tools like pseudocode and flowcharting to help you plan your approach in advance. We'll also introduce the ESLint tool tol help you stick to JavaScript coding guidelines and avoid some of its pitfalls. Along the way, we'll point out important learning concepts like scope, data types, how argument passing works, and coercion. function scope, and using blocks. We'll also spend considerable time exploring strings and arrays, and how to iterate over their individual components. After this course, you should have a good grasp of how to write programs and think in an imperative, step-by-step, logical fashion. You will also learn to debug and trap tricky bugs, and learn to develop a temperament for debugging. You'll also get a ton of practice with both small, focused problems and larger applications.

Major Topics

  • Using Node.js
  • JavaScript language and syntax
  • When to use certain data types
  • Using Pseudo-code and Flowcharts for problem decomposition and analysis
  • Use a static code analyzer
  • Learn to debug small programs
  • Understand scope
  • Understand function arguments
  • How to iterate over strings and arrays.


Programming and Back-end Development


Detailed Syllabus

Start with Small Programs

  • JavaScript style
  • Build a calculator
  • Think with pseudo-code
  • Use flow charts to map out logical sequence
  • Use ESLint to enforce styles
  • Refactoring our calculator program
  • Debugging
  • Extra features for the calculator program
  • Explicit and implicit type coercion
  • How to write better code
  • Build a mortgage calculator
  • Variable scope
  • Objects vs primitive values
  • Build a Rock-Paper-Scissors game
  • RPS game bonus features

Practice Problems

  • Easy 1
  • Easy 2
  • Easy 3
  • Medium 1
  • Hard 1

JavaScript Collections

  • Collections basics
  • String methods
  • Iteration
  • Introduction to PEDAC
  • Selection and transformation
  • Array Methods
  • Practice Problems

Advanced JavaScript Collections

  • Sorting
  • Nested Data Structures
  • Callback Functions
  • Practice Problems


  • Assessment Format
  • Study Guides
  • The Exam
  • The Interview
  • Feedback