Learn to analyze iterative and recursive algorithms for use of resources (time, memory, parallelism, bandwidth, randomness, etc.). Develop fluency with big-O notation, and learn to choose and implement efficient algorithms for numeric, combinatorial, and geometric problems. Learn basic concepts and terminology in computability and computational complexity.
Students will be able to write programs in C++ using data structures. Students will be able to analyze the efficiency of sorting and searching algorithms and to determine whether there is a more efficient way of solving a problem or a class of problems.
A grade of C- or better in MTH 131 or MTH 141 and in both CSC 156 and CSC 343.
The Design and Analysis of Algorithms,3rd edition by Anany Levitin, Addison-Wesley, 2012.
The assignments this semester will require students to use Microsoft Visual Studio to design, code, compile, debug and submit programs written in C and C++. Students may opt to program on Adelphi.s Linux system, Panther, using the GNU C++ compiler using vi. Students may also opt to write some programming assignments in Java. They will find BlueJ and the Java Development Kit (including compiler) on computers in the Department.s Computer Lab.
Each programming assignment will be graded with a base grade of 90%, with points added to reflected areas in which the assignment exceeded specified requirements and/or points deducted to show areas where the assignment is deficient.
Late penalties may be assessed of 2 points per class after the due date.
The final average will be weighted (based on the following ratio:
Midterm Exam | 40% |
Final Exam | 40% |
Assignments | 20% |
The final average will translate to a letter grade according to the following table:
Final Average | Course Grade |
---|---|
A | 90 - 100 |
A- | 87.5 - 89.9 |
B+ | 83.3 - 87.4 |
B | 80.0 - 83.2 |
B- | 77.5 - 79.9 |
C+ | 73.3 - 77.4 |
C | 70.0 - 73.2 |
C- | 67.5 - 69.9 |
D+ | 63.3 - 67.4 |
D | 60.0 - 63.2 |
F | 0.0 - 59.9 |
The following is the Adelphi University General Attendance Policy:
Only students who are registered for courses, and whose name appears on the Official Class Roster may attend courses at the University. Adelphi students make a commitment to be active participants in their educational program; class attendance is an integral part of this commitment. Attendance requirements for each course will be announced by the faculty member at the beginning of each term. Students are expected to be present promptly at the beginning of each class period, unless prevented by illness or by other compelling cause. In the event of such absence, students may request that faculty members be notified by the Office of Academic Services and Retention. Students are responsible for completing course work missed through absences. Students should wait a reasonable length of time for an instructor in the event that the instructor is delayed.
Additionally, you are also responsible for whatever work is covered in class whether or not you are there. Absence from the final exam will be excused only for a good and well-documented reason. The decision to allow a make-up exam will be made in accordance with the policies of Adelphi University.
NB: I will not be available on Wednesday, April 12 or Monday, April 17. There will be lab on both days with attendance taken; we will make up both class meetings on Monday, May 8 11:00-11:50 and 2:25-3:40 in our usual rooms with attendance taken. Students are encouraged to take advantage of the time to complete programming assignments.
If the University is closed for more than two days due to an emergency, go the home page for this course site each day for instructions and assignments. Student instructions materials can be found at http://home.adelphi.edu/~siegfried/cs344
Date | Topic | Assignment due |
---|---|---|
January 23 | Review of Mathematical Induction | |
January 25 | Big O Notation | |
January 27 | Big O Notation | Assn #1 - Some basic mathematical induction practice |
January 30 | Internal Sorting | |
February 1 | Internal Sorting | Assn #2 - Working with Asymptotic Notation |
February 3 | Internal Sorting | |
February 6 | External Sorting | |
February 8 | External Sorting | |
February 10 | External Sorting | Assn #3 - Analyzing the efficiency of internal sorts |
February 13 | Searching | |
February 15 | Searching | Assn #4 - Tracing a Polyphase merge sort of 34 runs |
February 17 | Searching | |
February 20 | Greedy Algorithms | |
February 22 | Greedy Algorithms | Assn #5 - Implementing a Polyphase merge sort |
February 24 | Greedy Algorithms | |
February 27 | Greedy Algorithms | |
March 1 | Pattern Matching | |
March 3 | Review for Midterm Exam | Assn #6 - Using Kruskal's and Prim's Algorithm To Find the Minimum Spanning Tree |
March 6 | Midterm Exam | |
March 8 | Pattern Matching | |
March 10 | Pattern Matching | Assn #7 - Creating an AVL tree, a 2-3 tree and a B-tree. |
March 20 | Pattern Matching | |
March 22 | Pattern Matching | Assn #8 - Analyzing the efficiency of searches |
March 24 | Random Numbers | |
March 27 | Random Numbers | |
March 29 | Random Numbers | |
March 31 | Recursive Algorithms | Assn #9 - Analyzing pattern search algorithms |
April 3 | Recursive Algorithms | |
April 5 | Recursive Algorithms | |
April 7 | Recurrence Relations | Assn #10 - Comparing Random Number Generators |
April 10 | Recurrence Relations | |
April 12 | No class meeting | |
April 14 | Recurrence Relations | Assn #11 - Finding the efficiency of Recursive Algorithms |
April 17 | No class meeting | |
April 19 | Numerical Computation | |
April 21 | Numerical Computation | |
April 24 | Numerical Computation | Assn #12 - Prove non-recurrence relation is equal to the equivalent recurrence relation |
April 26 | Numerical Computation | |
April 28 | Graphs | |
May 1 | Graphs | Assn #13 - Numerical integration |
May 3 | Graphs | |
May 5 | Review for Final Exam | |
May 8 | Review for Final Exam | Assn #14 - Dijkstra's algorithm |
May 17 | Final Exam (8:00-10:00AM) |
If you have a disability that may significantly impact your ability to carry out assigned coursework, please contact the Student Access Office (SAO) at 516-877-3806 or send an email to sao@adelphi.edu. The staff will review your concerns and determine, with you, appropriate and necessary accommodations. Please allow for a reasonable time frame for requesting ASL Interpreters or Transcription Services.
Students enrolled in this course are expected to abide by the Adelphi University Honor Code. The purpose of the Honor Code is to protect the academic integrity of the University by encouraging consistent ethical behavior in assigned coursework by students. Following is excerpted from the Student Honor Code:
The code of academic honesty prohibits behavior, which can broadly be described as lying, cheating, or stealing. Violations of the code of academic honesty will include, but are not limited to, the following:
During the last two weeks of the class, you will receive notification, via mail and eCampus, that the course evaluation is available for your input electronically. Availability will end at the start of the final examination period. Your feedback is valuable and I encourage you to respond. Please be assured that your responses are anonymous and the results will not be available to the instructor until after the end of the semester and therefore after course grades have been submitted.
Tear off this and return with information required below: STUDENT ACKNOWLEDGEMENT: I HAVE RECEIVED AND READ THE SYLLABUS FOR [INSERT COURSE NUMBER AND SECTION]. SIGNED: __________________________________________ PRINT NAME: _________________________________________ DATE: ___________________________ Warning - This page must be signed and returned to the instructor to receive a complete grade in this course.