• Türkçe
  • English
Course Code: 
CIS 114
Course Period: 
Spring
Course Type: 
Core
P: 
2
Lab: 
0
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
Topics Study Materials  
Python for Java programmers. Lecture Notes  
Data Structures in Python Lecture Notes  
Growth of Functions (Complexity measures (Big-O)) Chapter 3  
Divide and Conquer Approach Chapter 4  
Sorting Algorithms (Insertion Sort, Merge Sort)    
Sorting Algorithms (Quick Sort, Heap Sort) Chapter 6 and 7  
Searching Algorithms (Linear Search, Binary Search) Chapter 12  
Hashing and Hash Tables Chapter 11  
Midterm    
Searching Algorithms (Binary Search Trees, Red Black Trees) Chapter 12 and 13  
Dynamic Programming. Chapter 15  
Greedy Algorithms Chapter 16  
Elementary Graph Algorithms. Chapter 22  
Graph Algorithms and NP Completeness Chapter 23 and 24  
Final    

 

Recommended Sources

RECOMMENDED SOURCES
Lecture Notes  
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.

 

 

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

 

 

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