2005 Pearson Education, Inc. All rights reserved. 1 25 Accessing Databases with JDBC.
Training material ICT Cluster AcademyJava & databases basics (60%) Basics of Object Oriented...
Transcript of Training material ICT Cluster AcademyJava & databases basics (60%) Basics of Object Oriented...
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.