General information:
Name:
Programming in JavaScript
Code:
int.courses-266
Profile of education:
Academic (A)
Lecture language:
English
Semester:
Fall
Responsible teacher:
dr inż. Polak Stanisław (polak@agh.edu.pl)
Academic teachers:
dr inż. Polak Stanisław (polak@agh.edu.pl)
Module summary

The course discusses the basics of the JavaScript language. The possibilities of using it to create dynamic websites as well as the possibilities of creating internet applications are presented.

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Skills
M_U001 Can create an interactive, asynchronous, responsive websites Execution of laboratory classes
M_U002 Can create WWW applications Execution of laboratory classes
Knowledge
M_W001 Knows technologies on the client's side that allow creating dynamic, responsive websites that communicate with the server in an asynchronous mode Examination
M_W002 Knows how to use the Node.JS server and its packages to create a web application that uses a database Examination
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Skills
M_U001 Can create an interactive, asynchronous, responsive websites - - + - - - - - - - -
M_U002 Can create WWW applications - - + - - - - - - - -
Knowledge
M_W001 Knows technologies on the client's side that allow creating dynamic, responsive websites that communicate with the server in an asynchronous mode + - - - - - - - - - -
M_W002 Knows how to use the Node.JS server and its packages to create a web application that uses a database + - - - - - - - - - -
Module content
Lectures:

- General characteristics of JavaScript (JS), data types, basic
operators and instructions, functions and lambda functions
- Document Object Model (DOM); modifying an HTML document using JS
- Basics of WWW service
- Node.js – an open-source, cross-platform JavaScript run-time environment, event-driven programming, asynchronous file and database support, HTTP protocol support
- Express – a framework for creating WWW applications
- MongoDB – a document-oriented database
- AJAX technology
- JQuery programming library
- Basics of the TypeScript language
- Angular framework – basics

Laboratory classes:
  1. HTML 5, CSS and the Boostrap framework

    - Determining the appearance of a website using CSS
    - Creating CSS animations
    - Building responsive websites

  2. Basic of JavaScript

    - Basic data types
    - Built-in objects
    - Accessing form fields using DOM 0
    - Event handling using DOM 0
    - Creating dynamic graphics – the “canvas” element
    - Unit tests based on Mocha and Chai

  3. Document Object Model

    - Dynamic change of CSS styles
    - Creating and modifying the contents of HTML documents “on the fly”
    - Event handling

  4. Node.js

    - Creating simple websites – the ‘http’ module
    - File system support – the ‘fs’ module

  5. Basics of the Express framework

    Creating a web application using the ‘Pug’ template system and the ‘MongoDB’ database

  6. AJAX technology

    - Running asynchronous queries, communication with the server using the GET / POST method
    - Reading response data based on responseText () / responseXML () methods

  7. JQuery programming library

    - DOM support
    - AJAX support
    - Creating a user interface based on jQuery UI

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 100 h
Module ECTS credits 4 ECTS
Participation in laboratory classes 15 h
Participation in lectures 15 h
Contact hours 10 h
Examination or Final test 2 h
Preparation for classes 26 h
Realization of independently performed tasks 32 h
Additional information
Method of calculating the final grade:

0.51*exam + 0.49*laboratory exercises

Prerequisites and additional requirements:

HTML and CSS. Basic knowledge of programming in Java

Recommended literature and teaching resources:

- Danny Goodman, Michael Morrison, Paul Novitski, Tia Gustaff Rayl, “JavaScript Bible”, Wiley, 2010
- Basarat Syed, “Beginning Node.js”, Apress, 2014
- NodeJS official documentation, https://nodejs.org/en/docs/

Scientific publications of module course instructors related to the topic of the module:

Additional scientific publications not specified

Additional information:

Classes are conducted using innovative teaching methods developed during 2017-2019 in the POWR.03.04.00-00-D002/16 project, carried out by the Faculty of Computer Science, Electronics and Telecommunications under the Smart Growth Operational Programme 2014-2020.