.
NET
Syllabus
Topic: Basics of Software Development in C#
Lecturer: Miloš Kosanović
Course objectives:
The course main objective is to teach students the basics of software development. Other goals are to
teach and enable students to think algorithmically, to enable them to analyze and breakdown real-life
problem into algorithmic steps, and then implement these steps in some programming language (in this
case C#). Student will also learn to recognize and use basic and advanced data structures like arrays,
strings, multidimensional arrays, hash tables, stack and queues. They will learn to write, compile, build
and debug program in Visual Studio 2015. Prior knowledge is not needed. Special attention will be given
to practical work, coding, and the usage of available online services that enable student to learn
programming concepts through practical examples and games.
Course outcomes:
The participants will acquire:
problem solving skills – to analyze real life problem, find and develop algorithmic steps
to solve it and then implement these steps in C# programming language
basic knowledge of programming in C#
experience with developing and debugging software in Visual Studio
knowledge about basic and advanced data structures
ability to use version controls tools like GIT/SVN
Theoretical teaching topics:
1. Algorithms and the elements of programming languages. Program control flow.
2. Basic data types and data structures
3. Modular programming, Functions, recursion
4. Advanced data structures: Strings, Hash tables, Stack and Queue
5. Version control and Git
Practical exercises:
The number of practical work will be 70%. The practical exercises will be implemented in Visual Studio
2015.
Evaluation:
Students will be evaluated based on:
1. Homework (20%) – There will be 2 homework assignments.
2. Activity (30%) – will be assessed by professor during lectures and will be based on
student activity, speed and skill shown during lecture assignments.
3. Final exam (50%)– will consist of ABCD test and practical test. Student will get
assignments for practical test that he needs to solve by using a computer.
Student will pass the exam if he has more than 50% of points.
Course duration:
It will last for 40 school classes (36 for lectures and 4 for tests). Lectures will be completed in a block
system in one-month time (10 days, 4 lectures per day)
Course content:
Homework
Day Topic Practical
And Test
1 Introduction to Computer Science and IT. Introduction to Visual
Jobs in IT Studio 2015
Computer SW and HW architecture. Cloud storage services
Introduction to algorithms. and Dropbox.
2 Introduction to C#. Coding and debugging a
Arithmetic, logic and relation operators. computer program.
Variables and data types.
Variable scope. Local and global variables.
Input and output statements. If statement.
3 Switch statement. Assignment with For and
Algorithms with Loops. while loops.
Infinite Loop and break and continue statements.
Introduction to data structures and Arrays.
4 Operations with arrays. Assignment with Arrays HW 1
Different array sorting algorithms and Lists.
Introduction to Multidimensional arrays.
Operations with Multidimensional arrays.
5 Introduction to Classes, objects and methods. Type conversion.
Introduction to standard library classes. Using Math and Date
Data type conversion. library classes.
6 Introduction to modular programming. Assignments with
Declaration and definition of functions. functions.
Referent data types.
Passing arguments to functions.
7 Recursion. Strings Assignments. HW2
Array as function parameter.
Introduction to String data type.
Methods of String class and operations with strings
8 Introduction to generic classes. Hash tables, Stack,
Advanced data structures. Queue
Hash tables, Linked list, Stack, Queue.
9 Introduction to version control. Git Assignment.
Introduction to Git.
10 Summary of the course. Final Test
The analysis of the final test.
Topic: Object-oriented programming
Lecturer: Suzana Stojkovid
Course objectives:
The course main objective is to teach students the basics of the object-oriented programming
technique. Other goals are to teach and enable students to design object-oriented software. Student
will also learn to develop Windows applicateion in Visual Studio 2015. Prior knowledge is the procedural
programming in some C-like language. Special attention will be given to practical work.
Course outcomes:
Mastering the object oriented programming and skills to independently design solutions to problems
using the object-oriented concept and to learn how to develop applications in C# programs. Students
will acquire:
o strong understanding of OOP concepts
o Good understanding of standard .NET libraries
o Further develop real life problem solving skills
Theoretical teaching topics:
The concepts of object oriented programming. Classes and object. Constructors.
Programming in C#.
Static class members. Operator overloading. Inheritance. Polymorphism. Abstract classes and
interfaces.
Exception handling.
Working with files and file-system in C#.
Windows programming in C#.
Practical exercises:
The number of practical work will be 60%. The practical exercises will be implemented in Visual Studio
2015.
Evaluation:
Students will be evaluated based on:
4. Homework (20%) – There will be 2 homework assignments.
5. Activity (30%) – will be assessed by professor during lectures and will be based on student
activity, speed and skill shown during lecture assignments.
6. Final exam (50%)– will consist of ABCD test and practical test. Student will get assignments for
practical test that he needs to solve by using a computer.
Student will pass the exam if he has more than 50% of points.
Course duration:
It will last for 40 school classes (36 for lectures and 4 for tests). Lectures will be completed in a block
system in one-month time (10 days, 4 lectures per day)
Course content:
Homework
Day Topic Practical
and Testing
1 1. class: Procedural, modular and object- 1. class: Develop object-oriented
oriented programming techniques. Class application in VS 2015. Adding class
definition, attributes and methodes. Class by using class wizard. Creating class
member access. Objects creation. diagram.
2 class: Properties in C#, reference this, 2. class: Adding some properties and
static slass members. static attributes and methods in the
created application.
2 1. class: Value and reference types. 1, 2. class: C# application with many
Structures and enumerations. classes, enumerations and structures.
2 class: Pass parameters by value and by
reference. Methods with variable number
of parameters.
3 1. class: Constructors. 1, 2 class: C# application containing
classes with constructors and
2 class: Operator overloading. Indexers.
operator methods.
4 1. class: Inheritance. Definition of derived 1, 2 class: Application with base and
class. Constructors of derived classes. derived classes.
2 class: Polymorphism. Virtual and override
methods in C#.
5 1. class: Abstract methods and abstract 1, 2 class: Application containing HW 1
classes. abstract classes or interfaces.
2 class: Interfaces in C#.
6 1. class: Exception handling: exception 1, 2 class: Application with generic
throwing, exception catching. Uncaughet classes and exceptions.
exceptions.
2 class: Generic methods and classes.
7 1. class: Delegates and events. 1, 2. class: Simple Windows
applications.
2 class: Event driven programming.
Windows forms and windows controls 2 class:
8 1. class: New controls, their properties and 1, 2, 3 class: Windows application HW2
events. with many forms.
9 1. class: Input-output. Working with binary 1, 2: Application containing reading
and textual files in C#. data from the files, and writing data
in the files.
2 class: Working with file-sysetm in C#.
10 Summary of the course. Final Test
Topic: Introduction to relational databases
Lecturer: Milan Zdravkovid
Course objectives: To achieve understanding of designing and manipulating relational data structures
Course outcomes: Main desired outcomes are:
- Ability of participants to independently design relational data structures of moderate
complexity.
- Ability of participants to independently develop SQL queries for the web projects of
moderate complexity
Theoretical teaching topics: Different techniques and approaches for information modeling. Relational
Database Management Systems – main concepts, definition, architecture. Conceptual design of
databases – Entity-Relationship (ER) modeling. Logical database design: datatypes, transformation of
conceptual to logical database design, Implementation of database by using SQL language, Data
constraints, Referential integrity. Physical database design: schema normalization and denormalization,
SQL query optimization and indexing, application and security aspects of the database design (access
control, data audit), different functions of the RDBMS (views, stored procedures, triggers, transactions).
Data view and manipulation by using SQL: data inserting, data deletion, data updates, viewing data
(sorting, viewing data from multiple tables, basic data processing, working with time and date functions,
subqueries, aggregate queries). SQL query optimization – continuation.
Practical exercises: Exercising basic information modeling: for the given form, define concepts, their
characteristics, their constraints and their relationships. Exercising hierarchical data modeling: for the
given website, develop XML schema. Using draw.io service for drawing ER models. Exercising basic
understanding of the ER concepts: for the number of given short and longer sentences, identify concepts
and relationships and draw basic ER models. Exercising understanding of data and relation properties:
for the given narrative text, design ER models. Exercising advanced ER concepts, namely, identificators,
complex and multi-valued attributes, weak entities, asociative entities, cardinality and modality,
relationships with optional and mandatory entity participation, identifying and non-identifying
relationships, recursive relationships: for the given narrative text, design ER models. Exercising
transformation of conceptual to logical database design: for the given conceptual ER model, design
database schema, by using WWW SQL designer web service. MySQL software installation and
customization. SQL exercises: for the given texts and given database designs, develop the set of INSERT,
UPDATE and SELECT queries.
Evaluation: The overall grade is composed of the partial assessments of homework (20% of overall
grade, total of 3 homework assignments), final exam (50% of overall grade, practical test with the
narrative form of requirements which need to be transposed to a logical and physical database design +
narrative functional requirements for the given database structure which need to be transposed to SQL
queries) and participants engagement during class assignments (30% of overall grade, include trainers
personal assessment of the participants skills).
Course duration: The course is 40 classess long (36 for lectures and practical work, 4 for a final exam).
The 4 classes blocks will be implemented by day.
Course content:
Day Topic Practice Homework and testing
1 Class 1. Client-server architecture Define basic functional
DIKTW pyramid: Data, Information, requirements for the
Knowledge, Wisdom given website idea
Meta-data Identify concepts, their
Class 2. Hierarchical models – XML features, constraints
Data model features, data features and relationships for
Class 3. Data modeling approaches and the given examples
tools Based on the identified
Relational databases, RDBMS functional
Class 4. Process of database design requirements, design
XML schema
Summary discussion
2 Class 1. Conceptual, logical and physical Using draw.io web
design service for drawing ER
Key elements of the conceptual design schemas
Entity types, weak entities Design simple ER
Class 2. Associative entities, category schemas for the given
entities short and longer
Attributes sentences –
Class 3. ER notation identification of
Class 4. Cardinality entities, entity types
and relationships and
their cardinalities
Demonstration of
conceptual design
process on example
Independent design of
the conceptual model
– 4 assignments
3 Class 1. Advanced ER concepts: Identify modalities for Homework – design
identificators, complex and multi- the given short conceptual model for 2
valued attributes examples given narrative
Class 2. Weak entities, associative For the previously descriptions of
entities, modality, relationship with done assignments, websites
optional and mandatory entity implement advanced
participation, identifying and non- ER concepts above – 4
identifiying relationships, recursive assignments
relationships Independent design of
Class 3-4. Exercises ER models of moderate
complexity – 3
assignments
4 Class 1. Transformation of conceptual Working with WWW Homework – transform
to logical design SQL Designer online conceptual to logical
Data types (textual, numeric, date and tool model for two given
time) Demonstration – models – 2
Class 2-3. WWW SQL Designer online transformation of assignments
tool conceptual to logical
Class 4. Transformation of subtypes design – reference
Creating constraints example
Saving, opening and
generating SQL code in
WWW SQL Designer
MySQL software
installation and
customization
5 Class 1. Introduction to SQL. Key Creating databases
principles with the code
Class 2. CREATE TABLE command generated from WWW
Class 3. Application and security SQL Designer
aspects of database design. Inserting data in the
Class 4. INSERT command created database –
demonstration and
assignment
6 Class 1. Basic structure of SELECT, Assignments – design Homework – for the
UPDATE and DELETE SQL queries of SELECT, UPDATE and given sentences
Operators DELETE queries based (functional
Class 2. Criteria for data manipulation, on the given narrative requirements) design
using joker characters – functional SELECT, UPDATE and
Sorting requirements DELETE queries
Class 3. Joining data (INNER, LEFT, Assignments – joining
RIGHT, FULL) data and basic data
Using aliases processing
DISTINCT clause
Class 4. Basic data processing
7 Class 1. Basic structure of aggregate Demonstration of
queries examples of aggregate
Aggregate functions: MIN, MAX, SUM, queries
AVG, COUNT Assignments – design
Class 2-3. GROUP BY, HAVING clauses of aggregate queries
Class 4. SQL date and time functions Demonstration of
examples of using date
and time functions
8 Class 1-2. Functions of RDBM systems Demonstration of
Views, Stored procedures, Triggers, RDBMS functions
Transactions Discussion on schema
Class 3. Indexing normalization
Class 4. Schema normalization approaches
9 Class 1-2. Pre-exam Participants are given Self-evaluation
Class 3-4. Discussion and self- the example of exam.
evaluation They work on the
solutions for the given
problems. After the
completion, teacher
presents the solution,
summary discussion
takes place, based on
which participants are
self-evaluated.
10 Class 1-4. Final exam Final exam
Topic: Web programming
Lecturer: Željko Kalezid
Course objectives:
The course main objective is to teach students the basics of web software development. Other goals are
to teach and enable students to think algorithmically, to enable them to analyze and breakdown real-life
problem into algorithmic steps. The course will introduce advanced server side programming techniques
in ASP.NET, which is open-source server-side web application framework designed for web development
to produce dynamic web pages. The participants will gain the ability to independently develop web
application in ASP.NET – MVC for web pages and ASP.NET - WebAPI for service oriented applications.
They will learn to write, compile, build and debug web applications in Visual Studio 2017. Prior
knowledge is not needed. Special attention will be given to practical work, coding, and teamwork
through team projects.
Course outcomes:
The participants will acquire:
● Basic understanding of HTML/CSS
● Experience with server-side .NET development
● Experience with .NET, C#, ASP .NET MVC, ASP .NET Web API, JSON, REST
● Experience with securing Web applications (authorization and authentication)
● Knowledge of web-application architecture (multi-module, multi-layered systems)
● Experience with OR Mapping - Entity Framework (Code First, Database First)
● Basic Javascript understanding
Theoretical teaching topics:
1. Architecture of a Web applications
2. Server-Side Programming Concepts
3. ASP.NET and IIS Overview
4. Working with databases
5. Model-View-Controller pattern
6. Web Services and Ajax
7. Security
Practical exercises:
40% to 60% of working hours. Introduction to Visual Studio development environment and Web
projects. The implementation and publishing of web applications.
Evaluation:
Students will be evaluated based on:
1. Homework (20%) – There will be 4 homework assignments.
2. Activity (30%) – will be assessed by professor during lectures and will be based on student
activity, speed and skill shown during lecture assignments.
3. Final exam (50%) – will consist of ABCD test and team project. Students will get assignment for
practical team project (eg. to build a web shop) that they need to solve by using a computer in
teams and they also need to present the solution.
Student will pass the exam if he has more than 50% of points.
Course duration:
It will last for 108 school classes (104 for lectures and 4 for tests). Lectures will be completed in a block
system in two-months time (27 days, 4 lectures per day)
Course content:
Homework
Day Topic Practical
and Testing
1 Explaining course content and structure Create default ASP.NET MVC
Web application architecture fundamentals application
Client server architecture
Three tier architecture
MVC pattern
Object Relational Mapper
Entity Framework
2 HTTP Protocol fundamentals Create Github repository
Development Tools (Visual Studio 2017)
Version control systems Commit code to Github
Git Flow repository organization methodology
Cloud Fundamentals Deploy code to Azure
Windows Azure platform
3 Object Relational Mapper Fundamentals Create ORM Model, create
Entity Framework Introduction migration and add the model
DB Context to DB Context
Entity Lifecycle
4 Basic operations with DB data through ORM Create CRUD controllers using
(Create, Read, Update, Delete - CRUD) scaffolding and execute basic
operations
5 Database relations through ORM (1:1, 1:N, M:N) Add relations using ORM
Validation of model data Add validation to the models
Model inheritance and polymorphism
6 Request processing in MVC .NET Adding routes through
Routing in MVC .NET attributes and using
Routing engine fundamentals convention
Route configuration: Adding custom routes with
- Attribute based constraints
- Convention based
Route registration
Route defaults, priorities and constraints
7 Controllers in MVC .NET Passing parameters through
IController interface example query string, route and using
Controller base class model binder
Action Methods
Action Results
Filters
Request object
HttpContext object
User object
Passing parameters to controller (query string,
route attributes, model binder)
8 Returning data from controllers Test Content, JSON and File
Action Results Examples (Content, Json, File, View) ActionResults
ASP .NET VIews Fundamentals
Intro to HTML
Intro to Razor syntax
9 Passing data to views Create two views, one
ViewBag and ViewData objects strongly typed and one
View Models weakly typed.
Strongly and weakly typed views
Pass data to the views using
Models and ViewBag
10 Advanced ASP .NET View topics Add Bootstrap theme HW1
Layout views
Partial views Move navigation bar to
View Composition partial view
Adding a Bootstrap theme
Resource bundling Add section and add some
Sections basic JS code to it
Javascript basics
11 Creating Forms from scratch Create a form that has ability
HTML Helpers introduction to change multiple objects
Strongly typed HTML helpers
Advanced validation
Working with models and relations in forms
12 Working with data through Entity Framework Create a datagrid with
LINQ Introduction sorting, filtering and
Package Manager Introduction pagination
Creating datagrid with search, sorting and
pagination capabilities
13 ASP .NET Filter Introduction and Fundamentals Add authorization filters to
Authorization Filters desired action on a controller
Action Filters
Response Filters Deploy website on IIS & SQL
Exception Filters Express
Filter registration
Filter execution priority
IIS & SQL Express introduction
Connection strings
14 Web application security fundamentals Analyze ASP .NET Identity DB HW2
ASP .NET Identity Introduction structure
Authentication
Authorization based on Roles Create account and login to
ASP .NET Identity Configuration (Confirmation the system, explore manage
email, password parameters, ...) account page
Creating System Roles
Adding additional user information to identity ASP .NET Identity
model configuration: setup
Web.config fundamentals confirmation email and
password parameters
Add additional user
information (eg. birthday)
Add default system roles to
Seed method and add
authorization based on Roles
to a desired controller action
15 Social network login fundamentals Create Facebook application
OAUTH Protocol Introduction
Adding Facebook login to web application Setup ASP .NET Identity login
through Facebook
16 REST Fundamentals - Creating RESTful web service
Creating, using and testing Web API REST services using Web API
17 jQuery Datatables - HTML and Ajax datasource Consuming webservice using
Usage of OData and SOAP/WSDL services jQuery DataTables plugin
Using OData and
WSDL/SOAP web services
using service references
18 Team Project Workshops Implementing defined DB HW3
- - Defining team project themes (ORM Model) structure HW4
25 - Defining functionalities to be implemented
- Defining DB (ORM Model) structure Implementing Role based
- Defining authorization scheme (Roles) authorization
- Defining controllers and supporting views
- Styling the project with Bootstrap themes Implementing controllers and
supporting views
Implementing project themes
26 Advanced topics: MVC Core and Websocket /
(SignalR) Introduction
27 Final exam and team project presentation / Final exam
Future career advices from industry professional
Team project
presentation
Topic: Methodologies and tools for software development
Lecturer: Miloš Kosanovid
Course objectives:
The course will introduce the concepts and methodologies of the agile software development,
life-cycle, development processes and Project Management frameworks.
Course outcomes:
The participants will understand all processes and activities in software development and will
be able to participate in all phases of software project cycle.
Theoretical teaching topics:
1. Methodologies overview (frameworks and approaches). Software development life cycle and
software development process. User interface design.
2. Requirements Engineering. Agile methodology (SCRUM).
3. Task planning. Task estimation and implementation.
4. Architecture design. UML language. Testing and documenting.
5. Deployment and Maintenance. Project Management frameworks.
Practical exercises:
20% to 50% of working hours. The practical exercises will include scrum meeting simulation,
sprint planning meeting simulation, use case analysis and discussion, software tools for fast
wireframe and UI development, overview and demonstration of tools for project management
and issue tracking.
Course content: Lecturer will need to complete a course from the selected field with its own
course curriculum.
Course duration: The course will last for 24 school classes (20 for lectures and 4 for tests).
Lectures will be completed in a block system (6 days with 4 classes per day).
Curriculum
The first day should be the general introduction into the course topics and the software
development cycle in general. The content and the learning pace will depend on the
candidate’s previous knowledge and experience. The remaining 5 days will follow the rule: 2
school classes of lecture, 2 school classes of practical work. The goal of the course will be to
follow the development of one real life project example from its inception to the first
production release of the product. It will be requested from the candidates to create a team for
the project, analyze the requirements, specify high level requirements, create the tasks or user
stories, describe the testing and quality procedures and describe their solution to the real life
problems.
Grading
1. Homework assignments will be graded with 20%
2. Lecturer will grade each student based on general impression with 30%.
3. Final ABCD test and project (which will contain requirements specification document) will be
graded with 50%
The student will pass each test if he has correctly answered more than 50% of the questions. The
student will pass the course if he has more than 50% of points.
Tests
The test questions and the topic of the project assignment will not be disclosed due to
confidentiality reasons.
Course content:
Homework
Day Topic Practical
And Test
1 Introduction, Course overview, Methodologies Create wireframes (use HW 1
overview (framework and approaches) Balsamiq)
SDLC - Software Development Life Cycle.
Waterfall method, V model
Incremental model, Iterative model (RUP, EUP),
Prototype model, Spiral model
UI Design - Wire-Frames and Mock-ups
2 Requirements Analysis & Specification. Functional Test project explanation
and non-functional requirements and proposal
User stories SCRUM meeting simulation,
Introduction to project assigment Case stady I –
Requirements meeting
Agile methodology (SCRUM, Kanban, XP),
Comparison between standard and agile approach.
Team roles in agile development
Test Driven Development TDD, Behaviour Driven
Development BDD
Continious Integration
Agile software development process.
3 SCRUM WBS – Work breakdown HW 2
KANBAN structure
Planning and estimating tasks Sprint planning meeting
The Vision or Long term planning, Scope change. simulaton
Time constraints and other problems.
4 Tehnical design (specification). UML diagrams. Use UML diagrams (starUML,
Case, Activity and class diagram, Sequence diagrams, gliphy))
System design, DataBase design Questions and discussion
Coding - good coding practice, Writing unit tests.
Software Testing and Quality Assurance.
Software Maintenance and end user support
5 Project Managment Introduction to some
Project Managmenet frameworks overview (JIRA, Project management tool
redmine, microsoft project, gunter) Write tasks in some project
Other tools for project management, development management tool
and issue tracking, Reporting bugs
6 Coding - good coding practice. Final Test
Software Maintenance and end user support
Documenting projects