A. Understanding Fundamental Front-End Technologies
Description: During the first part of the course (4-5 weeks), an overview of the history of the Internet, the HTTP protocol, and web security issues will be provided. Students will become familiar with front-end technologies, specifically the HTML5 markup language and the CSS3 style sheet language. Subsequently, the JavaScript programming language, which is the primary language used for interaction with web browsers, will be introduced. The course will then address issues related to the implementation of input and output functionalities on web platforms (e.g., forms) and will examine the development of asynchronous web applications through AJAX. Finally, widely used front-end libraries (e.g., jQuery) and selected basic APIs will be presented.
Objective: The objective of this section is to enable each student to create their own website using widely adopted input and output services and to effectively utilize the technologies covered during this part of the course. In addition, students will develop a simple game using HTML and JavaScript to enhance their familiarity and proficiency with the language.
B. Understanding Fundamental Back-End Technologies
Description: The second part of the course (4-5 weeks) focuses primarily on the server side (back-end) and its interaction with the front-end. Particular emphasis will be placed on the technologies of Node.js and Express.js, with brief references to other related technologies. The course will also introduce methodologies and technologies for session management and rapid application development, including Cookies and Sessions. Furthermore, web services will be examined, with a focus on RESTful architecture as well as GraphQL.
Objective: The objective of this section is to enable each student to develop web applications that seamlessly integrate interactions between the back-end and front-end components.
C. Introduction to Additional Technologies
Description: In the final part of the course (2-3 weeks), students will be introduced to web services and emerging technologies for both back-end and front-end development. An introduction to a selected back-end framework will be provided, while front-end libraries and frameworks, such as Angular, will also be presented. Additionally, lectures will be delivered on the development of web applications for Android, as well as on XML and RDF technologies.
Objective: The objective of this section is to provide students with an initial exposure to these technologies and familiarize them with their fundamental concepts and applications.
he nearly ubiquitous ability to connect to the Internet and access information through web browsers has made the use of web-based information systems highly beneficial, if not essential. The key distinction between web applications and traditional software applications lies in the fact that web applications are deployed and operated through the Internet. As an infrastructure platform, the Internet possesses unique characteristics that make the development of web applications both distinct and challenging. For example, a system’s input and output functions must be implemented using the capabilities and technologies provided by web browsers (front-end), while the system’s business logic, which may already exist, must be encapsulated so that it can be executed through web servers and the stateless HTTP protocol (back-end). In general, web programming focuses on the development of applications at the application layer of the TCP/IP protocol stack.
This course provides an introduction to the technologies required for the development of modern web applications and is organized into three main sections.
The primary objectives of the course are:
- To understand the importance and role of web applications in contemporary society.
- To understand the Internet as a platform-independent software development environment.
- To identify and explain the differences between web-based software and conventional software applications.
- To gain familiarity with Internet software technologies from both the client side (web browsers, JavaScript) and the server side (Node.js).
- To develop the ability to design and implement a complete and complex web application based on a realistic use case, fully exploiting the capabilities of both the client and server sides, as well as the HTTP protocol.
- To become familiar with technologies such as REST, GraphQL, and Android development, and to understand their application in solving real-world problems.