At the end of this course, the students; 1) To gain the ability to use existing algorithms, to design and analyze algorithms. 2) To gain the ability to do data abstraction and generalized coding in software development. 3) To give the ability to solve big problems by breaking the problem into sub-parts. 4) To learn the concepts behind complexity theory and to gain the ability to develop appropriate software. 5) To gain interdisciplinary working skills.
MODE OF DELIVERY
Face to face
PRE-REQUISITES OF THE COURSE
Yes(CENG103)
RECOMMENDED OPTIONAL PROGRAMME COMPONENT
It is recommended that the student be successful by taking BİL101 and BİL105 courses before.
COURSE DEFINITION
The following topics are covered in the EEE120 course; Using existing algorithms, designing and analyzing algorithms, Data abstraction and generalized coding in software development, Solving big problems by subdividing the problem, Learning the concepts behind complexity theory and developing appropriate software
COURSE CONTENTS
WEEK
TOPICS
1st Week
1. Hafta Introduction, general repetition, double-dimensional arrays
2nd Week
2. Hafta Classes, basic data types, abstract data types ADT
3rd Week
3. Hafta Pointers, 1. Laboratory work.
4th Week
4. Hafta Strings, transformations, functions.
5th Week
5. Hafta Parameter passing methods, Macros and Command line arguments.
6th Week
6. Hafta Struct, initializations, member accesses, recursive functions
7th Week
7. Hafta Bitwise operations 2. Laboratory work.
8th Week
8. Hafta MIDTERM
9th Week
9. Hafta Introduction to list structures. Defining iterators and using them with list data structure. Examples. 3. Laboratory work.
10th Week
10. Hafta Stack data structure. Stack class, member functions. Working and usage patterns of stacks. Stack simulation example implementations and examples with stack classes.
11th Week
11. Hafta Introduction to the queue data structure. Queue class, member functions. Working and usage patterns. Queuing simulation examples and examples with queue classes. 4. Laboratory work.
12th Week
12. Hafta Priority queues and ways of working. Member functions. Radix Sort algorithm. Example applications.
13th Week
13. Hafta Dynamic data structures. Access to linked lists. Creating, searching, sorting, adding operations. Double Linked lists. Circular lists. Double linked circular lists. Examples. 5. Laboratory work.
14th Week
14. Hafta Trees. Binary search trees. Algorithms for creating a tree, removing data from a tree and adding data to a tree. Methods of navigating trees.
RECOMENDED OR REQUIRED READING
Data Structures with C++ Using STL, 2/E, William H. Ford, William R. Topp, Prentice Hall ISBN-10: 0130858501 ISBN-13: 9780130858504
PLANNED LEARNING ACTIVITIES AND TEACHING METHODS
Lecture,Presentation,Questions/Answers
ASSESSMENT METHODS AND CRITERIA
Quantity
Percentage(%)
Mid-term
1
30
Assignment
4
10
Practice
6
20
Total(%)
60
Contribution of In-term Studies to Overall Grade(%)
60
Contribution of Final Examination to Overall Grade(%)
40
Total(%)
100
ECTS WORKLOAD
Activities
Number
Hours
Workload
Midterm exam
1
2
2
Preparation for Quiz
3
10
30
Individual or group work
0
0
0
Preparation for Final exam
1
40
40
Course hours
5
1
5
Preparation for Midterm exam
1
30
30
Laboratory (including preparation)
6
12
72
Final exam
1
2
2
Homework
2
15
30
Total Workload
211
Total Workload / 30
7,03
ECTS Credits of the Course
7
LANGUAGE OF INSTRUCTION
English
WORK PLACEMENT(S)
No
KEY LEARNING OUTCOMES (KLO) / MATRIX OF LEARNING OUTCOMES (LO)