Web Programming (Spring 2025)

Author

Josue Obregon

Web Programming

Course Outline

In this module, students will gain a comprehensive introduction to web development, focusing on both the foundational and advanced aspects of creating modern web applications. The course begins with the basics of web programming, including HTML, CSS, and JavaScript, and progresses to more complex topics such as DOM manipulation, asynchronous JavaScript, and API integration.

Students will explore server-side development with Node.js along with SQLite. The module also covers modern front-end development using React, with emphasis on building interactive and dynamic user interfaces. Advanced topics include Continuous Integration (CI) and Continuous Deployment (CD) processes for testing, web hosting, and containerization to ensure efficient and scalable application deployment.

Through hands-on projects and a final presentation, students will apply their learning to design, implement, and deploy full-stack web applications. By the end of the semester, students will have practical experience and a solid understanding of web development principles, tools, and workflows.

General Course Objectives

By the end of this course, students will be able to:

  1. Design and implement web applications using JavaScript, SQL, HTML, CSS, and React.
  2. Apply best practices in application design, including scalability, security, and user experience optimization.
  3. Write and utilize APIs, manipulate the DOM, and create dynamic, interactive user interfaces.
  4. Test, containerize, and deploy web applications on the Internet using modern CI/CD workflows.

Course Calendar

Here you can find all the dates and times for lectures, assignments, readings, and so on. Below is the general calendar for the class. Please keep in mind that it might slightly vary every semester.

  • You are expected to finish readings before class. They are chosen and designed to enhance lecture topics and learning.
Week Topic Slides Readings
1 Intro to Web Techonologies Slides0
Slides1
- Client server communication
- Type of web developers
- Intro to HTML
- HTML Reference
- Website Structure
2 CSS Slides What is CSS?
- CSS Combinators
- Cascade, specificity and inheritance
- Flexbox (background and terminology section)
3 Introduction to JavaScript Slides - Node.js for Beginners, Chapter 3
- Intro to JS
- Data structures and types
- JS Functions
- JS Objects
4 DOM Manipulation with JavaScript Slides - Intro to events
- querySelector
- addEventListener
- Intro to the DOM
5 Asynchronous JavaScript Slides - Intro to asynchronous JS
- How to use promises
- async/await explained
6 HTTP, API, JSON and AJAX Slides - Overview HTTP
- API non-technical explanation
- Intro to JSON
- Fetch
7 JavaScript Exercises -
8 Midterm -
9 Node.js and Express Slides - Node.js for Beginners, Chapter 1, 2, 5 and 9
- Intro to Node.js
- Intro to Express
10 POST and Full Stack Websites Slides
11 Data Persistence in Node JS Slides
12 Authentication and authorization Slides Mastering API architecture book, Chapter 7
Node.js for Beginners book, Chapter 13
13 Testing & Integration in Web Applications Slides Node.js for Beginners book, Chapter 8, 11 and 17
14 Final examination -
15 Project revision -