Time: |
Monday 2-5 PM
1 Session/Week, 3 hours
|
Place: |
College of Farabi - Faculty of
Engineering - Class #204
|
Instructor: |
Hossein Rezaei (hrezaei@ut.ac.ir)
|
Assistants: |
-
Workout Assistant : Hamid
Fazli (h.fazli.k@gmail.com)
-
Programmer
Assistant : Mr. Faraj
|
Prerequisites: |
Two cases are
necessary prerequisites to this course:
-
A strong
understanding of programming in Python
-
A solid
background in discrete mathematics
|
Format: |
Sixteen lectures and eight
teaching-assisting secession with eight
homework assignments, four programming projects and a midterm.
|
Texts: |
The primary reference for the
course is the following Lectures Slides.
We also
recommend:
محمد قدسی، داده ساختارها و
الگوریتمها، انتشارات فاطمی، 1396، چاپ هفتم |
|
"(CLRS) Introduction to Algorithms", T. Cormen, C. Leiserson, R.
Riverst, and C. Stein, MIT Press, Sept, 2001 |
|
"Data Structures and Algorithms with Python", Kent D.Leem
Steve Hubbard, Springer |
|
|
|
|
|
"Data Structures and Algorithms in Python", Goodrich,
Tamassia & Goldwasser 2013 |
|
"Problem Solving with Algorithms and Data Structures",
Bradley N.Miller, David L.Ranum |
|
"Dive Into Python 3", Mark Pilgrim, Apress |
|
|
|
Tentative Schedule: |
Session |
Date |
Topic |
Source |
1 |
1396/11/16 |
Introduction |
PDF |
2 |
1396/11/23 |
Algorithms analysis
methods |
PDF |
3 |
1396/11/30 |
Recursive Functions |
PDF |
4 |
1396/12/7 |
Arrays |
PDF |
5 |
1396/12/13 |
TA |
- - - |
6 |
1396/12/14 |
Queues & Stacks |
PDF |
7 |
1396/12/20 |
TA (Python) |
- - - |
8 |
1396/12/21 |
Linked
Lists |
PDF |
9 |
1397/1/19 |
TA |
- - - |
10 |
1397/1/20 |
Linked
Lists |
PDF |
11 |
1397/1/26 |
TA (Python) |
- - - |
12 |
1397/1/27 |
Trees (1) |
PDF |
13 |
1397/2/2 |
TA (Python) |
- - - |
14 |
1397/2/3 |
Trees (2) |
PDF |
15 |
1397/2/9 |
TA |
- - - |
16 |
1397/2/10 |
MIDTERM EXAM |
PDF |
17 |
1397/2/16 |
TA |
- - - |
18 |
1397/2/17 |
Graphs (1) |
PDF |
19 |
1397/2/2 3 |
TA |
- - - |
20 |
1397/2/24 |
Graphs (2) |
PDF |
21 |
1397/2/30 |
TA |
- - - |
22 |
1397/2/31 |
Sorting (1) |
PDF |
23 |
1397/3/6 |
TA |
- - - |
24 |
1397/3/7 |
Sorting (2) |
PDF |
25 |
1397/3/7 |
Hash Table |
PDF |
26 |
1397/3/13 |
TA |
- - - |
EXAM |
1397/4/5 |
FINAL EXAMINATION |
|
|
Assignments: |
-
Homework
1 (سوم اسفند نود و شش)-->
(solution)
-
Homework 2 (دهم اسفند نود و شش)
-
Homework 3 (شانزده فروردین نود و هفت)
-
Homework 4 (شانزده فروردین نود و هفت)
-
Homework 5 (سه خرداد نود و هفت)
-
Homework 6 (ده خرداد نود و هفت)
|
Coding assignments: |
-
Program 1
-
Program 2
-
Program 3
-
Program 4
|
Late Assignments: |
-
Assignments are always due at the beginning of class on the due
date, or at 11:59 PM on the due date if there is no class that
day.
-
Assignments one day late subtract 10%;
-
two days
late loses 30%.
-
After 3
days the assignment will be considered a zero.
|
Project: |
-
Project
1 (creating a Wikipedia page)
-
Project 2 (Rubik)
-
Project 1 (monopoly)
|
Grading Policy: |
The final
grade will be calculated as a weighted average:
-
Assignments: 20%
-
Mid Term
Exam: 25%
-
Project: 10% up to 15%
-
Final
Exam: 50%
|