Course Syllabus
COSC5313 (Analysis of Algorithms)
Spring 2014
 
Instructor:    Dr. Hikyoo Koh, Professor of CS 
 
  Office:                         MA68
  Phone:                          880-8779 (Cell Phone: 8082554901,  you can call any time, day and night)
  E-mail:                        hkoh@lamar.edu (or HKPK32@Yahoo.Com)
  Web:                            galaxy.cs.lamar.edu/~hkoh   
  Office hours:              MW:           14:40-15:40
                                         Thurs:        14:30-16:30
                                         Sat:             11:00-14:00 (About every other Saturday, with appointments preferred)
                                         Others:      By appointments via Email or by phones    
                                                              
Catalog Course description: 
 
Topics on what can and cannot be proven  about computational complexity including algorithm design methodologies. 
 
Prerequisite: 
          COSC2336 or equivalent.
 
Required textbook: 
 
Algorithms, Fourth Edition, by Robert Sedgewick and Kevin Wayne, Addison Wesley, 2011.
  
Other useful resources: 
 
1.                      Fundamentals of Algorithmics, by Gilles Brassard and Paul Bratley, Prentice Hall, 1996. 
2.                      Algorithms, by Richard Johnsonbaugh and Marcus Schaefer, Prentice Hall, 2004.
  3.               Discrete Optimization Algorithms, by M.M. Syslo, at el, Prentice Hall.
4.               Applied Combinatorics, by Fred Roberts, Prentice Hall.
5.               Algorithms + Data Structures = Programs, Niklaus Wirth, Prentice Hall.
6.               Hawaii International Conference on Computer Science, Honolulu, Hawaii, 2004
7.               Southeast Regional Conference of the ACM, Mobile, Alabama, 1999.
 
Learning Outcomes:  
 
By completing this course, students will be able to:
1.              fully understand algorithm efficiency measures and analysis techniques,
2.              fully understand some advanced algorithm design methodologies including 
               Linear Programming, Greedy Algorithms, Dynamic Programming, Backtracking/Recursions
               and Probabilistic Algorithms.
3.              fully understand Non-deterministic Algorithms and NP-Completeness, and
4.              be proficient in designing and coding some programming problems closely related to above 
      mentioned algorithm design methodologies.  
 
Topics to cover:
 
  1. Review:
                    Efficiency of Algorithms.
                    Asymptotic notations.
                    Recurrence solution.
  2. Linear Programming:
                    Simplex Method, Standard form, Basic solution, Feasible solution, 
                    Optimal solution, Duality.
  3. Counting and Generating Functions:
                    Occupancy Problems and Generating Functions.
                    Principle of Inclusions and Exclusions.  
                    Chromatic Polynomials  
  Test-1
 
  4. Greedy Algorithms.
  5. Dynamic Programming and Backtracking.
6. Probabilistic Algorithms
7. Some Graph Algorithms.
                    Depth-First Search and Breadth-First Search
                    Branch-and-Bound.
                    Minimax
                    Maximum Flow/Minimum Load
Test-2
 
  8. Random number generation.
  9. NP-Completeness.
 
Grading methods: 
 
        All exams will be OPEN for you to be able to open and use, during the exam, anything you bring  
        the exam including anything prepared for the exam, books, notes, a laptop, among others.
 
                    2 tests (OPEN):                                 200 points (100 points each)
                    Final Exam (OPEN):                      200 points
                    5 or more programs:                     100 points
                    {Programming assignments include:

a.          Rook Polynomial

b.          Linear Programming: (Convex Hull Checker)

c.           Minimum Total Load Computation 

d.          BPE Generation & Ranking: 

e.           Stable Matching (Backtracking)

}
                    Occasional Quizzes:                         50 points
  --------------------------------------------------------------------
                    TOTAL MAX:                                 550 points
 
                    If your class average is:
   85% or higher:                                                 A
   Else 75% or higher:                                        B
   Else 65% or higher:                                        C
   Else:                                                                     D                                                          
 
Online Course Evaluations.  
 
Lamar University encourages students to evaluate online the courses they take 
and the instruction they receive via a contract with a national company, 
OnlineCourseEvaluations.com.  
The evaluation instruments themselves were developed by LU faculty and administrators.  
Evaluation windows for fall and spring courses open two weeks before the final 
examination period and close at the end of the last class day.  
The student is notified of the specific dates at his/her myLAMAR e-mail address.  
If course evaluations are given during summers, mini semesters, and other 
compressed terms, evaluation windows are extended past the last class meeting.  
Evaluations are completely anonymous, and neither LU faculty nor LU administrators 
have the ability to determine the name of the student who completed a specific 
evaluation form.  
The primary purpose of course evaluation is the improvement of instruction.  
That is, after the semester has ended and grades have been awarded, I am able to access 
the results of my course evaluations, to include all student comments.  
I analyze the data and read the comments, and often use student observations and 
suggestions to make changes in course content and delivery.  
The results of course evaluations are also used by chairs and deans as one factor 
in decisions involving merit pay, tenure, and promotion.  
Both the administration and I take your input via course evaluations very seriously, 
and I encourage you to participate in this process.  
Any questions or comments you have about the process should be addressed to 
Dr. Tom Matthews, University Assessment Coordinator, at 409-880-2385 or 
tom.matthews@lamar.edu.  Thank you.
 
 
Students with Disabilities:
 
It is the policy of Lamar University to accommodate students with disabilities pursuant to federal and state laws and the University’s commitment to equal educational opportunities.
This course complies with the University Policies on Disability, Accommodations and Academic 
Honesty as published in the Student Handbook and also in the Computer Science Department 
               Policy (on Academic Honesty). Student needing accommodations must first have them approved 
 through the Office of Services for Students with Disabilities, Communication Building Room 105, phone number 409-8808347.  
Please notify the instructor during the first week of class regarding accommodations needed 
for the class. 
 
University Policy on Academic Honesty: 
 
The University expects all students to engage in all academic pursuits in a manner that is above reproach.
“Cheating” include:
·         Copying from another student’s paper, report, computer files, data listings, and/or programs.
·         Using (during an exam) materials not authorized by the instructor giving the exam.
·         Collaboration, without authorizations, with another person during an examination or in preparing academic work.
·         Knowingly, and without authorization, using, buying, selling, stealing, transporting, soliciting, copying, or possessing in whole part, the contents of an unadministered test. 
·         In the taking of an examination or in the preparation of academic work to be submitted for academic credit,  (1) Substituting for another student, (2) permitting any other person, (3) or otherwise assisting any other person to substitute for oneself or another student.
·         Bribing another person to obtain an unadministered exam or information about an unadministered exam. 
·         Purchasing (or acquiring) and submitting as one’s own work any research paper or other writing assignment prepared by an individual or firm. This does not apply to the typing of the rough and/or final versions fo an assignment by a professional typist.
“Plagiarism”:  The appropriation of another’s work or idea and the unacknowledged incorporation of that work or idea into one’s own work offered for credit. 
“Collusion”: The unauthorized collaboration with another person in preparing work offered for credit.
 
Course Attendance Policy:
 
It is the student’s responsibility to make sure that you are officially enrolled in this course. If at any point in time, you decide to drop the class, it is your responsibility to officially drop. The instructor will do everything possible to help you. Any student who stops attending the class and does not officially drop the course will be given an “F” as the final grade. 
Regular class attendance is critical to your effective learning.  Hence each time you miss the class without the instructor’s authorization, your final grade will be lowered by one letter grade.
Please view the Lamar University web page for dates for drops and withdrawals. 
 
Student Services:
 

            Some useful student services sites are listed below:

1.      Lamar University academic support services

2.      General Lamar University Students Services

3.      SMARTHINKING

SMARTHINKING  connects students to E-structor Certified tutors anytime from any Internet connection.

Your SMARTHINKING login is your myLamar email address. Your SMARTHINKING password is constructed as follows:

       YY – 2-digit year of birth

       MM – 2-digit month of birth

       DD – 2-digit day of birth followed by “_” (Use the _ with no quotations)

       Last initial – capital letter

       First initial – capital letter

       Last four digits of your social security number.

Example:

       John Doe born January 25, 1981 Social Security Number of 123456789

       His Password: 810125_DJ6789

 
Campus Closure (academic continuity plan): 

 

In the event of campus closure  and evacuation due to a hurricane  or other disaster, this course will continue in an online format until campus reopens. After four days of closure (for evacuation and relocation), please login to this course on Blackboard for any special instructions to continue your learning activities.

These efforts will allow you to complete the course and semester on time.

 
Special Notes:   
 
1.       The first violation of the above specified University Policy on Academic Honesty will get a grade of 0 and the second violation will get a final grade of F. 
2.       Furthermore, everything you turn in to the instructor to be graded is expected to be your own work at least for the most part. 
In particular, NO solution programs available on a computer locally or through the INTERNET should be copied without the instructor's prior approval.  
3.       All programs will be accepted only in class and only when they are due. No sooner or no later.
4.        It is to your advantage if you highlight output statements such as Java System.out.print() or System.out.println() or C++ cout statements of your programs to clearly indicate where in your program outputs are being actually done.  
5.       A program is normally due in a week and half after it is assigned. 
6.       Every four unexcused absences from class will lower your final grade by one letter grade.
7.       Each program must have a comment at the VERY beginning of the program.
              Without this comment, a program will not be graded at all.
              This comment must include:
                    a. Your full name
                    b. Course Number and program number
                    c. Program title
                    d. Your own assessment of the program that includes, among others:
                       i.   whether or not the program produces expected correct outputs.
                       ii.  if not, why you think the program is not producing the expected 
                            correct outputs.
                       iii. if not, whether or not the program was compiled at all.   
8.       If the language allows, the main program/function/method  must appear at the very end of  the  program.