Virtual Communication Environments
The main goal of this course is to introduce students in the development of online communities using web technologies.
Students will learn from scratch how to develop a website (using HTML, CSS and Javascript) but also how to use more modern APIs (like WebSockets, Canvas2D or WebGL), and eventually develop their own server (using NodeJS) and the communication layer between client and server. The profile known as 'Full-stack developer'.
This course aims to give the students the tools not only technical but also conceptual to construct virtual spaces where users can share information, collaborate and communicate between each other.
Besides the aforementioned technologies we will also deepen in concepts like network's communications, protocols, security, client/server architecture, besides concepts like usability, interactivity, user experience and virtual communities.
In the final assigment students must develop their own virtual space site from scratch based on their own idea revolving around online collaboration. And they must code a working version of their idea, in groups of two students.
The subject is presented in a very practical way, with theory, seminars, and labs closely intertwined.
Content
The course blocks are:
- The Web (HTML+CSS+JS)
- Javascript
- Online communications (HTTP, WebSockets)
- Server development (NodeJS)
- Virtual Spaces
- Synchronization between peers
- Realtime applications (Canvas2D)
- Databases
- 3D on the web (WebGL)
- Advanced web technologies
Besides the contents, the students will have to code three assigments:
- A chat
- A first version of their virtual community space
- Final version of their virtual community space