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
1