The goals of this course are to introduce the students the concept of algorithm, fundamental algorithmic techniques and conventional computational algorithms such as sorting and searching; to teach the students about how to design and develop algorithms in order to model and solve fundamental mathematical structures and problems.
Prerequisite(s)
None
Corequisite(s)
None
Special Requisite(s)
Proficiency in Python programming, Analysis, Linear Algebra and (in order to follow the course resources) basic English knowledge are necessary and sufficient.
Instructor(s)
Assist. Prof. Dr. Levent CUHACI
Course Assistant(s)
Schedule
Tuesday, 09:00-10:45
Tuesday, 11:00-12:45
Office Hour(s)
Tuesday, 13:00-15:00, via IKU-CATS
Teaching Methods and Techniques
- Lecture
- Implementation using Python Programming Language at Computer Lab.
Principle Sources
- Allen Downey, Jeffrey Elkner, Chris Meyers, How to Think Like a Computer Scientist – Learning with Python, 2nd ed., Green Tea Press, Wellesley, Massachussets, 2008.
- Lecture Notes
Other Sources
- James Payne, Beginning Python : Using Python 2.6 and Python 3.1, Wiley Publishing Inc., Indianapolis, Indiana, 2010.
- Tahir Emre Kalaycı (çevirmen), Bilgisayar Bilimcisi Gibi Düşünmek – Python ile Öğrenme, 2nci baskı (orjinalinden çeviri), GNU Lisansı, 2008.
- Mark Lutz, “Learning Python”, 4th ed., O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472, 2009.
Course Schedules
Week
Contents
Learning Methods
1. Week
Flow Charts and The Concept of Algorithm
Oral presentation, implementation
2. Week
Iterative and Recursive Algorithms
Oral presentation, implementation
3. Week
The Sorting Problem : Selection Sort, Merge Sort
Oral presentation, implementation
4. Week
The Searching Problem : Linear Searh, Binary Search
Oral presentation, implementation
5. Week
Derivative of Polynomials
Oral presentation, implementation
6. Week
Elementary Transcendental Functions
Oral presentation, implementation
7. Week
Sets, Finite and Infinite Sums
Oral presentation, implementation
8. Week
Midterm Exam-1
Exam
9. Week
Matrix Algebra
Oral presentation, implementation
10. Week
Gaussian Elimination, Inverse Matrix
Oral presentation, implementation
11. Week
Gauss-Jordan Method
Oral presentation, implementation
12. Week
Midterm Exam-2
Exam
13. Week
Binary and Hexadecimal Numeral Systems
Oral presentation, implementation
14. Week
Conversion Between Different Number Systems
Oral presentation, implementation
15. Week
Finals Week
Exam
16. Week
Finals Week
Exam
17. Week
Finals Week
Exam
Assessments
Evaluation tools
Quantity
Weight(%)
Midterm(s)
1
20
Project(s)
1
30
Final Exam
1
50
Program Outcomes
PO-1
Interpreting advanced theoretical and applied knowledge in Mathematics and Computer Science.
PO-2
Critiquing and evaluating data by implementing the acquired knowledge and skills in Mathematics and Computer Science.
PO-3
Recognizing, describing, and analyzing problems in Mathematics and Computer Science; producing solution proposals based on research and evidence.
PO-4
Understanding the operating logic of computer and recognizing computational-based thinking using mathematics as a discipline.
PO-5
Collaborating as a team-member, as well as individually, to produce solutions to problems in Mathematics and Computer Science.
PO-6
Communicating in a foreign language, and interpreting oral and written communicational abilities in Turkish.
PO-7
Using time effectively in inventing solutions by implementing analytical thinking.
PO-8
Understanding professional ethics and responsibilities.
PO-9
Having the ability to behave independently, to take initiative, and to be creative.
PO-10
Understanding the importance of lifelong learning and developing professional skills continuously.
PO-11
Using professional knowledge for the benefit of the society.
Learning Outcomes
LO-1
The student acquires the necessary background and prior knowledge for other programming courses which he/she will attend, most especially "Data Structures" and "Algorithm Analysis and Design".
LO-2
The student reviews previously learned information about Python programming, analysis and linear algebra.
LO-3
The student understands common algorithm design techniques and identifies the differences between these techniques.
LO-4
The student becomes acquainted with conventional computational problems and learns fundamental algorithms in order to solve these problems and also develops Python programs.
LO-5
The student develops appropriate models of mathematical structures, formulates solutions to fundamental mathematical problems and develops algorithms.