Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
46 views

Syllabus: Topic: Basics of Software Development in C# Lecturer: Miloš Kosanović Course Objectives

The document provides a syllabus for a .NET course that teaches software development in C#. The course objectives are to teach students the basics of software development through problem solving, algorithms, and implementing solutions in C#. Key topics covered include basic data types, data structures, object-oriented programming, version control with Git, and practical exercises in Visual Studio. Students will be evaluated based on homework assignments, in-class activity, and a final exam consisting of multiple choice questions and practical assignments to test their problem solving skills in C#. The course will run for 40 classes over 10 days, with lectures and practical exercises each day.

Uploaded by

dakilokica
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
46 views

Syllabus: Topic: Basics of Software Development in C# Lecturer: Miloš Kosanović Course Objectives

The document provides a syllabus for a .NET course that teaches software development in C#. The course objectives are to teach students the basics of software development through problem solving, algorithms, and implementing solutions in C#. Key topics covered include basic data types, data structures, object-oriented programming, version control with Git, and practical exercises in Visual Studio. Students will be evaluated based on homework assignments, in-class activity, and a final exam consisting of multiple choice questions and practical assignments to test their problem solving skills in C#. The course will run for 40 classes over 10 days, with lectures and practical exercises each day.

Uploaded by

dakilokica
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

.

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

You might also like