Web Programming

Instructor: Hamid Zarrabi-Zadeh Certificate: Official (bilingual)
Term: Summer 2025 Prerequisite: Python Programming
Schedule: Sunday 17:00-20:00 Online Class: Online Class

General Objective

The objective of this course is to familiarize students with the fundamental concepts and principles of web application design. In this course, students will learn about both client-side and server-side programming and their interaction, while also becoming acquainted with Django as one of the most prominent and widely-used Python-based frameworks for professional and efficient web application development.

Topics

  • Frontend Design (6 sessions)
    • HTML page design, elements and attributes, formatting, lists
    • Forms, semantic elements, multimedia elements, design recommendations
    • CSS styling, inheritance and cascade, selectors, custom font embedding
    • Page layout, box model, floating display, pseudo-classes, responsive design
    • JavaScript, ES6+ concepts, modules, classes, destructuring
    • DOM model, element manipulation, event handling, async functions, applications
  • Server Interaction (2 sessions)
    • Python web server, CGI interface, form processing, WSGI interface
    • Using AJAX, server communication, working with APIs, JSON data exchange
  • Django Framework (10 sessions)
    • Basic concepts, installation and setup, components, overall architecture
    • Creating a project, defining models, setting up admin, adding views
    • Template layer, template language, base template, built-in filters
    • Model layer, object-relational mapping, model relationships, inheritance
    • Data querying, query types, data management
    • View layer, URL mapping, request/response objects, generic views
    • Form processing, built-in widgets, validation
    • Authentication, access control, user and group management
    • Decorators, definition methods, variable arguments, Django applications
    • Deployment phase, using Docker, web server configuration, packaging, optimization

Assessment

  • Practical exercises (6 points)
  • Project (5 points)
  • Final exam (10 points)

References

  1. J. Wolf. HTML and CSS: The Comprehensive Guide. Rheinwerk Computing, 2023.
  2. D. Flanagan. Javascript: The Definitive Guide. 7th Edition, O'Reilly Media, 2020.
  3. B. Shaw, S. Badhwar, and C. Guest. Web Development with Django. 2nd Edition, Packt Publishing, 2023.
  4. M. Fowler, D. Rice, M. Foemmel, E. Hieatt, R. Mee, and R. Stafford. Patterns of Enterprise Application Architecture. Pearson Addison-Wesley, 2003.