Algorithms and Advanced Programming I(MAT231)
Course Code | Course Name | Semester | Theory | Practice | Lab | Credit | ECTS |
---|---|---|---|---|---|---|---|
MAT231 | Algorithms and Advanced Programming I | 3 | 3 | 0 | 0 | 3 | 3 |
Prerequisites | |
Admission Requirements |
Language of Instruction | |
Course Type | Compulsory |
Course Level | Bachelor Degree |
Course Instructor(s) | N. Sultan TURHAN sturhan@gsu.edu.tr (Email) |
Assistant | |
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. |
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 | lecture, programming home work |
References |
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 |
Theory Topics
Week | Weekly Contents |
---|---|
1 | Programming review: value, expression, variable, data type, assignment, program state, enumerating loops |
2 | Programming review: conditionals, execution branching, conditional loops, nested loops and conditionals |
3 | Programming review: functions, parameters, return value, code flow, stack frames, variable scope |
4 | Sequences, patterns, multidimensional patterns from loop indices, data dependence |
5 | Implementing aggregate functions: min, max, sum, count, avg, std.dev, unique |
6 | Sorting values on a list: naive approach, insertion sort, bubble sort, merge sort |
7 | Midterm I |
8 | Recursion: depth bounding, flow of function calls, examples: factorial, fibonacci, quick sort |
9 | Trees: depth first, breadth first traversal, in-order/pre-order/post-order traversal |
10 | Stack, Queue, relation of stack with recursion, recursion removal |
11 | Midterm II |
12 | Numerical algorithms: random number generation, root finding, linear regression |
13 | Search: simple search, binary search, searching recursively |
14 | Time/space complexity, Complexity classes, comparison of algorithms |
Practice Topics
Week | Weekly Contents |
---|
Contribution to Overall Grade
Number | Contribution | |
---|---|---|
Contribution of in-term studies to overall grade | 2 | 40 |
Contribution of final exam to overall grade | 1 | 60 |
Toplam | 3 | 100 |
In-Term Studies
Number | Contribution | |
---|---|---|
Assignments | 0 | 0 |
Presentation | 0 | 0 |
Midterm Examinations (including preparation) | 2 | 40 |
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 |
Toplam | 2 | 40 |
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 |
Activities | Number | Period | Total Workload |
---|---|---|---|
Class Hours | 14 | 3 | 42 |
Working Hours out of Class | 14 | 2 | 28 |
Assignments | 14 | 1 | 14 |
Midterm Examinations (including preparation) | 1 | 10 | 10 |
Final Examinations (including preparation) | 1 | 20 | 20 |
Total Workload | 114 | ||
Total Workload / 25 | 4.56 | ||
Credits ECTS | 5 |