training material ict cluster academyjava & databases basics (60%) basics of object oriented...

33
1 Training material ICT Cluster Academy Dušan Gajić Phd & Dinu Dragan Phd September 2018

Upload: others

Post on 21-May-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

1

Training material

ICT Cluster Academy

Dušan Gajić Phd & Dinu Dragan Phd

September 2018

2

Contents Introduction ...................................................................................................................................... 3

Java Modules ................................................................................................................................... 5

Introduction to Coding ................................................................................................................. 5

Introduction to databases ............................................................................................................. 8

Introduction to OOP .................................................................................................................. 10

Software Development Principles and Web Application Back-end Development ................... 12

Web Front-End .......................................................................................................................... 15

.NET Modules ................................................................................................................................ 19

Introduction to programming ..................................................................................................... 19

Introduction to Databases .......................................................................................................... 22

Introduction to Object-Oriented Programming ......................................................................... 24

Software Development Principles and Web Application Back-end Development ................... 26

Web Front-End .......................................................................................................................... 29

Entrepreneurship Module .............................................................................................................. 32

Career management in the ICT sector ....................................................................................... 32

Entrepreneurship in the ICT sector ............................................................................................ 33

3

Introduction

This document presents training curricula for ICT Cluster Academy, to be used in offering IT and

entrepreneurial knowledge to high school graduates, university students, unemployed, people and from

other social groups, in order to enable them to start IT career as Junior IT professionals, as well as to provide

insight and knowledge about challenges in entrepreneurship and how to overcome them.

In parts dedicated to ICT education, this training material provides two full-stack tracks – Java & .NET,

but each track comprises modules that can and will be delivered individually. Line-up of the modules into

two tracks illustrates width and bredth of the program, covering all aspects of junior-level coding.

In the end, a module for entrepreneurship, spiced with ICT topics and targeted at information technology

environment, is added.

Summary:

Basic coding skills (20%)

Basics of procedural coding and data structures (procedure, function, modulation, lists,

arrays, stack, queue)

Basic algorithms (iteration, recursion, sorting, backtracking, hashing)

Java & databases basics (60%)

Basics of Object Oriented Programming (50%)

Basics of Databases (relational model, SQL, JDBC) (10%)

Software development tools & methods: (5%)

Eclipse

Version Control System

Debugging and debugger concept

Best coding practices - code formatting, naming convention, documenting

MVC architecture, JPA

Design patterns - singleton, factory, repository, façade

Internet coding & WEB Java interface: (15%)

What is HTTP protocol and Webserver

Client-side programming – HTML, CSS, JavaScript

Server-side programming – JSP

What is Tomcat and what is it for

Basics of XML

Web services, REST

Additional topics for mentored studying

CASE tools

Generating reports (Jasper Reports)

4

Basic protocols – TCP, POP3, SMTP, FTP, TELNET, MIME

Serialization, dependency injection, database connection pool

Spring

Hibernate

Entrepreneurship

Mindset and the importance of failure

Goal setting

Team building

Project Management

Networking

Raising funds and financial discipline

5

Java Modules

Introduction to Coding

GOAL

The course will introduce basic concepts and methodology of procedural programming based on the Java

programming language.

TEACHING METHODOLOGY

The course centers around interactive lectures organized around the presentation of concepts and

abstractions of procedural programming through presentations, question and answer sessions, and

exercises, theoretical and practical, conducted both communally and individually.

Lecture classes are followed wherever practical with classes focusing on problem-solving exercises, using

an active approach to teaching in accordance with the Felder and Silverman teaching styles taxonomy.

LEARNING OUTCOMES

Upon completion, the student should be able to model solutions using structural modeling techniques and

independently solve simple programming problems using the JAVA programming language. They should

be able to actively participate in more advanced modules of the course.

COURSE DESCRIPTION

Topic 1: Introduction to algorithms (4)

● Computer organization.

● The art of programming.

● Generations of programming languages.

● Phases of simple software development.

● The role of abstraction programming.

● Flowcharts.

● PRACTICAL WORK – simple problem solving.

Topic 2: Software development (2)

environment

● Java programming language.

● JDK and JRE.

● JDKa and Eclipse IDE installation.

● Eclipse overview.

● New Eclipse project.

● First Java program example.

● PRACTICAL WORK – simple Java program developed by students.

Topic 3: Structure of Java program (2)

● Overview of the basic structure of programs.

● MAIN method.

● Java packets and import function.

6

● Java alphabet.

Topic 4: Variables (2)

● Definition of variables.

● Data types.

● Naming conventions, declaration, definition, and initialization.

● Variable scope.

● Introduction to Strings.

● PRACTICAL WORK – examples of programs using String.

● Constants (final).

● PRACTICAL WORK – implementing programs with variables.

Topic 5: Introduction to debugging (2)

● Finding and correcting errors in programming code.

● Code testing

● Debugging in Eclipse IDE.

● Debug View, Breakpoints, Variables panel, Step Into (F5) and Step Over (F6).

● PRACTICAL WORK – code debugging examples (on programming code with intentional

errors).

Topic 6: Expressions (2)

● Introduction to expression and operators.

● Arithmetic, relational, logical, assignment, and ternary operators.

● Precedence rules.

● Operator type matching.

● Data type conversion.

● PRACTICAL WORK – implementing programs with operators.

Topic 7: String and Enum (2)

● Introduction to subroutines, classes, and objects.

● Built-in subroutines and functions.

● String class continued.

● String class methods.

● PRACTICAL WORK – String class examples.

● Introduction to enums.

● PRACTICAL WORK – enums examples.

Topic 8: Basic input and output (2)

● Input/output introduction.

● Output – (System.out.).

● Input – (TextIO klasa).

● PRACTICAL WORK – using basic input and output functions.

Topic 9: Selection (2)

● Introduction to control structures.

● Introduction to selection statements.

● IF statement.

● PRACTICAL WORK – using IF statement.

● SWITCH statement.

● Numbers, enums, and strings in SWITCH statement.

7

● PRACTICAL WORK – using SWITCH statement.

Topic 10: Loops (2)

● Introduction to loop statements.

● DO-WHILE statements.

● PRACTICAL WORK – using DO-WHILE statement.

● FOR statements.

● PRACTICAL WORK – using FOR statement.

● WHILE statements.

● PRACTICAL WORK – using WHILE statement.

● Control structures nesting.

● Break and continue.

● PRACTICAL WORK – using control structure for solving complex problems.

Topic 11: Arrays (2)

● Static data structures.

● Arrays – declaration, definition, initialization, random access.

● PRACTICAL WORK – using arrays.

● Matrices – declaration, definition, initialization, random access.

● PRACTICAL WORK – using matrices.

● Multidimensional arrays.

Topic 12: Search and sorting (2)

● Arrays and matrices searching algorithms.

● PRACTICAL WORK – implementation of arrays and matrices searching algorithms.

● Arrays and matrices sorting algorithms.

● PRACTICAL WORK – implementation of arrays and matrices sorting algorithms.

Topic 13: Subroutines (2)

● Introduction to subroutines.

● Static and non-static subroutines.

● Subroutines definition.

● Calling subroutines.

● Naming subroutines.

● PRACTICAL WORK – solving problems using subroutines.

Topic 14: Practical work (4)

● Topics summary.

● PRACTICAL WORK – implementing Java programs for simple problems which could occur in

practice.

GRADING

● Student grading is to be undertaken after the completion of the course.

● Students will have one test.

● Each student is graded on a 1-30 scale.

● There are 6 theoretical questions graded on a 1-20 overall scale and 1 practical assignment graded

on a 1-10.

8

LITERATURE

1. David J. Eck, Introduction to Programming using Java, 7th edition, 2014.

http://math.hws.edu/javanotes/

2. Bruce Eckel, Thinking in Java, 4th edition, Prentice Hall, 2005 – prevod 4. izdanja, Misliti na

Javi, Mikroknjiga, Beograd.

3. Wladston Ferreira Filho, “Computer Science Distilled: Learn the Art of Solving Computational

Problems”, Code Energy LLC, Las Vegas, 2017.

Introduction to databases

GOAL

The course will introduce basic concepts and methodology of databases. Students gain fundamental

knowledge in databases design and learn basic techniques of implementation, use and maintenance of

databases.

TEACHING METHODOLOGY

The course centers around interactive lectures organized around the presentation of the fundamentals of

modern relational database design, use, and application through presentations, question and answer

sessions, and exercises, theoretical and practical, conducted both communally and individually.

Lecture classes are followed by, as long as it is practical, with revision, analysis of problems, and

exercises.

LEARNING OUTCOMES

Upon completion, the student should be able to model solutions using conceptual modeling techniques

and independently solve simple problems using the ER diagram concepts. Students will be able to

understand the relational data model and independently solve low-to-medium complexity tasks using

relational database language SQL. They should be able to actively participate in more advanced modules

of the course.

CONTENT

Topic 1. Introduction to Database System (1)

● Database system concepts

● Concept of database management system (DBMS)

● Concept of database schemas and views

● Definition of key

Topic 2. Data Models (1)

● Concept and role of data model in database design

● Conceptual modeling and database design

● Data model types

● Introduction to relational data model and entity relationship model

Topic 3. Data Modeling Using the Entity Relationship (ER) Model (4)

9

● Definition, properties, and examples of entity types

● Definition, properties, and examples of relationship types

● Definition, properties, and examples of weak entity types

● Database design using ER diagram

● PRACTICAL WORK – ER diagram examples (entity types, relationship types and weak entity

types)

Topic 4. Data Modeling Using the Extended Entity Relationship (EER) Model (4)

● Definition, properties, and examples of gerunds

● Definition, properties, and examples of IS-A hierarchy and categorization

● PRACTICAL WORK – ER diagram examples (gerunds, IS-A hierarchy and categorization)

Topic 5. Relational data model (2)

● Relational data model basic concepts

● Purpose and scope of the SQL language

● Introduction to environment for learning SQL language

● Roles and users

● PRACTICAL WORK – CREATE user

Topic 6. SQL–Language of Relational Databases (2)

● Basic SQL syntax

● Definition, properties, and examples of schema and catalog concepts in SQL

● PRACTICAL WORK – implementation of the database schema in SQL language, on the selected

DBMS, based on given SQL scripts, for the selected example

Topic 7. Data Definition Language (DDL) (2)

● SQL basic data types

● Date data types - operations and functions

● Alphanumeric data types - operations and functions

● Schema change statements in SQL

● PRACTICAL WORK – CREATE, ALTER, and DROP statements in SQL

Topic 8. Data Manipulation Language (DML) (2)

● Insert tuple to the table

● Delete tuple from the table

● Update table data

● PRACTICAL WORK – INSERT, UPDATE and DELETE statements in SQL

Topic 9. SQL Queries (4)

● Basic structure of the SELECT command

● NULL values, and arithmetic expressions

● WHERE and ORDER BY clauses

● DISTINCT clause and the use of logical and SQL operators (IN, LIKE, IS NULL)

● Aggregate functions in SQL (min, max, sum, avg, count)

● GROUP BY and HAVING clauses

● PRACTICAL WORK – SQL queries examples

Topic 10. SQL Queries (4)

● Joined Tables in SQL and Outer Joins

10

● Nested Queries

● Correlated Nested Queries

● Operators ANY, ALL, EXISTS

● Efficiency of query execution

● PRACTICAL WORK – SQL queries examples

Topic 11. Views in SQL (2)

● Definition, properties, and examples of view

● Recapitulation of the SELECT command, within the view

● PRACTICAL WORK – creating simple and complex views

Topic 12. Relational Model Constraints (2)

● Definition, properties, and examples of constraints

● Key Constraints and Constraints on NULL Values

● Unique and check constraints

● Foreign key constraints

● PRACTICAL WORK – Specifying constraints in SQL

Topic 13. Relational Database Design by ER to Relational Mapping (2)

● Mapping ER model constructs to relations

PRACTICAL WORK – examples of ER to Relational Mapping

GRADING

● Student grading is to be undertaken after the completion of the course.

● Students will have one test.

Introduction to OOP

GOAL

The course will introduce basic concepts and methodology of object-oriented programming and design

using the Java programming language.

TEACHING METHODOLOGY

The course centers around interactive lectures organized around the presentation of the theoretical

framework and practical use of modern object oriented programming and technique through

presentations, question and answer sessions, and exercises, theoretical and practical, conducted both

communally and individually.

Lecture classes are followed wherever practical with classes focusing on problem-solving exercises and

rudiments of software design, using an active approach to teaching in accordance with the Felder and

Silverman teaching styles taxonomy.

LEARNING OUTCOMES

Upon completion, students will be able to understand the object-oriented paradigm, model solutions using

object-oriented programming, and independently solve low-to-medium complexity programming tasks

using Java. The acquired knowledge should enable the course participants to actively take part in more

11

advanced modules.

CONTENT

Topic 1. Introduction to Object-Oriented Programming (OOP) (2)

● Concepts, properties, and advantages of object-oriented programming

● Relationship between procedural and object-oriented programming

Topic 2. Objects and Classes (2)

● Definition, properties, and examples of objects

● Definition, properties, and examples of classes

● Variables and objects

● PRACTICAL WORK – objects and classes

Topic 3. Constructors, Access Control and Encapsulation (4)

● Constructors and object initialization

● Object paradigm

● Abstract data types (ADT)

● Access control attributes

● Access control methods

● Definition, properties, and examples of encapsulation

● PRACTICAL WORK – constructors and access control

Topic 4. Inheritance (4)

● Definition, properties, and examples of inheritance

● Examples of inheritance

● PRACTICAL WORK – inheritance

Topic 5. Association, Aggregation, and Composition (2)

● Definition, properties, and examples of association, aggregation, and composition

● PRACTICAL WORK – association, aggregation, and composition

Topic 6. Polymorphism (2)

● Definition, properties, and examples of polymorphism

● PRACTICAL WORK – polymorphism

Topic 7. Abstract Classes and Interfaces (4)

● Definition, properties, and examples of abstract classes

● Definition, properties, and examples of interfaces

● Variables and interfaces

● Frameworks and APIs

● PRACTICAL WORK – abstract classes and interfaces

Topic 8. Correctness and Robustness of Object-Oriented Programs (2)

● Concepts of correctness and robustness

● Mechanism of exceptions

● PRACTICAL WORK – handling of exceptions in programs

Topic 9. Streams and Files (2)

● Definition, properties, and examples of streams

12

● Definition, properties, and examples of files

● PRACTICAL WORK – streams and files

Topic 10. Java Platform (4)

● OOP in Java

● Java platform, Java API

● Java archives - JAR

● Documentation – Javadoc

● Java Collections Framework (JCF)

● Example – using JCF

● PRACTICAL WORK – using JCF

Topic 11. UML, Principles of Object-Oriented Design (4)

● Unified Modeling Language – UML

● Types of UML diagrams

● Object-oriented software design

● Design patterns

● Example – design patterns

● PRACTICAL WORK – design patterns

GRADING

● Students’ grading will be undertaken after the

completion of the lectures

● Students will have to pass a test worth 40 points

● The test will be composed of 6 theoretical questions, worth 25 points in total, and 2 practical

assignments, worth 15 points in total

REFERENCES

1. David J. Eck, Introduction to Programming using Java, 7th edition, 2014.

http://math.hws.edu/javanotes/

2. Bruce Eckel, Thinking in Java, 4th edition, Prentice Hall, 2005 – prevod 4. izdanja, Misliti na

Javi, (in Serbian), Mikroknjiga, Beograd.

3. Matt Weisfeld, Objektno orijentisani način mišljenja, (in Serbian), CET, Beograd.

Software Development Principles and Web Application Back-end Development

GOAL

The course will introduce basic concepts and methodology of back-end design and development on a web

application example using Java as the main programming language. The course will introduce basic

principles and methodologies of software development on a Web application example using Java and

JavaScript as the main programming languages.

TEACHING METHODOLOGY

The course centers around interactive lectures organized around the presentation of Web application

backend programming techniques and current state of the art industry best practices in software

13

development methodologies through presentations, question and answer sessions.

Lecture classes are followed wherever practical and as often as possible with practical exercises,

exploring methods of solving real-world problems using modern software tools and methodologies.

LEARNING OUTCOMES

Upon completion, the student should be able to:

● understand the principles of good back-end design and applicable design patterns, independently

develop low-to-medium complexity back-end components, understand one possible Java framework for

back-end development and competently use the relevant libraries and frameworks to produce modern

web-based back-ends.

● understand the principles of good software development and applicable software development

methods, independently develop low-to-medium complexity web applications, understand agile software

development methodology, and competently use the methodology to produce modern web application.

COURSE DESCRIPTION

Topic 1: Web architecture and spring boot (8)

● Concepts, properties, and examples of modern web system architectures

● Definition, properties, and examples of client-server architecture

● Concepts and properties of the HTTP protocol

● HTTP status codes

● HTTP body and header

● Concepts, properties, and advantages of the REST architecture

● Concepts and properties of Spring

● Spring application functional levels

● Concepts and properties of Spring Boot

● Maven - basic tutorial

● Creating and configuring the first Spring project

● PRACTICAL WORK - creating and configuring Spring projects

Topic 2: REST services layer (8)

● REST-related annotations and Spring concepts

● Creating a basic CRUD REST controller in Spring

● Advanced concepts of REST services in Spring: methods and parameters

● Postman application - basic tutorial

● Creating HTTP requests with Postman

● Debugging in Eclipse IDE - basic tutorial

● Breakpoints and line-by-line execution

● PRACTICAL WORK - REST services

Topic 3: Data layer (12)

● Definition, properties, and examples of object-relational mapping

● Concepts and properties of JPA and the Hibernate library

● Using Hibernate in Spring applications

● Main Hibernate annotations

● Entity layer in Spring

● Repository layer in Spring

● PRACTICAL WORK - hibernate, entities and repositories

14

Topic 4: Project specification (4)

● Functional and nonfunctional requirements for the students’ project

● Identifying and modeling main entities of the system under study

● Discussion about the project scope and entities

● PRACTICAL WORK - creation of class diagrams

Topic 5: Service layer (8)

● Definition, properties, and examples of service layer in Spring

● Services for database access

● Transaction management

● Using the entitymanager in spring

● Writing queries with Hibernate Query Language (HQL)

● Services for file access

● Principles of logging in applications

● Logging services

● Using log4j library in Spring applications

● PRACTICAL WORK - creation of services

Topic 6: Serialization and Deserialization of data (10)

● Concepts and properties of JavaScript Object Notation (JSON)

● Concepts and properties of Jackson library

● Using Jackson in Spring projects

● Basic Jackson annotations for Serialization and Deserialization of data

● The @JsonView annotation

● @JsonManagedReference i @JsonBackReference annotations

● Using Jackson in Spring applications

● Data Transfer Objects (DTO)

● PRACTICAL WORK - serialization and deserialization

Topic 7: Testing the applications (8)

● Concepts and examples of software testing

● Concepts and examples of JUnit library

● Testing REST applications

● PRACTICAL WORK - JUnit tests

Topic 8: Tools for managing software development projects (6)

● Concepts and examples of code version control systems

● Concepts and properties of Git and Github

● Using git in the command line

● Basic operations on git repository

● Using git in STS

● Cloning an existing repository

● Concepts and properties of Maven

● Testing and packaging of standalone applications using Maven

● PRACTICAL WORK - git, maven

Topic 9: The process of connecting Frontend and Backend application parts (4)

● Cloning an existing frontend project and its deployment

● Connecting frontend (a partial black-box) and a backend application

● Resolving frequent issues

15

● Cross-Origin Resource Sharing (CORS)

● Resolving CORS issues

● PRACTICAL WORK - connecting front and back ends of an application

Topic 10: Security (12)

● Definition, properties, and examples of security in computer systems

● Creating login forms and implementing authorization and authentication procedures

● Concepts and properties of HTTP Basic Auth

● Concepts and properties of token authentication

● PRACTICAL WORK - security mechanisms

Topic 11: Project implementation (8)

● Discussing the main issues that arose during the project implementation

● PRACTICAL WORK - finishing the project model

● PRACTICAL WORK - finishing the backend implementation

● PRACTICAL WORK - writing the documentation

● PRACTICAL WORK - performing cleanup and fixing issues in the github repository

GRADING

● Students’ grading will be undertaken after the

completion of the lectures

● Students will have to pass a project worth 60 points

LITERATURE

1. C. Bauer, G. King, and G. Gregory, Java Persistence with Hibernate, 2nd ed. New York, NY,

USA: Manning, 2015.

2. F. Gutierrez, Pro Spring Boot, 1st ed. New York, NY, USA: Apress, 2016.

3. C. Walls, Spring in Action, 4th ed. New York, NY, USA: Manning, 2016.

4. “Spring Tutorials.” [Online]. Available: http://spring.io/guides#tutorials.

Web Front-End

GOAL

The course will introduce basic concepts and methodology of web front-end development based on

modern HTML, CSS, JavaScript by way of TypeScript, and the Angular framework.

TEACHING METHODOLOGY

The course centers around an even mixture of practical work and interactive lectures, seeking to maintain

a 1:1 ratio between practical exercises and interactive lectures presenting the theoretical foundations of

front-end design in general and on the web, in particular.

Practical exercises are divided between problem-solving practice in which complex problems are solved

through communal effort and individual work bolstered by consultations by the teacher.

LEARNING OUTCOMES

16

Upon completion the student should be able to understand the large-scale structure of complex web

applications, design web pages optimized for web application use and style them using CSS. Code

competently in TypeScript and understand its role in the JavaScript ecosystem. Exercise command-line

control over the NodeJS/npm environment, and know how to leverage it for purposes of web

development. Develop simple web applications based on the Angular framework.

Subject 1. WEB PROTOCOLS (3)

● A review of previously learned on the subject of computer networks

● Client/server architectures versus peer-to-peer architectures

● The concept of a protocol in communications

● HTTP/HTTPS

● Expected responses and requests in HTTP/HTTPS

● The nature and operation of a web browser

● The use of tools for debugging HTTP communication and web development in general.

● PRACTICAL EXERCISE: Studying the responses of a web application and examining web

headers.

Subject 2. DEVELOPMENT ENVIRONMENT (3)

● The toolchain as a concept

● The concept of a programmer’s editor

● Making the best of the features available in programming editors

● Modern programming editors, an overview

● Version control and git

● Installing the necessary tools: node, and npm.

● Differences between windows and unix-like environments: nvm and nvm-windows.

● PRACTICAL EXERCISE: Guided and independent setup of a development environment.

Subject 3. WEB DEVELOPMENT OVERVIEW (2)

● A short history of web development

● What are: HTML, CSS, Flex, JavaScript, TypeScript, and Angular and how do they fit one

another.

● What is a library?

● Dependency management and npm.

● PRACTICAL EXERCISE: Installing a library via npm nad examining what, precisely, gets

installed.

Subject 4. WEB APP APPEARANCE I (8)

● Markup languages

● The difference between markup and programing

● Examples of markup languages: Markdown

● HTML5: structure and function, tags, attributes, and contents.

● Semantic tags versus appearance tags.

● Specifying the header via meta tags.

● Linking assets to the main HTML document.

● PRACTICAL EXERCISE: Writing HTML pages for various tasks:

● Informative content-focused page.

● Smart home interface page.

● Data entry/form page.

17

Subject 5. WEB APP APPEARANCE II (8)

● The difference between style and structure of a document.

● CSS: versions, purpose, and structure.

● CSS selectors

● CSS attributes

● CSS functions

● Color models & specifying color

● CSS units

● Page layout using CSS

● Responsive CSS

● CSS and accessibility

● PRACTICAL EXERCISE: Styling the examples made previously. Using CSS to impose

appearance and layout on a predefined structure.

Subject 6 WEB PROGRAMMING I (8)

● What is JavaScript?

● Why not work in JavaScript?

● Hidden errors, weak typing, and the compatibility issue.

● The universal use of transpiling.

● The advantages of TypeScript

● How does TypeScript work?

● TypeScript presented through compare and contrast with the Java programming language.

● Declaring variables: let and const.

● New types of assignment: destructuring and spread.

● Types, arrays, tuples, and arrays.

● Precise uncertainty: any, void, null, undefined, and never.

● Casting variables in TypeScript.

● PRACTICAL EXERCISE: Fizzbuzz in TypeScript. Finding prime numbers. Sorting arrays.

Computing Fibonacci numbers. Computing arbitrary number sequences.

Subject 7. WEB PROGRAMMING II (8)

● Interfaces in TypeScript: implicit implementation and contract-based programming.

● TypeScript functions: types, optional and default parameters, anonymous functions, and function

interfaces.

● Anonymous functions in the arrow notation.

● TypeScript classes.

● Generic programming in TypeScript.

● Specialized loops: for in and for of.

● Low-level interaction with the web page.

● PRACTICAL EXERCISE: Towers of Hanoi, Lengton’s Ant, The Game of Life. Learning how to

model complex tasks.

Subject 7. WEB PROGRAMMING III (6)

● Using TypeScript to control the web page without frameworks.

● Representing Web pages using DOM.

● How a conventional web app would work.

● Why frameworks were invented.

● PRACTICAL EXERCISE: Wiring a previously created and styled data entry form.

18

Subject 9. ANGULAR — INTRODUCTION (10)

● What is Angular? What is its purpose?

● An analysis of the QuickStart Angular project as an example of a complexly configured solution.

● Angular and tooling.

● Angular CLI

● Angular components: code and template. An example of further separation of appearance,

structure, and behavior.

● Bindings and directives: *nfIf and *ngFor.

● Two-way binding for application interactivity.

● Component styles

● Event driven programming in Angular.

● Event handling in Angular: handlers, pseudo-events, and $event.

● Debugging an Angular/TS application.

● Combining components in Angular.

● Interaction between components in Angular.

● PRACTICAL EXERCISE: Wiring a previously created and styled data entry form to

communicated with an Angular application.

Subject 10. ADVANCED ANGULAR (10)

● Angular services.

● Externalization of data management functionality and mocking.

● Providers.

● Lifecycle hooks.

● Responsive application programming in Angular.

● Asynchronous programming as a concept.

● Callbacks as a mechanism of asynchronous programming.

● Issues with callbacks.

● Promises: then and catch.

● Routing and navigating in complex projects.

● Static and dynamic routes; parametrization of routes.

● Location services and user navigation control.

● Using pipes to filter bound data.

● Routing modularization.

● Programmatical routing and navigation.

● Remote access to data using the HTTP protocol to access web services.

● Promises and observable objects.

● PRACTICAL EXERCISE: Writing a simple application which fetches data from a HTTP server

and displays it in multiple views.

GRADING

● Student grading is combined with the previous course.

● The grading is undertaken after both courses are complete and consists of a complete web

application: front- and back- end.

● The web application counts for 60% of the course grade, in total.

● The application is graded on functionality, user-friendliness, and robustness.

LITERATURE

1. Aravind Shenoy, “Thinking in HTML”

2. E.A. Meyer, E. Weyl, “CSS: The Definitive Guide: Visual Presentation for the Web”

3. D. Crockford, “JavaScript: The Good Parts”

19

4. D. Flannagan, “JavaScript: The Definitive Guide”

5. https://www.typescriptlang.org/docs/home.html

6. https://angular.io/docs

.NET Modules

Introduction to programming

GOAL

The course will introduce basic concepts and methodology of procedural programming based on the C#

programming language.

OUTCOME

Upon completion, the student should be able to: model solutions using structural modeling techniques and

independently solve simple programming problems using the C# programming language. They should be

able to actively participate in more advanced modules of the course.

COURSE DESCRIPTION

Topic 1: Introduction to algorithms (4)

● Computer organization.

● The art of programming.

● Generations of programming languages.

● Phases of simple software development.

● The role of abstraction programming.

● Flowcharts.

● PRACTICAL WORK – simple problem solving.

Topic 2: Software development (2)

environment

● C# programming language.

● Visual studio and .NET installation

● Visual Studio overview.

● New Visual Studio project/solution.

● First C# program example.

● PRACTICAL WORK – simple C# program developed by students.

Topic 3: Structure of C# program (2)

● Overview of the basic structure of programs.

● MAIN method.

● C# Namespaces and import function.

● C# alphabet

Topic 4: Variables (2)

● Definition of variables.

● Data types.

● Naming conventions, declaration, definition, and initialization.

20

● Variable scope.

● Introduction to Strings.

● PRACTICAL WORK – examples of programs using String.

● Constants.

● PRACTICAL WORK – implementing programs with variables.

Topic 5: Introduction to debugging (2)

● Finding and correcting errors in programming code.

● Code testing

● Debugging in Visual Studio.

● Debug View, Breakpoints, Variables panel, Step Into (F11) and Step Over (F10).

● PRACTICAL WORK – code debugging examples (on programming code with intentional

errors).

Topic 6: Expressions (2)

● Introduction to expression and operators.

● Arithmetic, relational, logical, assignment, and ternary operators.

● Precedence rules.

● Operator type matching.

● Data type conversion.

● PRACTICAL WORK – implementing programs with operators.

Topic 7: String and Enum (2)

● Introduction to subroutines, classes, and objects.

● Built-in subroutines and functions.

● String class continued.

● String class methods.

● PRACTICAL WORK – String class examples.

● Introduction to enums.

● PRACTICAL WORK – enums examples.

Topic 8: Basic input and output (2)

● Input/output introduction.

● Output – (Console.WriteLine).

● Input – (Console.ReadLine).

● PRACTICAL WORK – using basic input and output functions.

Topic 9: Selection (2)

● Introduction to control structures.

● Introduction to selection statements.

● IF statement.

● PRACTICAL WORK – using IF statement.

● SWITCH statement.

● Numbers, enums, and strings in SWITCH statement.

● PRACTICAL WORK – using SWITCH statement.

Topic 10: Loops (2)

● Introduction to loop statements.

● DO-WHILE statements.

● PRACTICAL WORK – using DO-WHILE statement.

21

● FOR statements.

● PRACTICAL WORK – using FOR statement.

● WHILE statements.

● PRACTICAL WORK – using WHILE statement.

● Control structures nesting.

● Break and continue.

● PRACTICAL WORK – using control structure for solving complex problems.

Topic 11: Arrays (2)

● Static data structures.

● Arrays – declaration, definition, initialization, random access.

● PRACTICAL WORK – using arrays.

● Matrices – declaration, definition, initialization, random access.

● PRACTICAL WORK – using matrices.

● Multidimensional arrays.

Topic 12: Search and sorting (2)

● Arrays and matrices searching algorithms.

● PRACTICAL WORK – implementation of arrays and matrices searching algorithms.

● Arrays and matrices sorting algorithms.

● PRACTICAL WORK – implementation of arrays and matrices sorting algorithms.

Topic 13: Subroutines (2)

● Introduction to subroutines.

● Static and non-static subroutines.

● Subroutines definition.

● Calling subroutines.

● Naming subroutines.

● PRACTICAL WORK – solving problems using subroutines.

Topic 14: Practical work (4)

● Topics summary.

● PRACTICAL WORK – implementing C# programs for simple problems which could occur in

practice.

GRADING

● Student grading is to be undertaken after the completion of the course.

● Students will have one test.

● Each student is graded on a 1-30 scale.

● There are 6 theoretical questions graded on a 1-20 overall scale and 1 practical assignment graded

on a 1-10.

LITERATURE

1. Joseph Albahari - “C# 6.0 in a Nutshell: The Definitive Reference”, 6th Edition, November 2015,

2. Troelsen, Andrew - “Pro C# 5.0 and the .NET 4.5 Framework”, 6th Edition, 2012

3. Rob Miles “C# Programming Yellow Book”, Cheese Edition 8.2, November 2016,

http://www.csharpcourse.com/

4. Wladston Ferreira Filho, “Computer Science Distilled: Learn the Art of Solving Computational

Problems”, Code Energy LLC, Las Vegas, 2017.

22

Introduction to Databases

GOAL

The course will introduce basic concepts and methodology of databases. Students gain fundamental

knowledge in databases design and learn basic techniques of implementation, use and maintenance of

databases.

OUTCOME

Upon completion, the student should be able to model solutions using conceptual modeling techniques

and independently solve simple problems using the ER diagram concepts. Students will be able to

understand the relational data model and independently solve low-to-medium complexity tasks using

relational database language SQL. They should be able to actively participate in more advanced modules

of the course.

CONTENT

Topic 1. Introduction to Database System (1)

● Database system concepts

● Concept of database management system (DBMS)

● Concept of database schemas and views

● Definition of key

Topic 2. Data Models (1)

● Concept and role of data model in database design

● Conceptual modeling and database design

● Data model types

● Introduction to relational data model and entity relationship model

Topic 3. Data Modeling Using the Entity Relationship (ER) Model (4)

● Definition, properties, and examples of entity types

● Definition, properties, and examples of relationship types

● Definition, properties, and examples of weak entity types

● Database design using ER diagram

● PRACTICAL WORK – ER diagram examples (entity types, relationship types and weak entity

types)

Topic 4. Data Modeling Using the Extended Entity Relationship (EER) Model (4)

● Definition, properties, and examples of gerunds

● Definition, properties, and examples of IS-A hierarchy and categorization

● PRACTICAL WORK – ER diagram examples (gerunds, IS-A hierarchy and categorization)

Topic 5. Relational data model (2)

● Relational data model basic concepts

23

● Purpose and scope of the SQL language

● Introduction to environment for learning SQL language

● Roles and users

● PRACTICAL WORK – CREATE user

Topic 6. SQL–Language of Relational Databases (2)

● Basic SQL syntax

● Definition, properties, and examples of schema and catalog concepts in SQL

● PRACTICAL WORK – implementation of the database schema in SQL language, on the selected

DBMS, based on given SQL scripts, for the selected example

Topic 7. Data Definition Language (DDL) (2)

● SQL basic data types

● Date data types - operations and functions

● Alphanumeric data types - operations and functions

● Schema change statements in SQL

● PRACTICAL WORK – CREATE, ALTER, and DROP statements in SQL

Topic 8. Data Manipulation Language (DML) (2)

● Insert tuple to the table

● Delete tuple from the table

● Update table data

● PRACTICAL WORK – INSERT, UPDATE and DELETE statements in SQL

Topic 9. SQL Queries (4)

● Basic structure of the SELECT command

● NULL values, and arithmetic expressions

● WHERE and ORDER BY clauses

● DISTINCT clause and the use of logical and SQL operators (IN, LIKE, IS NULL)

● Aggregate functions in SQL (min, max, sum, avg, count)

● GROUP BY and HAVING clauses

● PRACTICAL WORK – SQL queries examples

Topic 10. SQL Queries (4)

● Joined Tables in SQL and Outer Joins

● Nested Queries

● Correlated Nested Queries

● Operators ANY, ALL, EXISTS

● Efficiency of query execution

● PRACTICAL WORK – SQL queries examples

Topic 11. Views in SQL (2)

● Definition, properties, and examples of view

● Recapitulation of the SELECT command, within the view

● PRACTICAL WORK – creating simple and complex views

Topic 12. Relational Model Constraints (2)

● Definition, properties, and examples of constraints

● Key Constraints and Constraints on NULL Values

● Unique and check constraints

24

● Foreign key constraints

● PRACTICAL WORK – Specifying constraints in SQL

Topic 13. Relational Database Design by ER to Relational Mapping (2)

● Mapping ER model constructs to relations

PRACTICAL WORK – examples of ER to Relational Mapping

GRADING

● Student grading is to be undertaken after the completion of the course.

● Students will have one test.

● Each student is graded on a 1-30 scale.

● The test will be composed of 5 practical assignments, worth 30 points in total

REFERENCES

1. Date C. J, An Introduction to Database Systems (8th Edition)

2. Ramez Elmasri, Shamkant B. Navathe, Fundamentals of Database Systems (6th Edition)

Introduction to Object-Oriented Programming

GOAL

The course will introduce basic concepts and methodology of object-oriented programming and design

using the C# programming language.

OUTCOME

Upon completion, students will be able to understand the object-oriented paradigm, model solutions using

object-oriented programming, and independently solve low-to-medium complexity programming tasks

using C#. The acquired knowledge should enable the course participants to actively take part in more

advanced modules.

COURSE DESCRIPTION

Topic 1. Introduction to Object-Oriented Programming (OOP) (2)

● Concepts, properties, and advantages of object-oriented programming

● Relationship between procedural and object-oriented programming

Topic 2. Objects and Classes (2)

● Definition, properties, and examples of objects

● Definition, properties, and examples of classes

● Partial classes

● Variables and objects

● PRACTICAL WORK – objects and classes

Topic 3. Constructors, Access Control and Encapsulation (3)

● Constructors and object initialization

● Object paradigm

● Abstract data types (ADT)

● Access control attributes

25

● Access control methods

● Definition, properties, and examples of encapsulation

● PRACTICAL WORK – constructors and access control

Topic 4. Inheritance (4)

● Definition, properties, and examples of inheritance

● Examples of inheritance

● PRACTICAL WORK – inheritance

Topic 5. Association, Aggregation, and Composition (3)

● Definition, properties, and examples of association, aggregation, and composition

● PRACTICAL WORK – association, aggregation, and composition

Topic 6. Polymorphism (2)

● Definition, properties, and examples of polymorphism

● PRACTICAL WORK – polymorphism

Topic 7. Abstract Classes and Interfaces (3)

● Definition, properties, and examples of abstract classes

● Definition, properties, and examples of interfaces

● Variables and interfaces

● Frameworks and APIs

● PRACTICAL WORK – abstract classes and interfaces

Topic 8. Correctness and Robustness of Object-Oriented Programs (2)

● Concepts of correctness and robustness

● Mechanism of exceptions

● PRACTICAL WORK – handling of exceptions in programs

Topic 9. Streams and Files (2)

● Definition, properties, and examples of streams

● Definition, properties, and examples of files

● PRACTICAL WORK – streams and files

Topic 10. .NET Platform (3)

● OOP in C#

● .NET Library

● Dynamic Link Library - DLL

● Documentation – MSDN

● Collections and LINQ in C#

● Example – using System.Collections

● PRACTICAL WORK – using System.Collections and LINQ

Topic 11. Delegates and Events (2)

● Definition, properties, and examples of delegates in C#

● Example - Pub/Sub mechanism

● Definition, properties, and examples of events in C#

● Example – events and delegates

● PRACTICAL WORK – events and delegates

26

Topic 12. UML, Principles of Object-Oriented Design (4)

● Unified Modeling Language – UML

● Types of UML diagrams

● Object-oriented software design

● Design patterns

● Example – design patterns

● PRACTICAL WORK – design patterns

GRADING

● Students’ grading will be undertaken after the

completion of the lectures

● Students will have to pass a test worth 40 points

● The test will be composed of 6 theoretical questions, worth 25 points in total, and 2 practical

assignments, worth 15 points in total

REFERENCES

1. Joseph Albahari - “C# 6.0 in a Nutshell: The Definitive Reference”, 6th Edition, November 2015,

2. Troelsen, Andrew - “Pro C# 5.0 and the .NET 4.5 Framework”, 6th Edition, 2012

3. Rob Miles “C# Programming Yellow Book”, Cheese Edition 8.2, November 2016,

http://www.csharpcourse.com/

4. Matt Weisfeld, Objektno orijentisani način mišljenja, (in Serbian), CET, Beograd.

Software Development Principles and Web Application Back-end Development

GOAL

The course will introduce basic concepts and methodology of back-end design and development on a web

application example using C# as the main programming language. The course will introduce basic

principles and methodologies of software development on a Web application example using C# and

JavaScript as the main programming languages.

OUTCOME

Upon completion, the student should be able to:

● understand the principles of good back-end design and applicable design patterns, independently

develop low-to-medium complexity back-end components, understand one possible C# framework for

back-end development and competently use the relevant libraries and frameworks to produce modern

web-based back-ends.

● understand the principles of good software development and applicable software development

methods, independently develop low-to-medium complexity web applications, understand agile software

development methodology, and competently use the methodology to produce modern web application.

COURSE DESCRIPTION

Topic 1: Web architecture and ASP.NET Web API

(8)

● Concepts, properties, and examples of modern web system architectures

● Definition, properties, and examples of client-server architecture

27

● Concepts and properties of the HTTP protocol

● HTTP status codes

● HTTP body and header

● Concepts, properties, and advantages of the REST architecture

● Concepts and properties of ASP.NET Web API

● Architecture of ASP.NET Web API

● IIS Express - basic tutorial

● Creating and configuring the first ASP.NET Web API project

● PRACTICAL WORK - creating and configuring ASP.NET Web API projects

Topic 2: REST services layer (8)

● REST-related annotations and ASP.NET Web API concepts

● Creating a basic CRUD REST controller in ASP.NET Web API

● Advanced concepts of REST services in ASP.NET Web API: methods and parameters

● Postman application - basic tutorial

● Creating HTTP requests with Postman

● Debugging in Visual Studio IDE - basic tutorial

● Error handling in REST services

● Breakpoints and line-by-line execution

● PRACTICAL WORK - REST services

Topic 3: Data layer (12)

● Definition, properties, and examples of object-relational mapping

● Concepts and properties of Entity framework

● Using Entity framework in ASP.NET applications

● Main Entity framework annotations

● Models in ASP.NET

● Data access layer in ASP.NET

● PRACTICAL WORK - Entity framework, models and DAO layer

Topic 4: Project specification (4)

● Functional and nonfunctional requirements for the students’ project

● Identifying and modeling main models of the system under study

● Discussion about the project scope and models

● PRACTICAL WORK - creation of class diagrams

Topic 5: Business logic layer (8)

● Definition, properties, and examples of business logic layer in ASP.NET

● Classes for database access

● Transaction management

● Introduction to LINQ

● Writing queries with LINQ

● File access

● Principles of logging in applications

● Logging services

● Using NLog library in ASP.NET applications

● PRACTICAL WORK - creation of services

Topic 6: Serialization and Deserialization of data (10)

28

● Concepts and properties of JavaScript Object Notation (JSON)

● Concepts and properties of Json.NET library

● Using Json.NET in ASP.NET projects

● Basic Json.NET annotations for Serialization and Deserialization of data

● Conditional serialization

● Circular reference problem and solution

● Data Transfer Objects (DTO)

● Data validation

● PRACTICAL WORK - serialization and deserialization

Topic 7: Testing the applications (8)

● Concepts and examples of software testing

● Concepts and examples of MSTest library

● Testing REST applications

● PRACTICAL WORK - MSTest tests

Topic 8: Tools for managing software development projects (6)

● Concepts and examples of code version control systems

● Concepts and properties of Git and Github

● Using git in the command line

● Basic operations on git repository

● Using git in Visual Studio

● Cloning an existing repository

● Testing and packaging application for publishing

● PRACTICAL WORK - git, Visual Studio

Topic 9: The process of connecting Frontend and Backend application parts (4)

● Cloning an existing frontend project and its deployment

● Connecting frontend (a partial black-box) and a backend application

● Resolving frequent issues

● Cross-Origin Resource Sharing (CORS)

● Resolving CORS issues

● PRACTICAL WORK - connecting front and back ends of an application

Topic 10: Security (12)

● Definition, properties, and examples of security in computer systems

● Creating login forms and implementing authorization and authentication procedures

● Concepts and properties of HTTP Basic Auth

● Concepts and properties of token authentication

● PRACTICAL WORK - security mechanisms

Topic 11: Project implementation (8)

● Discussing the main issues that arose during the project implementation

● PRACTICAL WORK - finishing the project model

● PRACTICAL WORK - finishing the backend implementation

● PRACTICAL WORK - writing the documentation

● PRACTICAL WORK - performing cleanup and fixing issues in the github repository

GRADING

● Students’ grading will be undertaken after the completion of the lectures

29

● Students will have to pass a project worth 60 points

LITERATURE

1. Troelsen, Andrew - “Pro C# 5.0 and the .NET 4.5 Framework”, 6th Edition, 2012

2. Adam Freeman - “Pro ASP.NET MVC 5 (Expert's Voice in ASP.Net)”, 5th ed. Edition, 2013

3. Jon Galloway - “Professional ASP.NET MVC 5”, 1st Edition, 2014

4. “Learn About ASP.NET Web API” [Online]. Available: https://www.asp.net/web-api.

Web Front-End

GOAL

The course will introduce basic concepts and methodology of web front-end development based on

modern HTML, CSS, JavaScript by way of TypeScript, and the Angular framework.

OUTCOME

Upon completion the student should be able to: understand the large-scale structure of complex web

applications, design web pages optimized for web application use and style them using CSS. Code

competently in TypeScript and understand its role in the JavaScript ecosystem. Exercise command-line

control over the NodeJS/npm environment, and know how to leverage it for purposes of web

development. Develop simple web applications based on the Angular framework.

Subject 1. WEB PROTOCOLS (3)

● A review of previously learned on the subject of computer networks

● Client/server architectures versus peer-to-peer architectures

● The concept of a protocol in communications

● HTTP/HTTPS

● Expected responses and requests in HTTP/HTTPS

● The nature and operation of a web browser

● The use of tools for debugging HTTP communication and web development in general.

● PRACTICAL EXERCISE: Studying the responses of a web application and examining web

headers.

Subject 2. DEVELOPMENT ENVIRONMENT (3)

● The toolchain as a concept

● The concept of a programmer’s editor

● Making the best of the features available in programming editors

● Modern programming editors, an overview

● Version control and git

● Installing the necessary tools: node, and npm.

● Differences between windows and unix-like environments: nvm and nvm-windows.

● PRACTICAL EXERCISE: Guided and independent setup of a development environment.

Subject 3. WEB DEVELOPMENT OVERVIEW (2)

● A short history of web development

● What are: HTML, CSS, Flex, JavaScript, TypeScript, and Angular and how do they fit one

another.

● What is a library?

● Dependency management and npm.

● PRACTICAL EXERCISE: Installing a library via npm nad examining what, precisely, gets

30

installed.

Subject 4. WEB APP APPEARANCE I (8)

● Markup languages

● The difference between markup and programing

● Examples of markup languages: Markdown

● HTML5: structure and function, tags, attributes, and contents.

● Semantic tags versus appearance tags.

● Specifying the header via meta tags.

● Linking assets to the main HTML document.

● PRACTICAL EXERCISE: Writing HTML pages for various tasks:

● Informative content-focused page.

● Smart home interface page.

● Data entry/form page.

Subject 5. WEB APP APPEARANCE II (8)

● The difference between style and structure of a document.

● CSS: versions, purpose, and structure.

● CSS selectors

● CSS attributes

● CSS functions

● Color models & specifying color

● CSS units

● Page layout using CSS

● Responsive CSS

● CSS and accessibility

● PRACTICAL EXERCISE: Styling the examples made previously. Using CSS to impose

appearance and layout on a predefined structure.

Subject 6 WEB PROGRAMMING I (8)

● What is JavaScript?

● Why not work in JavaScript?

● Hidden errors, weak typing, and the compatibility issue.

● The universal use of transpiling.

● The advantages of TypeScript

● How does TypeScript work?

● TypeScript presented through compare and contrast with the Java programming language.

● Declaring variables: let and const.

● New types of assignment: destructuring and spread.

● Types, arrays, tuples, and arrays.

● Precise uncertainty: any, void, null, undefined, and never.

● Casting variables in TypeScript.

● PRACTICAL EXERCISE: Fizzbuzz in TypeScript. Finding prime numbers. Sorting arrays.

Computing Fibonacci numbers. Computing arbitrary number sequences.

Subject 7. WEB PROGRAMMING II (8)

● Interfaces in TypeScript: implicit implementation and contract-based programming.

● TypeScript functions: types, optional and default parameters, anonymous functions, and function

interfaces.

● Anonymous functions in the arrow notation.

31

● TypeScript classes.

● Generic programming in TypeScript.

● Specialized loops: for in and for of.

● Low-level interaction with the web page.

● PRACTICAL EXERCISE: Towers of Hanoi, Lengton’s Ant, The Game of Life. Learning how to

model complex tasks.

Subject 7. WEB PROGRAMMING III (6)

● Using TypeScript to control the web page without frameworks.

● Representing Web pages using DOM.

● How a conventional web app would work.

● Why frameworks were invented.

● PRACTICAL EXERCISE: Wiring a previously created and styled data entry form.

Subject 9. ANGULAR — INTRODUCTION (10)

● What is Angular? What is its purpose?

● An analysis of the QuickStart Angular project as an example of a complexly configured solution.

● Angular and tooling.

● Angular CLI

● Angular components: code and template. An example of further separation of appearance,

structure, and behavior.

● Bindings and directives: *nfIf and *ngFor.

● Two-way binding for application interactivity.

● Component styles

● Event driven programming in Angular.

● Event handling in Angular: handlers, pseudo-events, and $event.

● Debugging an Angular/TS application.

● Combining components in Angular.

● Interaction between components in Angular.

● PRACTICAL EXERCISE: Wiring a previously created and styled data entry form to

communicated with an Angular application.

Subject 10. ADVANCED ANGULAR (10)

● Angular services.

● Externalization of data management functionality and mocking.

● Providers.

● Lifecycle hooks.

● Responsive application programming in Angular.

● Asynchronous programming as a concept.

● Callbacks as a mechanism of asynchronous programming.

● Issues with callbacks.

● Promises: then and catch.

● Routing and navigating in complex projects.

● Static and dynamic routes; parametrization of routes.

● Location services and user navigation control.

● Using pipes to filter bound data.

● Routing modularization.

● Programmatical routing and navigation.

● Remote access to data using the HTTP protocol to access web services.

32

● Promises and observable objects.

● PRACTICAL EXERCISE: Writing a simple application which fetches data from a HTTP server

and displays it in multiple views.

GRADING

● Student grading is combined with the previous course.

● The grading is undertaken after both courses are complete and consists of a complete web

application: front- and back- end.

● The web application counts for 60% of the course grade, in total.

● The application is graded on functionality, user-friendliness, and robustness.

LITERATURE

1. Aravind Shenoy, “Thinking in HTML”

2. E.A. Meyer, E. Weyl, “CSS: The Definitive Guide: Visual Presentation for the Web”

3. D. Crockford, “JavaScript: The Good Parts”

4. D. Flannagan, “JavaScript: The Definitive Guide”

5. https://www.typescriptlang.org/docs/home.html

6. https://angular.io/docs

Entrepreneurship Module

Career management in the ICT sector

Available online support

Online platform for peer to peer exchange and mentoring support

GOAL

To arm trainees with knowledge and skill necessary for career management, from job hunt up to

maintaining job and climbing corporate ladder. The aim is for trainees to get acquainted with key aspects

of a job interview and how to prepare for one, including compilation of a CV/resume, cover and

motivation letter; managing on-the-job expectations, maintaining performance levels and working toward

career advancement – through communication, self-awareness, team work and leadership.

TEACHING METHODOLOGY

The training includes theoretical lectures and case studies with the interaction lecturer-participants and

role-playing, testing before and after the completed course (technical and HR tests, HR interview,

interview with team leader). Methodology includes visits to IT companies in order to bring the real sector

closer to trainees, demystify it and motivate them.

LEARNING OUTCOMES

Trainees will be able to understand basic mechanisms of career development, compile and apply their

own career development strategy, and measure their success in the context of achieving personal and

organizational goals.

33

Entrepreneurship in the ICT sector

AVAILABLE ONLINE SUPPORT

Online platform for peer to peer exchange and mentoring support

GOAL

To introduce entrepreneurship to trainees in a way which will deconstruct traditional fears connected to it:

failure, humiliation, uncertainty, low self-esteem. Open new horizons and opportunities for trainees that

entrepreneurship offers, but helping them come to a right decision about whether they have it in them or

not and, if they do – help them develop a startup strategy, search & detect sources of finances, and

available services to entrepreneurs.

TEACHING METHODOLOGY

Theoretical classes with a lot of case studies, and at least one guest lecture from an entrepreneur. Role

playing, group work, and mock-up business plan development. Pitching training.

LEARNING OUTCOMES

After these classes, students will be aware of basic challenges and possible strategies for gaining support

to their entrepreneurial ideas in the support eco system in Serbia. They should also be able to

conceptualize a startup idea and comprise it into an effective pitch.

Disclaimer:

This document has been produced with the financial assistance of the European Union.

The content of the document is the sole responsibility of Vojvodina ICT Cluster, and can under no

circumstances be regarded as reflecting the position of the European Union and/or the Managing

Authority.