Javascript technology 2016

From Rost Lab Open
Revision as of 05:47, 27 January 2016 by Gyachdav (talk | contribs) (Preparation)


The anatomy of a javascript system - participating students get hands on experience with designing and building a modern javascript applications. the student will research the literature on design concepts and available technologies including the use of common JavaScript libraries. The students will prepare presentation and introduce the concepts they chose to use. Each talk is summarized by the students in a seminar thesis.

This is a completely hands-on seminar which means that you should be building your own app (no ripping off code from somewhere on the internet), prepare a presentation explaining what you did and describing the javascript concepts you were using and writing a seminar report at the end of the term.

Pre Requisites

Students are expected to have:

  • basic familiarity with Javascript
  • Basic knowledge of relational databases and NoSQL databases
  • Interest working with big data
  • Interest in the Game of Thrones show
  • Interest in challenge themselves to do something totally cool
  • participation in all meetings throughout the presentation week is mandatory. We would only consider one absence that is justified and communicated and approved well in advance.

New This Semester: The Game of Thrones Edition

New this semester: Game of Thrones meets JavaScript!

In this seminar we will tell some of the Game of Thrones’ stories using data that we acquire on the web. Many fans of the Ice and Fire books and of the HBO show have amassed a lot of data about the plot, the characters, the great houses of westeros, the history and culture of the world of Ice and Fire, and in general anything you can think about this cultural phenomenon. The sixth season of Game of Thrones will start in April and we hope to have our apps ready in time for the new season. In the projects described below we will focus on building a database mashup of heterogenous data from multiple sources. The data will be used as an input source for machine learning and natural language processing applications, the results of which will be visualized and presented on our community website. Most if not all of the code, libraries and solutions used for these projects should be done in JavaScript. If for some reason you cannot use JavaScript for any component in your project you should consult the tutors first and get their approval.

For instance consider the following toy project - I wanted to analyze the balance of power in Westeros right around the period discussed in the "A Clash of Kings" book. To do this I had to pull data from the wiki of ice and fire -- a wiki site that acts as the most comprehensive source of information about the world of Ice and Fire. The data from the wiki helped me construct a visualization that shows a network of allegiance (appear as edges in the network) of the great houses (appear as nodes in the networks). Here is the visualization - clicking on nodes will give you detail information and you can use the mouse wheel to zoom and navigate the network.


  1. Check list to pass the seminar
  2. Register on TUM Online for this seminar
  3. Upon acceptance on TUM Online (Feb. 19th), join the seminar’s Google group:!forum/javascript-technology-2016.
    1. use only the Google group for communication with tutors (expect huge delays in responses to emails sent to tutors’ private addresses otherwise). The tutors will use this group also for general announcements.
    2. students are encouraged to answer questions of their fellow students posted in the Google group!forum/javascript-technology-2016
  4. check the mailbox of the email address you used to sign up to the Google group regularly!!!
  5. Upon acceptance to the Google group, send a notification with the group number you would like to join. The tutors will then update the ‘groups assignment’ table below with your name.
  6. Each group will be assigned one topic and one project to present in the week from March 14th to March 18th. Please see the guidelines for topic and project presentations below.
  7. The slides for your topic presentation and the preliminary visualization of your project results are due for comments 1 week before the presentation date. Send your drafts to presentations to
  8. Make sure to read these Hints and Rules for great presentations
  9. Submit a 5 pages long report (one per group) describing solutions to your topic (4 pages) and the project (1 page). Due: 1 week after the seminar.


Presentations are due for comments 1 week before the presentation date.

The mini web app should be ready and functional at the dat of the seminar. All code should be available for other class participants to check out. You are highly encouraged to use git hub as the repository for your code.

Tips for your presentation

The presentation should:

  1. introduce to the class the javascript concept you are using in your web-app,
  2. focus on why you chose to use one technology over the other, if you tried more then one concept show the way you experimented and measured key software engineering metrics such as code performance, readability, reusability etc.
  3. while you are requested to show your work do not show us heaps of code, instead focus on the interesting parts of your code that highlight implementation decisions.
  4. A demo of the working app is required


READ THIS PAGE: Hints and Rules for the seminar. Keep in mind that the rules on this page supersede any conflicting recommendation on the hints page.

Presentation Schedule

Group Date Time Topic Assigned to Slides Source
1 March 14 10:00 Language basics -- grammar, variables, data structures, control structures, conditionals, functions etc.
2 March 14 11:00 Object oriented javascript
3 March 14 12:00 The module pattern and AMD
4 March 15 10:00 The event handling system using using anonymous functions, callbacks, promises etc.
5 March 15 11:00 Functional reactive programming frameworks
6 March 16 10:00 Server side JavaScript with Node.js basics
7 March 16 11:00 The MEAN stack
8 March 17 10:00 Web development basics: DOM, DOM manipulation, styles
9 March 17 11:00 Web development frameworks (Angular, Backbone, React)
10 March 17 12:00 Data visualization using SVG, Canvas and framework libraries
11 March 18 10:00 Build tools, continuous integration and distribution
12 March 18 11:00 EcmaScript 6 (es6) language features


  1. JavaScript: The Definitive Guide, 6th Edition
  2. (Highly recommended:) JavaScript: The Good Parts
  10. Advanced Reading JavaScript Garden - the most quirky parts of the JavaScript programming language