Faculty Of Engıneerıng
Computer And Software Engıneerıng

Course Information

ADVANCED PROGRAMMING
Code Semester Theoretical Practice National Credit ECTS Credit
Hour / Week
CSE108 Spring 3 2 4 5

Prerequisites and co-requisites None
Language of instruction English
Type Required
Level of Course Bachelor's
Lecturer Asst. Prof. Furkan GÖZÜKARA
Mode of Delivery Face to Face
Suggested Subject None
Professional practise ( internship ) None
Objectives of the Course Advanced programming topics and object oriented programming in C# programming language
Contents of the Course Essential concepts of object oriented programming, structures, classes, properties, methods, objects; Constructors, destructors, encapsulation, inheritance, polymorphism, operator overloading; Templates; Exceptions and exception handling; Dynamic memory allocation and management; Variable reference types; Threads, basics of threaded programming; Use of integrated development environments.

Learning Outcomes of Course

# Learning Outcomes
1 Become familiar with the main concepts and processes of object oriented programming;
2 Composing classes and writing methods are understood in details and established with examples;
3 Where and how to use private, public, protected variables, classes, methods and static, dynamic object concepts are understood;
4 How to store data, update data and read data from database is learned at beginners level;
5 With threading and tasks, fundamentals of multi-core programming is learned;
6 By understanding in details how to use form structure, advanced interface and features having computer programs can be coded;

Course Syllabus

# Subjects Teaching Methods and Technics
1 Dictionary usage, writing to a file, reading from a file, using structure, foreach loops, data type conversation Lecture
2 Dictionary usage, writing to a file, reading from a file, using structure, foreach loops, data type conversation Lecture
3 Class writing and using, function writing and using, recursive function programming, using stopwatch to calculate time, string formatting Lecture
4 Writing methods and classes with using constructors, constructor overloading, method overloading, static variables, static classes, static methods, Lecture
5 Introduction to MSSQL database, writing SQL database queries, writing a database connection class, using C# grid structure to effectively update database Lecture
6 Introduction to MSSQL database, writing SQL database queries, writing a database connection class, using C# grid structure to effectively update database Lecture
7 Using form structure to start multiple different forms, using task structure to do multi-threading programming and preventing main screen (main thread) freeze Lecture
8 Midterm Week - No Lesson
9 Global static variable definition, using form structure and database to show different screens to different ranks, improving database class with parameterized queries to prevent SQL injection attacks, using parameterized queries Lecture
10 Global static variable definition, using form structure and database to show different screens to different ranks, improving database class with parameterized queries to prevent SQL injection attacks, using parameterized queries Lecture
11 Using complex class structures, methods, expected and unexpected error handlers, HtmlAgilityPack library from Nuget and other 3 party libraries to develop an advanced web crawler Lecture
12 Using complex class structures, methods, expected and unexpected error handlers, HtmlAgilityPack library from Nuget and other 3 party libraries to develop an advanced web crawler, using XML and Json to save and read data Lecture
13 Using complex class structures, methods, expected and unexpected error handlers, HtmlAgilityPack library from Nuget and other 3 party libraries to develop an advanced web crawler Lecture
14 Class interfaces and class inheritance Lecture
15
16 Project Delivery Exam

Course Syllabus

# Material / Resources Information About Resources Reference / Recommended Resources
1 https://github.com/FurkanGozukara/Advanced-Programming-2019

Method of Assessment

# Weight Work Type Work Title
1 100% Final Project Final Project

Relationship between Learning Outcomes of Course and Program Outcomes

# Learning Outcomes Program Outcomes Method of Assessment
1 Become familiar with the main concepts and processes of object oriented programming; 1 1
2 Composing classes and writing methods are understood in details and established with examples; 1 1
3 Where and how to use private, public, protected variables, classes, methods and static, dynamic object concepts are understood; 1 1
4 How to store data, update data and read data from database is learned at beginners level; 1 1
5 With threading and tasks, fundamentals of multi-core programming is learned; 1 1
6 By understanding in details how to use form structure, advanced interface and features having computer programs can be coded; 1 1
PS. The numbers, which are shown in the column Method of Assessment, presents the methods shown in the previous table, titled as Method of Assessment.

Work Load Details

# Type of Work Quantity Time (Hour) Work Load
1 Course Duration 14 5 70
2 Course Duration Except Class (Preliminary Study, Enhancement) 14 2 28
3 Presentation and Seminar Preparation 0 0 0
4 Web Research, Library and Archival Work 0 0 0
5 Document/Information Listing 0 0 0
6 Workshop 0 0 0
7 Preparation for Midterm Exam 1 3 3
8 Midterm Exam 1 3 3
9 Quiz 0 0 0
10 Homework 1 4 4
11 Midterm Project 0 0 0
12 Midterm Exercise 0 0 0
13 Final Project 0 0 0
14 Final Exercise 1 6 6
15 Preparation for Final Exam 1 5 5
16 Final Exam 1 1 1
  120