Schedule Resources

About this course

This course will teach the basic design and implementation of a web application, with an emphasis on front-end development using Facebook’s React framework. By the end of the course, you should have a basic toolkit to build fully functional web applications for hackathons, personal projects, or freelance work.

The course will provide an overview of component based web frameworks combining HTML, CSS, JavaScript, and Firebase backend-as-a-service. It will also cover industry best practices around agile development, version control, use of build tools, and designing for optimal user experience.

Course Instructors

David Moon Michelle Shu

Course Structure

This course will be structured a differently than your average college class. We will be trying out a “reverse classroom” approach in which you will do the majority of reading and learning on your own time before class. We will then spend the time we have together in the classroom working through coding exercises to apply the concepts you learned earlier in the week. Each class meeting will consist of a lab. After the class and before the next class, you will complete the lab and do some prep work, which may involve reading or tutorials.

In the schedule, you’ll find two columns for each week: Prep and Lab. Everything in Prep should be completed before the class that week so that you can be fully prepared for the in class Lab. It is very important that you come to class each week prepared. Otherwise it will be difficult to complete the exercises and keep up with the class.


The final 5 weeks of the course will be dedicated to a final project, in which you will build a live web application in groups of 2-3. The application should solve a realistic business need. That doesn’t mean that it necessarily has to be business oriented, it could be a game. Your individual participation in this project will be measured by your GitHub contributions.

Course Objectives

  1. Use modern web development practices to create dynamic pages using HTML, CSS and JavaScript (React framework)
  2. Understand HTTP and facilitate communication between a client and server with AJAX.
  3. Use Firebase to implement data persistence, authentication and file storage.
  4. Know fundamental UI/UX design principles to evaluate user’s needs and optimize usability.
  5. Use agile web development practices for project planning and collaboration.
  6. Write unit tests to validate the functionality of web application code.


Collaboration and Academic Integrity

It is acceptable, even encouraged to form study groups and collaborate in understanding course materials. However, all work on homework assignments should be your own. The work on a group project should be done exclusively by members of that group.

CUNY Academic Integrity Policy

A Note on Self-Learning

In the “real world” of a web developer, many times you will find yourself grappling to pick up new concepts or tools that were not explicitly taught to you. In this course, most of the basic foundation knowledge you will need to complete the labs and projects will be provided in resources and during class. However, you should expect to run into situations in which you will have to solve a problem on your own that was not explicitly covered in class. Google and StackOverflow are your best friends in this scenario, but you are also encouraged to ask for help from classmates, instructors or on Blackboard message boards.

Software Required

Services Required

Topics Covered

See schedule for more details.