Home / Programmes / Mathematics / MAT231
COURSE INFORMATION PACKAGE · MAT231

Algorithms and Advanced Programming I

Compulsory · French Open to Erasmus+ exchange students
ECTS
3
Local Credit
3
Theory + Practice + Lab
1 + 1 + 1
Course Level
Bachelor Degree
Prerequisites
-
Semester
3
On this page
Content Weekly Contents Assessment System Relation of Proficiency ECTS
Course Instructor(s)
Esra ÇAKIR

Content

Objective

The purpose of this course is to improve students programming capabilities by the study of some common algorithms, their implementations and their applications to sample computational problems.

Course Content

Programming review (with Python): variables and state, conditionals, loops, functions
Basic data structures: list, multi dimensional array, tree
Common algorithms: search, sort, aggregate functions
Recursion: numeric computation, tree traversal (inorder/preorder/postorder)
Algorithm Analysis: time/space complexity classes

Course Learning Outcomes

When given a problem, students will be able to identify logical parts of the problem, their interdependencies and algorithms which can be used to solve each.
When given an algorithm, students will be able to compare its performance and characteristics to other algorithms of the same class.
When given a source code, students will be able to identify data structures and algorithms that are implemented in the given source code.

Teaching and Learning Methods

Theoric lectures, practical applications

References

Algorithmique - 3ème édition - Cours avec 957 exercices et 158 problèmes - Cormen, Leiserson, Riverst, Stein
Problem Solving with Algorithms and Data Structures Using Python - Bradley N Miller and David L. Ranum

The Art of Computer Programming - Donald Knuth
Python - How to Program - Deitel
Data Structures and Algorithms Using Python - Rance D. Necaise
Data Structures and Algorithms with Object-Oriented Design Patterns in Python - Bruno R.Preiss

Weekly Contents

Theory Topics
Week Weekly Contents
1 Introduction to algorithms, implementation of Euclidean division algorithm
2 Time Complexity Analysis: Largest and smallest divisor
3 Recusion
4 Data structures I
5 Data structures II
6 Data structures III
7 Sorting Algorithms: Time complexity and applications I
8 Midterm
9 Sorting Algorithms: Time complexity and applications II
10 Abstract Data Types
11 Trees
12 Numerical algorithms: random number generation, root finding
13 Search: simple search, binary search, searching recursively
14 Complexity classes, comparison of algorithms

Assessment System

Contribution to Overall Grade
Activities Number Contribution
Contribution of in-term studies to overall grade 1 50
Contribution of final exam to overall grade 1 50
Total 2 100
In-Term Studies
Activities Number Contribution
Assignments 0 0
Presentation 0 0
Midterm Examinations (including preparation) 1 100
Project 0 0
Laboratory 0 0
Other Applications 0 0
Quiz 0 0
Term Paper/ Project 0 0
Portfolio Study 0 0
Reports 0 0
Learning Diary 0 0
Thesis/ Project 0 0
Seminar 0 0
Other 0 0
Make-up 0 0
Total 1 100

Relation of Proficiency

No Program Learning Outcomes Contribution
1 2 3 4 5
1 understands principles of deductive reasoning; has experience to verify well-foundedness and exactness of mathematical statements in systematic ways; X
2 can properly state and use concepts and results of major mathematical interest; X
3 masters current computational techniques and algorithms; has a good ability in their use; can identify relevant tools, among those one has learned, suitable to solve a problem and is able to judge whether or not one is in possession of these tools; X
4 is able to express one’s mathematical ideas in an organised way both in written and oral forms; X
5 understands relations connecting substantial concepts and results; can switch from one viewpoint to another on mathematical objects (pictures, formulae, precise statements, heuristic trials, list of examples,...); X
6 has followed individually a guided learning strategy; has pursued steps toward the resolution of unfamiliar problems; X
7 has a theoretical and practical knowledge in computer science well adapted for learning a programming language; X
8 has investigated the relevance of modeling and using mathematical tools in natural sciences and in the professional life; is conscious about historical development of mathematical notions; X
9 has followed introduction to some mathematical or non-mathematical disciplines after one’s proper choice; had experience to learn selected subjects according to one’s proper arrangement; X
10 masters French language as well as other foreign languages, to a level sufficient to study or work abroad. X

ECTS

Activities Number Period Total Workload
Class Hours 14 3 42
Working Hours out of Class 14 1 14
Assignments 0 0 0
Presentation 0 0 0
Midterm Examinations (including preparation) 1 10 10
Project 0 0 0
Laboratory 0 0 0
Other Applications 0 0 0
Final Examinations (including preparation) 1 10 10
Quiz 0 0 0
Term Paper/ Project 0 0 0
Portfolio Study 0 0 0
Reports 0 0 0
Learning Diary 0 0 0
Thesis/ Project 0 0 0
Seminar 0 0 0
Other 0 0 0
Make-up 0 0 0
Yıl Sonu 0 0 0
Hazırlık Yıl Sonu 0 0 0
Hazırlık Bütünleme 0 0 0
Total Workload 76
Total Workload / 25 3.04
Credits ECTS 3