Javascript technology 2016-2

From Rost Lab Open
Revision as of 12:25, 11 August 2016 by Gyachdav (Talk | contribs)

Jump to: navigation, search

Contents

Description

The anatomy of a JavaScript system - participating students get hands-on experience with designing and building a modern client side JavaScript web application. The students will research the literature on design concepts and available technologies including the use of common JS libraries. The students will prepare presentation and introduce the libraries and concepts they chose to use. Each talk is summarized by one student 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.

Tutors: Dr. Guy Yachdav, Dr. Lothar Richter, Tatyana Goldberg, and Christian Dallago

Date/Time: Sep 19-23, 2016/ 10am - 12pm (1pm)

Room: MI 01.10.011 MI 00.13.09A

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 Pokemon Go Edition

JST Pokemon Logo.jpg

This semester we’re stepping beyond our real world and into the world of Pokemons. On July 16th of this year, Niantic released the new location-based augmented reality title Pokemon Go. The game took the world by storm and is now installed on 5% of smartphones in the US. In the game, players are using their smartphones to locate Pokemons - cute and cuddly virtual creatures that after being captured and nurtured turn into fearless fighters in the name of your ambition to level up. Locating and capturing Pokemons have quickly become a phenomenon - hoards of people have been sighted in New York as they chase imaginary creatures and try to capture them in Central Park. Pokemons appear on certain places in the real world and wait at those coordinates for a period of time. While firing up your Pokemon Go app and starting to randomly looking for Pokemons that may pop up nearby may be a fun thing to do, we thought it could be nicer if we do not leave things for random chance, but instead try to intelligently guess when and where our Pokemons will pop up. Our project this semester will be to come up with an app that predicts a Pokemon’s TLN (Time, Location and Name - that is where Pokemons will appear, at what date and time, and which Pokemon will it be). Predictions will be made available to the world through a website and an app that will overlay the predicted TLN on a worldwide Google map. Most of this will be achieved using the power of JavaScript ;-)

Preparation

Checklist to pass the seminar

  1. Register on TUM Online for this seminar
  2. Upon acceptance on TUM Online (Feb. 17th), join the seminar’s Google group
    • 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.
    • students are encouraged to answer questions of their fellow students posted in the Google group
    • check the mailbox of the email address you used to sign up to the Google group regularly!!!
  3. 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.
  4. 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.
  5. 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 jstech@rostlab.org.
  6. Make sure to read these Hints and Rules for great presentations
  7. Submit a 5 pages long report (one per group) describing solutions to your topic (4 pages) and the project (1 page). Due: 2 weeks after the seminar.

Topic presentation

We prepared 12 different topics about JavaScript technology for this seminar. These will be assigned to groups of 3-4 people. The students are welcome to divide the work within their team as they wish.

Project presentation

We prepared 5 different projects as hands-on exercises.

Project A will be assigned to groups 1 and 2. The students of both groups will need to work together to complete the project. The work can be divided within the groups as the students wish.

Each of the projects B, C and D will also be assigned to two groups (e.g. groups 6 and 7 will work on Project B). The groups will work independently from each other (i.e. group 6 will work independently from group 7). Thus, there will be two different solutions to the same project.

Project E will be assigned to groups 11 and 12. The students of both groups will need to work together to complete the project. The work can be divided within the groups as the students wish.


Important Dates

Seminar pre-meeting: June 30th at 1pm (Room: 00.08.038)

Seminar Dates: September 19-23

Room: Rostlab seminar room I12

Presentation Schedule

Date Time Topic Assigned to Slides Source
Sept xx tba Language basics -- variables, loops, conditionals etc.
Sept xx tba Object Oriented JavaScript
Sept xx tba Javascript Module Pattern
Sept xx tba Data processing and validation using javascript
Sept xx tba JavaScript and the DOM - using jQuery and other foundation libraries to construct and manipulate the UI
Sept xx tba The Angular.JS MVW Framework
Sept xx tba Data visualization using Raphael, D3
Sept xx tba Server side JavaScript with Node.js
Sept xx tba Build tools, continuous integration and distribution
Sept xx tba EcmaScript 6 (es6) language features

References

  1. JavaScript: The Definitive Guide, 6th Edition http://shop.oreilly.com/product/9780596805531.do
  2. (Highly recommended:) JavaScript: The Good Parts http://shop.oreilly.com/product/9780596517748.do
  3. http://www.htmlgoodies.com/beyond/javascript/some-javascript-object-prototyping-patterns.html
  4. http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html
  1. http://jquery.com
  2. http://d3js.org
  3. http://raphaeljs.com
  4. http://nodejs.org
  5. http://jqueryui.com
  6. http://www.jslint.com/lint.html
  7. http://jsfiddle.net
  8. http://www.crockford.com
  9. http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
  10. Advanced Reading JavaScript Garden - the most quirky parts of the JavaScript programming language https://github.com/BonsaiDen/JavaScript-Garden/tree/master/doc/en
  11. RECOMMENDED VIDEO http://www.paulirish.com/2010/10-things-i-learned-from-the-jquery-source/
Personal tools