CSCI 344: Spring 2025

Advanced Web Technology

CSCI 344: Spring 2025

UNCA Logo

Topics

Please note the the schedule is subject to change. It is your responsibility to keep up with the schedule.

Week Start Date Topic
Week 1 Mon, 1/13 topic 1 Intro to the Web

The web and the internet are interconnected systems that facilitate the exchange of data across computers worldwide. Web browsers communicate with servers using the HTTP/HTTPS protocol to fetch and display content, while the internet provides the infrastructure for this communication. Understanding IP addresses, DNS, and how websites are hosted provides a foundation for developing web applications.

Week 2 Mon, 1/20 topic 2 HTML

HTML (HyperText Markup Language) is the backbone of web content, structuring information on web pages. HTML can be used to create semantic, accessible layouts using elements like headings, paragraphs, lists, links, and media. This topic emphasizes the role of HTML in the broader web development process and how it integrates with CSS and JavaScript.

Week 3 Wed, 1/29 topic 3 CSS

CSS (Cascading Style Sheets) is used to control the layout and visual presentation of HTML elements. It allows developers to define styles such as colors, fonts, and spacing, enhancing user experience. CSS also includes techniques like Flexbox and Grid for responsive, modern web designs.

Week 4 Wed, 2/5 topic 4 Design and Accessibility

Design refers to the process of creating an aesthetically pleasing and functional user interface (UI) and user experience (UX). It encompasses layout, typography, color schemes, and interactivity to ensure the site is intuitive, visually appealing, and accessible. Good design is crucial for engaging users and meeting their needs effectively. While design is a huge topic in its own right, we will briefly review some important design principles, and take a quick look at some design tools and systems.

Week 5 Mon, 2/10 topic 5 JavaScript: Foundational Concepts & Programming Review

JavaScript is a versatile, high-level programming language that runs in web browsers, enabling interactivity and dynamic content. In this unit, we will review basic programming concepts using JavaScript.

Week 5 Fri, 2/14 quiz 1 Quiz 1: Web Architecture, HTML, CSS, and Accessibility

Week 6 Mon, 2/17 topic 6 JavaScript: Interacting with the DOM (Document Object Model)

In this unit, we will use JavaScript to manipulate the Document Object Model (DOM) and respond to user-initiated events, and dynamically generate content from data. By the end of this section, you will know enough to start building simple, interactive web applications.

Week 7 Wed, 2/26 topic 7 JavaScript: Functional Programming

Functional programming in JavaScript emphasizes the use of pure functions, immutability, and higher-order functions to create predictable and maintainable code. It encourages a declarative style of programming, where the logic of computation is expressed in terms of functions rather than mutable states. This paradigm helps reduce bugs and enhances code reusability.

Week 8 Mon, 3/3 topic 8 JavaScript: HTTP requests and the Fetch API

The Fetch API is a modern JavaScript interface for making HTTP requests to servers and handling responses. It simplifies fetching resources like JSON data, files, or text from external APIs or web services using promises for asynchronous operations. Understanding how to use the Fetch API, handle response statuses, and work with data formats like JSON is key to building dynamic, data-driven web applications.

Week 8 Fri, 3/7 quiz 2a Quiz 2a: JavaScript

Week 9 Mon, 3/10 holiday Spring Break

Week 10 Fri, 3/21 topic 9 React

React is a popular JavaScript library for building user interfaces, especially single-page applications (SPAs). It allows developers to create reusable components and manage the state of an application efficiently through a virtual DOM. React's declarative approach simplifies UI development and is widely adopted in modern web development.

Week 11 Fri, 3/28 topic 10 JavaScript Review

Today's class will be dedicated to JavaScript programming review. Please review the study guide and practice problems, and come prepared to ask questions!

Week 12 Mon, 3/31 quiz 2b Quiz 2b: JavaScript

Week 12 Fri, 4/4 topic 11 Python

Python is a versatile programming language widely used for web development, data analysis, and scripting. Students will learn the basics of Python syntax, functions, and libraries like Flask or FastAPI for server-side development. This topic bridges the gap between front-end and back-end development.

Week 13 Mon, 4/7 topic 12 Servers

Server-side architectures define how web applications process requests and serve responses from the server. This includes understanding client-server models, HTTP request-response cycles, and technologies like RESTful APIs and GraphQL. A solid grasp of server-side architecture is essential for building scalable and efficient web applications.

Week 14 Mon, 4/14 topic 13 Databases & Object-Relational Mappings

Databases store and organize data used by web applications, while Object-Relational Mapping (ORM) tools allow developers to interact with databases using object-oriented programming. ORMs like SQLAlchemy simplify the process of querying, updating, and managing data in relational databases. Learning about databases and ORMs is crucial for building data-driven web applications.

Week 15 Wed, 4/23 topic 14 Security & Authentication

Web security ensures the protection of applications from common vulnerabilities like XSS, CSRF, and SQL injection. Authentication is the process of verifying user identity so that the application can tailor content and functionality while maintaining data privacy. In this unit, you will learn learn to identify risks and implement best practices such as input validation, secure authentication, and encryption. You will also learn about authentication strategies (e.g., JWT) in order to implement a secure login system.

Week 16 Mon, 4/28 topic 15 Course Synthesis

In this unit, we will reflect on the concepts and skills learned throughout the course, including integrating frontend and backend technologies, ensuring security, and employing best practices in design and coding. We will also discuss some of the considerations not covered in this course and consider some next steps if you want to enhance your learning.

Week 17 Wed, 5/7 quiz 3 Final Exam