IST238: Algorithms.
Course Syllabus for Fall 2004
TTh 11:00am – 12:15am Prichard Hall 200
Instructor: Daniel Dementiev
Office: Prichard Hall 208
Phone Number: (304) 696-7241
E-mail: dementiev@marshall.edu
Office Hours: see my schedule

Textbooks:

Since this course covers the beginning of a very difficult subject Algorithms Theory and different books present different views on the subject, it is very difficult for me to recommend only one book for the course. Instead I will provide a list of recommended books. This doesn't mean, of course, that you need to buy all of them. This only means that you need to select a book that you like the best and get it. You can take a look at the books in my office or view their table of content on the internet. Note: I really do not recommend to select a book based on price. You will need to read them and some of the books may be easier for you to read then others.

Computer Requirements:

All class announcements, updates, lecture notes, and assignments will be placed in the class home directory.etc. Access to a WWW browser is required (Netscape 4.7 or higher or Internet Explorer 5.0 or higher). You will also be required to obtain a copy of Microsoft Visual C++ .NET for programming assignments. This software can be obtained for free through the COS' ITC department on the first floor of the Science building. (For more details contact Pete Glass at glass1@marshall.edu.)

Course Description:

This course covers algorithms design, analysis, and manipulation in the areas of sorting, searching, and graphing.

Desired Objectives/Outcomes:

By the end of this course, you should be able to:

Credit:

The course is three (3) credit hours. It includes classroom lectures, exams, and laboratory programming projects. Projects will develop students' ability to understand and implement concepts discussed in lectures.

Pre/co-requisites:

IST163: Programming Practicum with C++

Instruction method:

There will be approximately 3 contact hours of classroom lecture per week. The laboratory programming projects cover the major topics of the course. Students may work on their assignments in Prichard Hall 200 and 207.

Topics and Methodology:

The following outline delineates the tentative class schedule with topics to be addressed during the course. Please note this is a tentative schedule and it may change upon class progress:
Topic Weeks
Algorithm abalysis. Recursion. 1
Introduction and Sorting Methods 2 – 4
Searching Methods 4-7
Midterm 8
Graph ALgorithms 8 – 11
Compression Algorithms 9 – 12
Other Algortihms 12 – 14
Final Exam date is:

Evaluation method:

Evaluation of student's performance will be based on the quality of your performance on programming assignments, exams, and class participation.

Grading Policy:

Final grades are based on performance in assignments, exams, and attendance as indicated below.
Midterm Exam 20%
Projects 40%
Final Exam 35%
Attendance & Participation      5%

Assessment of Projects:

The grading of all programming projects will take into account the following:
  1. Although the most important attribute of a program is correctness, grading will take into consideration (if appropriate) such items as time and space efficiency, documentation, etc.
  2. Programs and scripts must have proper inline documentation and must be properly indented. Up to 20% can be deducted for poorly documented and/or poorly indented code.
  3. Although interactions with other students are encouraged, you must compose your own answers, unless otherwise noted.
Individuals who utilize other people’s code, thoughts, or ideas must provide appropriate references to said resources. Failure to provide such documentation will result in a failing grade for the assignment, and may result in a failing grade for the course.

In determining the overall grade for a project, you can expect the following grades based on performance:

Final letter grades are determined based on the following grading scale:
90-100% A
80-89% B
70-79% C
60-69% D
Below 60    F
The instructor reserves the right to change these values depending on the overall class performance and/or extenuating circumstances.

Policy Statement:

Programming assignments: The course includes 5 projects and a number of homework assignments. All assignments are due by midnight on the due date. Late assignments will be penalized at the rate of 5% per day (including weekends).

Exams: There is only one midterm exam. Exact dates and times of the exam will be announced in class.

Make-up Exams and Late Penalty: Make-up exams will not be given except under unusual circumstances and satisfactory written justification. Any student who misses an exam due to an unexcused absence will receive a grade of zero for that exam with no opportunity for make-up or substitution. University excused absences or those occurring with a good reason will be excused. Make up exams must be taken within one week of the original scheduled date. The decision whether to give a make up exam rests with the instructor.

Passing grade: Programming assignments and exams are required parts of the course and must be satisfactorily completed to pass this course. A student must have a passing performance on each part. A failing grade on a component may result in a failing grade in the course.

Attendance Statement:

Class attendance is not mandatory and is not a required part of the course, although highly encouraged. Those who miss a class should remember that it is their responsibility to cover all the material by themselves.

Withdrawal Policy:

The University withdrawal policy is followed in this course. The last day to drop an individual course for the Fall of 2003 is October 29, 2004.

University Holidays:

The class is officially dismissed on the following dates:
Labor Day:    September 6, 2004
Thanksgiving Break:    November 26, 2003
November 24, 2004
November 27, 2004

Effort Required:

As a 200-level course, this course is provided as an introductory course, but due to the amount of new concepts presented in the course there will still be a considerable amount of development and research effort required of the student. For every one hour in class, the student is expected to put in an effort of at least 3 hours outside the class for studying and programming. Because of background and preparedness, some students may have to put in additional effort.