• Türkçe
  • English
Course Code: 
CIS 114
Course Period: 
Spring
Course Type: 
Core
P: 
2
Lab: 
2
Credits: 
3
ECTS: 
6
Course Language: 
İngilizce
Course Coordinator: 
Course Objectives: 
This course introduces a second programming language and uses it to teach students how to analyze and design algorithms and measure their complexities.
Course Content: 

Introduction to Python as a second language to Java. Design and analysis of algorithms, O-notation. Searching, sorting, graph algorithms.

Course Methodology: 
1: Lecture, 2: Question-Answer, 3: Discussion, 4: Lab Work
Course Evaluation Methods: 
A: Testing, B: Presentation, C: Homework, D: Project, E: Laboratory

Vertical Tabs

Course Learning Outcomes

Learning Outcomes Program Learning Outcomes Teaching Methods Assessment Methods
Analyze and design algorithms and measure their complexities 3,4 1,2,3 A,C
Recognize the theoretical foundations of the algorithms 3,4 1,2,3,4 A,E
Develop efficient algorithms for the solution of real-life computational problems. 3,4 1,4 A,E
Implement algorithms. 3,4 1,4 A,E
Analyzes searching and sorting algorithms. 3,4 1,2,4 A,E,C
Learn fundamentals of python programming language 3,4 1,2,4 A,E,C

 

 

Course Flow

COURSE CONTENT
Week Topics Study Materials
1 Python for Java programmers. Lecture Notes
2 Data Structures in Python Lecture Notes
3 Growth of Functions (Complexity measures (Big-O)) Chapter 3
4 Divide and Conquer Approach Chapter 4
5 Sorting Algorithms (Insertion Sort, Merge Sort)  
6 Sorting Algorithms (Quick Sort, Heap Sort) Chapter 6 and 7
7 Searching Algorithms (Linear Search, Binary Search) Chapter 12
8 Hashing and Hash Tables Chapter 11
9 Midterm  
10 Searching Algorithms (Binary Search Trees, Red Black Trees) Chapter 12 and 13
11 Dynamic Programming. Chapter 15
12 Greedy Algorithms Chapter 16
13 Elementary Graph Algorithms. Chapter 22
14 Graph Algorithms and NP Completeness Chapter 23 and 24
15 Final  

 

 

Recommended Sources

RECOMMENDED SOURCES
Textbook Lecture Notes
Additional Resources Introduction to Algorithms, 4th Edition, Cormen, Leiserson, Rivest, Stein; MIT Press 2022.

Java tutorials, (https://docs.oracle.com/javase/tutorial/), Oracle.

Start Out with Python, Global Edition, (4. edition), Gaddis, Pearson, 2021.

 

 

Material Sharing

MATERIAL SHARING
Documents Lecture Notes, Text Book
Assignments Quizzes
Exams 1

 

 

Assessment

ASSESSMENT
IN-TERM STUDIES NUMBER PERCENTAGE
Mid-term 1 40
Quizzes 1 20
Homeworks 10 40
Total   100
Contribution of Final Examination to Overall Grade   60
Contribution of In-Term Studies to Overall Grade   40
Total   100

 

 

Course’s Contribution to Program

COURSE’S CONTRIBUTION TO PROGRAM
No Program Learning Outcomes Contribution
1 2 3 4 5
1 Software Development graduates have the knowledge and the skills to design and develop the complete systems for multi-media visual user interface.     x    
2 Software Development graduates have advanced the knowledge and skills to design, develop and install the application systems for multi-media.       x  
3 Software Development graduates have the knowledge and the skills to design, develop and apply algorithms and data structures to solve the basic problems of information processing, within the framework of discrete mathematics.         x
4 Software Development graduates have the knowledge and the skills to design and develop computer applications, based on user specificed requirements, using modern structured development tools and install them on various hardware platforms and deploy their usage.       x  
5 Software Development graduates have the knowledge and the skills to design and develop computer applications, based on user specificed requirements, using modern object-oriented development tools and install them on various hardware platforms and deploy their usage.      x    
6 Software Development graduates know the logic of computer operating systems, the basic set of system commands, how to control access to system resources by users of different departments and how to monitor the running of jobs in the system.         x
7 Software Development graduates have the knowledge and the skills to design and develop data models serving different requirements, database applications that would access and process data using various types of software, including queries, reports and business applications.         x
8 Software Development graduates have the knowledge and the skills to design and develop business applications that would provide data acess, modification and processing for data kept in enterprise database systems.       x  
9 Software Development graduates have the knowledge about computer networks, and have  the skills to design,  develop and monitor  computer networks, how to configure them  and how to maintain their performance.     x    
10 Software Development graduates have the knowledge and the skills to design and develop visual user interfaces for the web, web-based applications for n-tier client/server configurations, how to deploy them in enterprises.       x  

 

 

ECTS

COURSE CATEGORY Expertise/Field Courses
ECTS ALLOCATED BASED ON STUDENT WORKLOAD BY THE COURSE DESCRIPTION
Activities Quantity Duration
(Hour)
Total
Workload
(Hour)
Course Duration 15 3 45
Hours for off-the-classroom study (Pre-study, practice) 15 3 45
Mid-term 1 10 10
Homeworks 10 3 30
Final Examination 1 10 10
Total Workload     140
Total Workload / 25 (s)     5,6
ECTS Credit of the Course     6

 

 

1