This course is designed to help students understand how the basic set of Web technologies operate and learn how to use them in order to build Web applications.
The course is roughly divided into 4 learning units:
1. Client representation (lectures 1-3),
2. Client programming (lectures 4-7),
3. Server programming (lectures 8-12),
4. Trends of Web Development (lectures 13-15).
After completing Unit 1, you will:
• know the main Internet communication protocols and understand their characteristics
• be able to write well-structured, easily maintained, standards-compliant HTML5 code
• understand the need and requirements of the accessibility standards and be able to produce accessible HTML content
• be able to write well-structured, easily maintained, standards-compliant CSS3 code • understand the need and requirements of the responsive design and be able to tailor the presentation of your HTML to users’ platforms using CSS-based responsive design/
After completing Unit 2, you will:
• be able to use JavaScript to implement interactive, event-based Web pages
and you will understand
• the basics of JavaScript language (variables, basic data types, control flow, functions) and be able to write simple JavaScript code
• Document Object Model and be able to access and modify it with the help of JavaScript
• the relations between functions and prototypes, understand the nature of JavaScript “classes”, be able to write OOP code in JavaScript
• the flexible nature of JavaScript functions, understand the concept of callback functions, be able to write basic functional code with JavaScript
• such components of the JavaScript browser environment as event loop, call stack and callback queue, be able to write basic asynchronous JavaScript code
• the basics of XML and XML Schema, understand JSON, be able to process XML and JSON with JavaScript
After completing Unit 3, you will:
• know the main Internet communication protocols and understand their characteristics
• be able to implement secure Web applications
• be able to implement typical Express middleware (logging, routing, error handling, serving static files, DB access, session management)
and you will understand
• the typical 3-tier client-server architecture of Web applications
• the characteristics of Node.JS as the Web server development technology
• the workflow of a Web server and Node.JS/Express.JS server in particular
• how to maintain and control user state in Web applications between the client and the server
• cookies, their characteristics and categories, be able to create, modify, delete, process and communicate cookies
• the basics of session management in Web applications, be able to create and maintain sessions
• AJAX-based communication between client and server, be able to program interactive Web-application suing AJAX
• the basics of DB management in Web applications, be able to program communication between an SQLite data base and an Express.JS web server
• the basics of Web security, recognize main vulnerabilities of Web applications according to the OWASP list of top ten
After completing Unit 4, you will:
• recognize several trends of Web development (Adaptive Web, Semantic Web, Social Web)
and you will understand
• the concept of personalization, its role in Web applications and problems it can help to solve
• the concept of a user model/profile, how it is populated and used in adaptive applications
• the task of personalized Web search and how Web search can be personalized
• the task of adaptive hypermedia and different techniques it uses
• the task of adaptive recommendation and collaborative filtering approach in particular
• the potential dangers of Adaptive Web
• the purpose of Semantic Web technologies
• the basics of RDF, RDFS and OWL
• the concepts of metadata and linked data
• the basics of Schema.org
• the characteristics of Social Web applications
• the challenges of building Social Web applications
Assessment
- assignment 1 Static Webpage (HTML, Accessibility, CSS, Responsive design): 10% of the final mark
- assignment 2 Dynamic Webpage (Client-side JavaScript): 15%
- assignment 3 Web application: 25%
- midterm exam lectures 1-7: 25%
- final exam lectures 8-15: 25%
To pass the course you need to:
• submit all assignments (hence, even if an assignment is not fully complete, do submit it to get a non-zero grade for it);
• obtain the average assignment grade of 4.0 or more;
• take 2 exams (the retake can be used to substitute a missing exam);
• obtain the average exam grade of 4.0 or more;
• obtain the overall course grade of 5.5 or more.
The retake exam will cover the entire course material. It is used as a substitute for either the midterm or the final exam.
If you miss one of the exams, score too low on the exams (the average exam grade is below 4.0), or get the overall course grade between 4.0 and 5.5, you are eligible for a retake.
You cannot retake assignments.
If you want to get the best possible grade, treat the deadline for assignments as strict. If you miss a deadline, you have one more day to submit the assignment by e-mail, but you loose 30% of the grade for it.
Prerequisites
The course has no formal prerequisites. However, basic knowledge of programming is expected.
Although this is an introductory course, many students taking it have had experience with some aspects of Web development.
If you do not have any knowledge of HTML, CSS and JavaScript, you definitely can get a high grade in the course, but you will need to work hard for it.
|