• Türkçe
  • English
Course Code: 
COMP 322
Course Type: 
Area Elective
P: 
3
Lab: 
0
Credits: 
3
ECTS: 
6
Course Language: 
İngilizce
Course Objectives: 
Introduce the principles of object-oriented programming in a higher-level programming language, such as Python or Java. Analyze a problem statement to develop a mental model of objects necessary to create a software architecture. Utilize object-oriented programming to frame software architectures, with care towards separation of concerns and abstraction. Gain skills in designing, and programming software for reuse of code. Establish development methods in object-oriented programming to qualify students for teaching the language in other settings
Course Content: 

Applications to system administration, advance data structures, networking, database applications, socket-programming, advance concept in python.

Course Methodology: 
1: Anlatım, 2: Soru-Cevap, 3: Tartışma, 4: Simulasyon, 5: Durum Çalışması
Course Evaluation Methods: 
A: Sınav B: Presentasyon, C: Ödev, D: Proje, E: Laboratuar

Vertical Tabs

Course Learning Outcomes

Learning Outcomes Program Learning Outcomes Teaching Methods Assessment Methods
Develop understanding of writing object-oriented programs that combine functions and data. 2,4,6 1,5 C,E
Analyze a problem statement to develop a mental model of objects necessary to create a software architecture 2,4,6 1,2 C, E
Translate abstract concepts into Class's in software 2,4,6 1,2,5 A,E
Apply the object-oriented programming language to develop software, including programs utilizing multiple Class's 2,4,6 1,2,3 A, C
Instruct others in the use of the object-oriented programming language 2,4,6 1,3 B, D
Combine previously written code into larger programs 2,4,6 4, 5 B,D

Course Flow

COURSE CONTENT
Week Topics Study Materials
1 Introduction to Course

+ Review of Basic OOP Concepts

Lecture Notes
2 Nested Class and Lambda Expresions Lecture Notes
3 Database Programming Lecture Notes
4 Java Beans Persistency Lecture Notes
5 Exceptions Lecture Notes
6 . Streams and Files Lecture Notes
7   Data Encoding and Processing Lecture Notes
8 Midterm Examination  
9 Collections Lecture Notes
10 . Generics Lecture Notes
11 . Concurency Lecture Notes
12 Socket Programming Lecture Notes
13 Test Driven Software Development Lecture Notes
14 Graphical User Interface Design  
15 Final  

Recommended Sources

RECOMMENDED SOURCES
Textbook Michał Jaworski and Tarek Ziadé, Expert Python Programming Third Edition, Packt Publishing, 2019.

Luciano Ramalho, Fluent Python: Clear, Concise, and Effective Programming, O'Reilly Media, Inc.,2015.

David Beazley, Brian K. Jones, Python Cookbook, 3rd Edition, O'Reilly Media,2013.

Additional Resources Online reference material at python.org

Material Sharing

Documents Guidelines and additional examples for Lecture Topics
Assignments Homework Assignments
Exams Midterm Exam and Final Exam

Assessment

ASSESSMENT
IN-TERM STUDIES NUMBER PERCENTAGE
Homework assignment 10 50
Project presentation 1 30
Midterm Examination 1 20
Total   100
CONTRIBUTION OF FINAL EXAMINATION TO OVERALL GRADE   40
CONTRIBUTION OF IN-TERM STUDIES TO OVERALL GRADE   60
Total   100

ECTS

ECTS ALLOCATED BASED ON STUDENT WORKLOAD BY THE COURSE DESCRIPTION
Activities Quantity Duration
(Hour)
Total
Workload
(Hour)
Course Duration (Including the exam week: 16x Total course hours) 15 3 45
Hours for off-the-classroom study (Pre-study, practice) 15 3 45
Homework 10 2 20
Midterm Examination 1 2 2
Preparation of class presentation 1 13 13
      0
Total Work Load     125
Total Work Load / 25 (h)     5,00
ECTS Credit of the Course     5
None