Paul Bodily About Courses Research Outreach Tips for Communicating Teaching Philosophy Vitae

CS 4412 Course Syllabus

Course title: Advanced Algorithms
Prerequisite: CS 2263, CS 3305 and MATH 1175
Required text: Algorithms by Dasgupta, Papadimitriou, and Vazirani (2008, ISBN:9780073523408)
Moodle page: Moodle
Instructor: Paul Bodily (office hours and contact information)

Course Overview

We will study several general approaches to algorithm design, including Divide and Conquer, Graph-based, Greedy, Dynamic Programming, Linear Programming, Intelligent Search, as well as briefly treat some advanced topics. We will discuss canonical problems, abstraction and reduction as tools for problem solving, and we will also consider how to tell if an algorithm is correct and how to analyze it's complexity.

Course Requirements

Final grade percentage will be computed as a function of the following requirements:

Type Percentage
Daily Quizzes 5%
Homework 15%
Programming Assignments 44%
Midterm 18%
Final Exam 18%
Service-Learning 2% (extra credit)
Course Evaluations 1% (extra credit)


The text for the class is Algorithms by Dasgupta, Papadimitriou, and Vazirani. We will cover much of the text following the provided schedule. You are responsible for reading the material for a given day prior to that day's lecture. Because class time is limited, we may not cover everything in the text. However, except where specifically noted otherwise, you are responsible for the entire text. There will be a daily quiz (consisting of 4-6 multiple choice questions) over the reading. This is both to encourage and reward coming to class prepared and on time. You must be in class to take the quiz. The lowest 3 quizzes will be dropped.

Attendance & Participation

Class attendance and participation is expected. This is not because I feel the need to have students in class; instead, it is because your attendance and participation guarantee you a better learning experience.

Make sure you have done the reading and tried to understand on your own before you ask questions. If you do not, it is usually readily apparent. When you don't understand something, ask; there are no dumb questions—unless you haven't done your reading.

Homework Assignments

A few problems will be assigned (typically from the text) each class period and will be due at the beginning of class the following period. It is very important to stay current in this class and the homework schedule is designed to help you do so. All assignments should be submitted in PDF format via Moodle.

Communicating clearly and concisely what you have to say is an important skill you will use throughout your career. All written assignments are to be neat and professional. If you cannot clearly communicate something, there is a good chance that you do not yet understand it well. Good writing, grammar, punctuation, etc. are important and can affect your grade.

Programming Projects

There will be 5 individual programming projects throughout the semester and one final group project. For each project, you will solve a concrete problem by implementing an algorithm in such a way as to meet a conservative performance requirement. A reasonable implementation will sail through the performance requirement. You will prepare a typed report electronically according to the guidelines for each project. You will answer questions posed in the project guidelines and usually report the results of an empirical analysis of your algorithm. All project reports should include a copy of your documented source code and a screenshot demonstrating the working algorithm. Each project except the last (group) project will include an initial "design experience" to encourage you to think before you code. These experiences are worth 10% of your project grade and will be evaluated using an online quiz and are typically due about a 10 days before the finished project. More information on projects and design experiences can be found here.


There will be one mid-term and one final (both administered in class). Exams are closed book except for half page, single-sided of notes (i.e., half of 8.5" x 11"). Exams will consist of written problems similar to those encountered on the homework. If you put in the time to understand the homework and programming assignments, the tests should not be too difficult. Explicitly, the final will only deal with material not covered on the midterms; however, it will be implicitly comprehensive in that it will assume you understand the material covered throughout the course.



Image courtesy of

Service provides opportunities for students to network with the community, develop new skills, gain confidence and perspective regarding classroom learning, and give back in meaningful ways to the community. To earn extra credit, students must complete at least 2 hours of service learning during the semester. The service completed for this course can overlap with service rendered for service requirements in other courses.

We have provided a list of service ideas, but students are encouraged to be creative! This is your opportunity to make a difference! As future CS courses may have similar service requirements, you might want to consider a project that would maintain interest over multiple semesters.

Students will submit a service proposal via email to the instructor by the end of the 3rd week of the semester. The instructor approves and provides constructive feedback on the proposal. This proposal should include the following:

  1. A brief summary of the project, including a description of what research/outreach has been done to ensure the viability of the project
  2. An explanation of how the project directly serves Southeast Idaho
  3. An explanation of how the project directly relates to computer science
  4. A paragraph outlining any ethical, security, or safety considerations inherent in the project. During COVID-19, projects should not involve any face-to-face contact.
  5. Relevant community contacts, contact information, and a description of the contacts role in the project
  6. Names of other students working on the same project and a justification for why more than one student is needed to complete the project
  7. A proposed timeline with dates and anticipated time spent to complete specific milestones. This should include any time needed for planning, commuting, communicating, marketing, and executing the project. The timeline should demonstrate how the project will meet the 2-hour service requirement. Transportation time and time spent writing the report may not count towards the 2-hour requirement. Time spent in actual service should exceed time spent in planning.
An example proposal may be seen here.

Students will submit a final service report via Moodle by the last day of class. This report can be in the form of a written report (max 3-pages). This report should include:

  1. A detailed summary of the project
  2. An explanation of how the project directly serves Southeast Idaho
  3. An explanation of how the project directly relates to computer science
  4. Insights and reflections on what you learned or how you benefited from the project
  5. A log describing specific service activities, the time spent on each, and the total time spent to complete the project.
  6. (Optional) What next steps or additional service opportunities exist related to this project?
  7. (Optional) A list of other students and relevant community contacts (including contact information) and a description of the role of each in the project


Final grades are assigned on the following absolute scale:

90.0 <= A
86.0 <= A- < 90.0
83.0 <= B+ < 86.0
80.0 <= B < 83.0
76.0 <= B- < 80.0
73.0 <= C+ < 76.0
70.0 <= C < 73.0
67.0 <= C- < 70.0
64.0 <= D+ < 67.0
60.0 <= D < 64.0
57.0 <= D- < 60.0
F < 57.0

Exceptions will be made at the sole discretion of the instructor. Scores and grades will be maintained on Moodle.

CS 5599 Additional Requirements

In place of the last project, graduate students will propose and carry out a project on their own. The goal of this project is to incorporate what you've learned in the class to help in your research or graduate studies' goals. If you do not have a project in mind, I can help pick one for you that will help in my research. The project will have you implement an algorithm of your choosing (one that we have not implemented for the class). The algorithm should be non-trivial and should be approved by me a priori.

You will analyze the time complexity both theoretically and empirically and write up the results in a report completed using LaTeX (IEEE Conference template). I would recommend using Overleaf, an online LaTeX editor. Here is an Overleaf template (go to "Menu">"Copy Project") that includes examples of using an algorithms package. The report should also show pseudocode for the algorithm that you implement, formatted nicely using an algorithm LaTeX package. The report should contain graphs that show the empirical and theoretical results and a discussion of discrepancies. For comparison, the report should also discuss what a naive algorithm to solve the problem might be and what its theoretical runtime would be (this does not need to be implemented nor pseudocode provided). The report should follow standards for a scientific report, including Introduction, Related Works, Methods, Results, Discussion, Conclusion.

Incomplete Grade Policy

An incomplete grade is available when a student who is satisfactorily completing the course and who has completed approximately 70% or more of the course suddenly encounters an extenuating circumstance that prevents them from completing the course. The student must contact me to negotiate the requirements for completing the incomplete grade at the time that the extenuating circumstance arises (not at the end of the semester). For more information see

CoSE X grade policy

In the College of Science & Engineering, a student who earns a failing grade via course work (exams, homework, etc.) and has unexcused absences that total more than 30% of class meetings will receive a grade of "X".

Questions and forum

Questions on how to do homework and projects should be asked using the class discord server (link available from Moodle) where other students can benefit from and possibly provide help on your questions in addition to help provided by the professor. Please see section below on "Academic integrity" for clarification on what types of help may or may not be appropriate. Score and grade questions should be addressed directly to the instructor via email.

Getting Help

TA information can be found atop the Moodle page for this course. A tutoring lab is also available for students enrolled in any CS course. Note that not all tutors may have taken the course you need help with, so you may need to try a few different tutors. The schedule and location is available here: Students can also get help from the professor outside of class as needed.

The university also provides more general tutoring services on a variety of subjects (in-person, via Zoom, etc.). Please be sure to check out the University Tutoring website here:

Usage of ChatGPT, LLMs, or other assistive AI

There is no doubt that knowing when and how to use large language models (LLMs) (e.g., ChatGPT) and other assistive AI will be a valuable asset in your career post-graduation. But you should not be using these tools on any exams, quizzes, or coding projects in your classes as an undergraduate. Your instructors are assuming that the topics that they present and assess you on in your classes are topics that you will have mastered on your own by the time you graduate.

I think of it somewhat like self-driving cars. New drivers are expected to know how to drive a traditional vehicle and to pass all driving tests without any assistance from AI. AI can and does fail. We need drivers who know how to drive without the assistance of AI, who know the rules of the road, who possess an intuition for safety, and who possess the raw skills to drive the car themselves. New drivers would likely be expected to drive a traditional vehicle for the first several years to ensure that this knowledge grabs hold.

In short, I caution you heavily against using LLMs or other assistiveAI in your CS courses. You need to develop the ability to decipher between reputable and non-reputable sources of information, to search Google and find valid answers, to develop ways of knowing, and to develop connections with human experts. You can and should use these tools on your own personal projects. After you have a mastery of the topics you're learning in your class (and on your own personal projects), test ChatGPT (for example) so that you can see for yourself what its strengths and weaknesses are. Avoid the tendency to be overreliant on these tools at the expense of your learning.

Free Access to Microsoft Office

Please be aware and take advantage of Microsoft Office software as needed to complete work for this course. Microsoft Office is a free program for those at Idaho State University, including different Microsoft Software. Find more information here.


Like it or not, much of your future success depends heavily on your skills as a communicator. Whether in project reports or service learning proposals, any work (including emails and forum posts) should exhibit a professional standard of writing. Like it or not, potential and actual employers will judge you based on your ability to communicate. I will happily give feedback on your writing, but it will be of greatest benefit to you if you are making your best effort. Points may be taken off for poor grammar, spelling, etc.

A free writing center is available on both the Pocatello and IF campuses that offers face-to-face, online chat, and online written feedback.

Late work policy

No late homework or projects are accepted. This means that if you turn an assignment in one minute after it is due you will receive a zero. Quizzes and exams cannot be made up. Exceptions are on a case-by-case basis and are only granted for religious holy days (must have prior approval), documented illness, or documented emergencies.

It is in your best interest to submit whatever you can before deadlines. Probably the best way to make sure you are not unpleasantly surprised is to submit incrementally: submit what you have early, and then continue to improve your work and resubmit as you make improvements, up until the deadline.

Note that the schedule is carefully designed to give you plenty of time between when we discuss in class the concepts needed for a project and when it is due. Please start early and make use of that time to do a good job. If you do not get the entire project completed by the deadline, make sure you submit what you have.

In my experience, one key to success, in class, in our profession, and in life in general, is being organized and meeting deadlines. The no-late-work-policy is in large part to help you be successful and be able to continue progressing and focusing on new material. Please submit your work on time!

Letters of Recommendation

Not infrequently do students ask me to write them a letter of recommendation. I am generally very happy and willing to do so. I will paint you in the best light possible, but I will be honest and transparent. Make it easy for me to give you a good recommendation:

  • Attend class in person (if possible) and participate regularly in class.
  • Demonstrate good orthography and grammar in all written communication.
  • Ask good questions and seek help as often as you need it.
  • Demonstrate independent problem-solving skills in completing all assignments and assessments.
  • Prioritize punctuality in attendance and in assignment submission.

A letter of recommendation is more than merely a reflection of the grade you receive in the class. It is intended to help future employers/advisors assess how successful you will be as an independent researcher/employee and team member.

For your benefit, I suggest that whenever asking someone to write a letter of recommendation (including myself) that you ask specifically if they are willing and able to write a good recommendation. If they do not feel able to write you a positive recommendation, you do not want them to write you a letter.

Academic integrity

You may work together with other members of the class; in fact, you are strongly encouraged to do so; however, do NOT turn in other people's work. There is a fine line that may require some judgment on your part. Unless explicitly stated otherwise, all work is to be done individually. Helping each other through discussion is permitted. You may consult the internet for questions related to programming projects (not homeworks), but you may not copy code from the internet or any other source except for the course textbook. Projects may not be done in groups unless the instructor explicitly says otherwise. Homework may be discussed in groups, but students should be careful to develop individual mastery of the problems and solutions.

Academic integrity is expected of all students. Academic dishonesty, including cheating or plagiarism, is unacceptable. The Idaho State University academic dishonesty policy allows an instructor to impose one of several penalties for cheating that range from a warning up to assigning a failing grade for the course or dismissal from the University. ANY use of an electronic device or other form of unauthorized materials during an exam or other assessment will be considered cheating. For more information, please see the ISU Policies and Procedures Policy 5000 (Student Conduct Code).

Some examples of dishonest behavior include, but are not limited to

  • Copying material from a source without attributing the source (including ChatGPT).
  • Allowing another student to copy any part of your work and then submitting it as his/her own.
  • Allowing someone else (or ChatGPT) to complete any part of your assignments for you and then passing off the work as your own.
  • Having someone else (or ChatGPT) debug your project code or check exam/quiz answers prior to submission (you must learn to do this yourself).
  • Bringing unauthorized material or devices to an exam. Note that you do not have to be caught using them – just having them is an offense.
  • Copying to any extent from another student's exam or assignment.
  • Communicating with someone other than the professor during an exam (including ChatGTP).
  • Removing the exam from the classroom.
  • Acquiring exam or assignment answers or questions.
  • Taking any part of an exam for someone else or having someone (or ChatGPT) take any part of an exam for you.
  • Finding and using another student's solution to a similar project.
  • Performing any act designed to give unfair advantage to a student or the attempt to commit such acts.

I prosecute cheating cases to the full extent. I have a general policy that I adhere to in isolated instances. When addressing academic dishonesty my policy is to submit a report to the registrar's office (two such reports across any courses at ISU can result in expulsion from the university). Besides this report, I give students two choices. The student can simply fail all assignments/exams where academic dishonesty was an issue and then continue to work through the course. The second option is to fail and repeat the course. Simply withdrawing after having been caught for academic dishonesty is not a viable option. If you choose to stay in the course, you will receive a 0 on all assignments where academic honesty was an issue (based on your integrity in letting me know or based on me finding evidence of dishonesty). I do not mean to sound gruff. I do not wish to discourage students from learning, growing, and moving on from such experiences. I will support students however they wish to proceed. Incidents with academic dishonesty do not change my eagerness to support your learning and your success.

Classroom Etiquette

To facilitate a productive learning atmosphere, it is expected that students will be punctual, regularly attend class, maintain a positive attitude, use appropriate language, and show respectfulness to other students and the professor. Students are expected to come to class prepared, participate in activities and discussions, and treat others with respect in the classroom, which includes listening interactively to classmates and the professor, and respecting others’ viewpoints. Students should expect frequent and personal invitations to participate in course lectures.

Open laptops and phones are not allowed except for the purpose of taking notes. Please do not text, check social media sites, or eat meals during class.

Students are expected to arrive for class and be in their seats by the scheduled beginning of class. Repeatedly coming to class late disrupts the teaching/learning environment in the classroom and adversely affects the other students in the class.


Our program is committed to all students achieving their potential. If you have a disability or think you have a disability (physical, learning disability, hearing, vision, psychiatric) which may need a reasonable accommodation, please contact Disability Services located in the Rendezvous Complex, Room 125, 208-282-3599 as early as possible.

Personal Health and Well-Being

Success in this course depends heavily on your personal health and wellbeing. Recognize that stress is an expected part of the college experience, and it often can be compounded by unexpected setbacks or life changes outside the classroom. I encourage you to reframe challenges as an unavoidable pathway to success. Reflect on your role in taking care of yourself throughout the term, before the demands of exams and projects reach their peak. Please feel free to reach out to me about any difficulty you may be having that may impact your performance in this course. If you are experiencing stress in other areas of your campus life, I am happy to help you get in contact with other resources on campus that stand ready to assist you. In addition to your academic advisor, I strongly encourage you to contact the many other support services on campus that are available.

Counseling and Testing Service

ISU Counseling and Testing Services (CATS) would like to remind all students who are enrolled in the current semester (part-time or full-time) they are eligible for free, confidential counseling services. CATS offers individual, group, and couples counseling, as well as Biofeedback Training. We also offers crisis intervention services Monday through Friday from 8-5.

To establish services:

  • Pocatello: Call 208-282-2130, Monday – Friday from 8am – 4pm. Office is located at Graveley Hall, 3rd floor of the south side. Walk-ins are welcome Monday-Friday from 8am - 4pm.
  • Idaho Falls: Bennion Student Union, 2nd floor, Room 223. Please call 208-282-7750 to schedule an appointment.
  • Meridian: Counseling services are available to Meridian students through the ISU Counseling Department. Please call 208-373-1719 to schedule an appointment.
  • Out of State ISU Students: ISU Counseling and Testing Service has partnered with LifeWorks, Inc. to bring the MySSP tool to ISU students while they are physically out of the state of Idaho. Through MySSP, students can access health assessments, real-time chat support, and free counseling from licensed mental health professionals. Connect with My SSP by calling 1-866-743-7732 or visiting If calling from outside North America: 001.416.380.6578· Download "My SSP" from the app store to use on your phone.

Preventing & Responding to Sexual Misconduct

In accordance with Title IX of the Education Amendments of 1972, Idaho State University prohibits unlawful sex discrimination against any participant in its education programs or activities. The university also prohibits sexual harassment—including sexual violence—committed by or against students, university employees, and visitors to campus. As outlined in university policy, sexual harassment, dating violence, domestic violence, sexual assault, and stalking are considered forms of "Sexual Misconduct" prohibited by the university.

University policy requires all university employees in a teaching, managerial, or supervisory role to report all incidents of Sexual Misconduct that come to their attention in any way, including but not limited to face-to-face conversations, a written class assignment or paper, class discussion, email, text, or social media post. Incidents of Sexual Misconduct should be reported to the Title IX Coordinator (visit for contact and other information).

Academic Freedom and Responsibility

In carrying out its educational mission, Idaho State University is committed to adhering to the values articulated in Idaho State Board of Education Policy III.B. Membership in the academic community imposes on administrators, faculty members, other institutional employees, and students an obligation to respect the dignity of others, to acknowledge the right of others to express differing opinions, and to foster and defend intellectual honesty, freedom of inquiry and instruction, and free expression on and off the campus of an institution.


Many thanks to Dr. Dan Ventura for his support and contributions in developing this course.