COMPUTER PROGRAMMING | |||||
---|---|---|---|---|---|
Qualification Awarded | Length of Program | Toplam Kredi (AKTS) | Mode of Study | Level of Qualification & Field of Study | |
Associate (Short Cycle) Degree | 2 | 120 | FULL TIME |
TQF, TQF-HE, EQF-LLL, ISCED (2011):Level 5 QF-EHEA:Short Cycle TQF-HE, ISCED (1997-2013): 48 |
Course Code: | BIP1024 | ||||||||
Course Name: | DATA STRUCTURES AND ALGORITHMS | ||||||||
Course Semester: | Spring | ||||||||
Course Credits: |
|
||||||||
Language of instruction: | |||||||||
Condition of Course: |
BIP1023 - BİLGİSAYAR TEKNOLOJİLERİ VE PROGRAMLAMA |
||||||||
Does the Course Work Experience Require?: | No | ||||||||
Course Type : | Zorunlu | ||||||||
Course Level: |
|
||||||||
Mode of Delivery: | Face to face | ||||||||
Name of Coordinator: | Dr. Öğr. Üyesi Refik Tanju SİRMEN | ||||||||
Course Lecturer(s): | Refik Tanju Sirmen | ||||||||
Course Assistants: |
Course Objectives: | This course aims to give generic information about main concepts, data structures, and algorithms of software engineering, teach effective data structure and algorithm creation and evaluation rules, and some important algorithms. Upon the successful completion of this course, the students will gain basic knowledge and skills in the following areas: 1. Specific software engineering concepts. 2. Algorithm design and evaluation techniques 3. Basic and Dynamic data structures. 4. Main computational problems and solution approaches. 5. Specific important algorithms. |
Course Content: | This course teaches specific concepts, data structures, and algorithms of software engineering, besides algorithm evaluation techniques and some important algorithms. |
The students who have succeeded in this course;
1) Basic data types and memory organization, Modules and variable declaration span, Classes and objects 2) Recursion, Algorithm and Algorithm analysis, Dynamic data structures 3) Search algorithms, Sort algorithms, Communication problems and solutions 4) Discrete vs. Fuzzy logic, Other main concepts and approaches 5) Various important problems and algorithms |
Week | Subject | Related Preparation |
1) | Basic data types and memory organization | |
2) | Modules and variable declaration span | |
3) | Classes and objects | |
4) | Recursion | |
5) | Algorithm and algorithm analysis | |
6) | Dynamic data structures | |
7) | Search algorithms | |
8) | Sort algorithms | |
9) | Communication problems and solutions | |
10) | Discrete vs. Fuzzy logic | |
11) | Other main concepts and approaches | |
12) | Some important problems and algorithms | |
13) | Term Project Presentation | |
14) | Final Exam |
Course Notes / Textbooks: | • Baka B., Python Data Structures and Algorithms, Packt Publishing, ISBN: 978-1-78646-735-5, 2017. • Notes and Presentations • Sample programs |
References: | • Bhargava A.Y., Grokking Algorithms - An Illustrated Guide for Programmers and Other Curious People, Manning Publications Co., ISBN: 9781617292231, 2016. |
Course Learning Outcomes | 1 |
2 |
3 |
4 |
5 |
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Program Outcomes | |||||||||||||||||
1) An ability to apply basic knowledge of mathematics, science, and engineering | 1 | 1 | 1 | ||||||||||||||
2) To learn basic computer knowledge, to make use of software and hardware components needed in the professional work life | 1 | 1 | 1 | 1 | |||||||||||||
3) To think algorithmically and use this ability in conducting software planning | 1 | 1 | 1 | ||||||||||||||
4) To define professional work life problems and to be able to solve them | 1 | 1 | |||||||||||||||
5) To code by using uptodate software programming languages | 1 | 1 | 1 | 1 | |||||||||||||
6) To design and code software using Internet technologies, to code client/server based programs | |||||||||||||||||
7) To learn designing a database and to code programs that have connection with a database | |||||||||||||||||
8) To gain basic electrics and electronics knowledge related with the computer hardware | |||||||||||||||||
9) An ability to apply their knowledge to maritime discipline | 1 | 1 | |||||||||||||||
10) To get responsibility in analyzing, designing, planning and coding phases of a software as well as writing reports in each of these phases. To have non-administrative responsibilities in project production | 1 | 1 | |||||||||||||||
11) To have a general knowledge about computer networks | |||||||||||||||||
12) To have basic knowledge about operating systems | |||||||||||||||||
13) To attain an ability to communicate written and orally effectively | 1 | 1 | |||||||||||||||
14) To take responsibility and initiative, to make decisions and be creative | 1 | 1 | |||||||||||||||
15) A recognition of the need for, and an ability to engage in life-long learning | |||||||||||||||||
16) An understanding of professional and ethical responsibilities | |||||||||||||||||
17) To be able to read and understand technical documents written in both Turkish and English, to be able to communicate written and orally effectively | 1 | 1 |
No Effect | 1 Lowest | 2 Average | 3 Highest |
Program Outcomes | Level of Contribution | |
1) | An ability to apply basic knowledge of mathematics, science, and engineering | 2 |
2) | To learn basic computer knowledge, to make use of software and hardware components needed in the professional work life | 2 |
3) | To think algorithmically and use this ability in conducting software planning | 1 |
4) | To define professional work life problems and to be able to solve them | 1 |
5) | To code by using uptodate software programming languages | 1 |
6) | To design and code software using Internet technologies, to code client/server based programs | 3 |
7) | To learn designing a database and to code programs that have connection with a database | 3 |
8) | To gain basic electrics and electronics knowledge related with the computer hardware | 3 |
9) | An ability to apply their knowledge to maritime discipline | 2 |
10) | To get responsibility in analyzing, designing, planning and coding phases of a software as well as writing reports in each of these phases. To have non-administrative responsibilities in project production | 2 |
11) | To have a general knowledge about computer networks | 3 |
12) | To have basic knowledge about operating systems | 3 |
13) | To attain an ability to communicate written and orally effectively | 2 |
14) | To take responsibility and initiative, to make decisions and be creative | 2 |
15) | A recognition of the need for, and an ability to engage in life-long learning | 3 |
16) | An understanding of professional and ethical responsibilities | 3 |
17) | To be able to read and understand technical documents written in both Turkish and English, to be able to communicate written and orally effectively | 2 |
Semester Requirements | Number of Activities | Level of Contribution |
Attendance | 1 | % 10 |
Project | 1 | % 45 |
Semester Final Exam | 1 | % 45 |
Total | % 100 | |
PERCENTAGE OF SEMESTER WORK | % 55 | |
PERCENTAGE OF FINAL WORK | % 45 | |
Total | % 100 |
Aktiviteler | Number of Activities | Duration (Hours) | Workload |
Course | 14 | 3 | 42 |
Presentations / Seminar | 1 | 20 | 20 |
Project | 1 | 45 | 45 |
Semester Final Exam | 1 | 45 | 45 |
Total Workload | 152 |