- Syllabus
- Video Lectures on YouTube Channel.
- Lecture Notes. (Some equations may not be viewed correctly until you install some Mathematical fonts. You may install the trial version of MathType to get these fonts)
- Code and Programs.
- Important texts in C language, algorithms, and data structures.
- Knuth's homepage, one of the best computer scientists in the world.
- Numerical Recipes in C and Fortran is an invaluable source for our students that offers C and Fortran code for solving many numerical problems.
- The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. It is free software under the GNU General Public License.
- Midterm examples: Model 1 with model answer: abeaaebec, and Model 2 with model answer: eaccddddb.
- This is the exam instructions that you will find on your exam answer sheet; read them now to save your time then.
01. | Introduction |
02. | Concepts: Encapsulation and ADT |
03. | Stacks: Array-based implementation I |
04. | Stacks: Array-based implementation II |
05. | Stacks: Array-based implementation III |
06. | Stacks: Linked-based implementation I |
07. | Stacks: Linked-based implementation II |
08. | Stacks applications: Recursion |
09. | Stacks applications: Polish Notation |
10. | Queues: Array-based implementation |
11. | Queues: Linked-based implementation |
12. | Abstraction & Implementation-Related Issues |
13. | Lists: Array-based implementation |
14. | Lists: Linked-based implementation |
15. | Search and Analysis of Algorithms |
16. | Analysis of Binary Search Algorithm I |
17. | Analysis of Binary Search Algorithm II |
18. | Trees |
19. | Binary Search Trees I |
20. | Binary Search Trees II |
21. | Introduction to Graphs |
A1. | Analysis of Algorithms I |
A2. | Analysis of Algorithms II |
A3. | Analysis of Algorithms III |
- (Due: Sep. 22) Read Ch. 1 from the book very well; then code and run the program of the chapter. Also, solve problems E1, E3, and E4 of Exercises 1.3
- (Due: Sep. 29) Read Section 3.1. Write the implementation of the array-based stacks in a file and the program of page 80 in another file and add them to a project. Run your program.
- (Due: Oct. 06) Write this program (you can code your menu the way you like or get the help of Section 2.3.3). Solve this set of problems (solve stack problems only).
- (Due: Oct. 13) Write the linked stack unit and use it for the program of HW3, and make sure that your program is running without any modifications. Write P2 in Exercises 3.2 (get the help of the function written on page 239). Solve these problems. Solve E2, E3 in Exercises 3.4. Solve the review problems of HW3 for linked stacks.
- (Due: Nov. 07) Write this program. Solve the review problems for Queues for both implementations. Solve E9 and E10 in Exercises 4.3 (page 138). Solve E4 in Exercises 4.6 (page 164).
- (Due: Nov. 24) Write this program. Solve these review problems. Solve E4 in Exercise 5.2 and compare to problem 4 in the Review Problems 2.
- (Due: Dec. 01) Solve E4 and E5 in Exercises 6.2.
- (Due: Dec. 08) Solve these review problems.
- (Due: Dec. 15) Solve all problems of Exercises 9.1 (E1-E19); give special attention to E14.
- (Due: Dec. 22) Solve E1-E5 in Exercises 9.2. Write this program.
- (Due: Nov. 24) From Sec. 3.2 in Rosen, solve the following problems: 1, 4, 5, 7, 15, 18, 21, 22, 24, 29, 30, 31, 34, 36, 51, 60, 62. From Sec. 3.3 in Rosen, solve the following problems: 1, 2, 9, 27.
- General Policy: Every group (around 3 students per group) should deliver a course project. This project constitutes 10 marks out of the 100. Each group can bring their own idea or select from the list of projects that will be released soon. Project defense will be according to the practical exam schedule. Copying, fudging, or any form of illegal reproduction of works or ideas will result in loosing marks not only getting zero.
- Each group must register their names with the TA, and take an ID number (starting from 1 up to the most recent registered group).
- Students in a group do not have to be in the same class (section).
- Some examples of projects
- Moodle portal for announcements, grades, and other postings.
- In the final exam you can open your book, lecture notes, and your notes.
- The special lecture on complexity is not included in the final exam. However, all other topics related to complexity, e.g., analysis of binary search, etc., are included.