Algorithms and Algorithm Analysis (CS4050)

Course Information

Title: Algorithms and Algorithm Analysis
Institution: Metropolitan State University of Denver
Course ID: CS 4050
Semester: Fall 2023 (August 21 – December 16)
Meetings: Tuesdays & Thursdays 4:00PM- 5:50PM
Location: AES 210
Credit Hours: 4*
Prerequisites: CS3240, CS3250, and 4 additional credits of upper division CS courses. MTH 3210 is recommended.
Policies: http://www.jodypaul.com/cs/alg
Instructor: Dr. Jody Paul (schedule & office hours)
E-mail: jody @ computer.org
Office: AES 200Q
Students are required to attend all sessions during the first week of class.
Students Rights and Responsibilities - Class Attendance

Catalog Description

The emphasis of this course is on the design, analysis, and evaluation of efficient algorithms for a wide variety of computing problems.


*Federal Credit Hour Definition: A credit hour is an amount of work represented in intended learning outcomes and verified by evidence of student achievement that is an institutionally-established equivalency that reasonably approximates not less than one hour of classroom or direct faculty instruction and a minimum of two hours of out-of-class student work each week for approximately fifteen weeks for one semester hour of credit. 34CFR 600.2 (11/1/2010)

Course Overview

Algorithms and Algorithm Analysis combines a practical viewpoint with simplifications from theory to address how we can best solve a given problem using computational resources. The course provides perspectives and techniques most useful for designing the most appropriate algorithms to be executed by computers, now and in the future, and to any domain of application.


Books & Tutorials

Required

Cover of Skiena book The Algorithm Design Manual (Third Edition)
by Steven S. Skiena
Springer (2020)
ISBN: 9783030542556
REQUIRED

Students: This required textbook can be obtained from the Auraria Library.
https://skyline.ucdenver.edu/record=b5976316~S0
Access requires logging in as an MSU Denver student. [Direct Link]


Logo for JavaTPoint tutorial covering Design and Analysis of Algorithms Design and Analysis of Algorithms
JavaTpoint(accessed: July 31, 2023)
https://www.javatpoint.com/daa-tutorial
  • Broad Coverage Tutorials / Descriptive Examples / Not well-vetted

Cover of 'An Active Introduction to Discrete Mathematics and Algorithms'
An Active Introduction to Discrete Mathematics and Algorithms, Version 3.0 (July 28, 2023)
by Charles A. Cusack
https://cusack.hope.edu/Notes/Notes/Books/AIDMA/AIDMA.3.0.pdf
  • Prerequisites Review Textbook
    • Chapter 7 (Algorithm Analysis)
    • Chapter 8 (§8.2 Solving Recurrence Relations; §8.3 Analyzing Recursive Algorithms)
    • Chapter 10 (Graph Theory)

 

Optional Supplement

Alternative presentation, additional coverage, and greater depth

Cover of CLRS book Introduction to Algorithms (Fourth Edition)
by Thomas H. Corman, et al.
MIT Press (2020)
ISBN: 978026204630X
OPTIONAL


Context

The course builds on foundations in data structures and algorithms (CS2050), computational theory (CS3240), and pragmatics (CS3250).

This course assists students in developing facility with designing algorithms in consideration of real world implications of the situation and impacts of alternative choices.

The learning approach makes extensive use of collaboration, teamwork, and participants’ contributions to the collective learning experience. Contribution to the experiences of others and use of collaborative practices comprise part of this course and its assessments.

In an ideal world, the knowledge and practices of algorithms would be objective. However, much of knowledge is subjective and representative of a small set of privileged voices. In this class, we will draw on works deriving from a diverse group of practitioners, luminaries, and advocates. Even so, limits will still exist on this diversity. I acknowledge that it is possible that there may be overt and covert biases in material because of the lens through which it was written. Integrating a diverse set of experiences is important for a more comprehensive understanding of computer science. I would like to discuss issues of inclusion and diversity in the computer science sub-field of algorithms and algorithm analysis as part of the course from time to time.

Please contact me directly or submit anonymous feedback if you have any suggestions to improve the quality of the course materials and pedagogy.

Furthermore, I would like to create a learning environment that supports diversity (of thoughts, perspectives, backgrounds, and experiences) and honors your identities (gender, class, sexual orientation, religion, ability, nationality, ethnicity, backround, …). To help accomplish this:

  • Please let me know your preferred name and set of pronouns (if any), especially if this differs from what appears in your official MSU Denver records.
  • If you feel like your performance in the class is being affected by your experiences outside of class, please don’t hesitate to talk with me. I want to be a resource for you. If you prefer to speak with someone outside of the course, MSU Denver’s Student Care Center webpage is a useful resource.
  • I am continually in the process of learning and discovering diverse perspectives and identities. If I or a classmate says or writes something that makes you feel uncomfortable, please talk to me about it.
  • As a participant in discussions, you should also strive to honor the diversity of your classmates.


Course Policies

Preparation & Participation

All students are expected to prepare in advance for class sessions (by reading, doing preperatory exercises, etc.) and to participate in all class activities and discussions. Participation in class activities and discussions is mandatory and constitutes part of the overall assessment of performance in the course.

The books and references do not provide all of the information necessary to successfully complete the course. Significant information is disseminated during class sessions or via the course websites. You are responsible for knowing this information whether or not you attended the sessions and accessed the websites.

In addition to important domain and course information, the course website is also the vehicle for managing assignments and assessment.

Practice is vital to applying course knowledge to the real world. Assignments represent the opportunity to practice applying the concepts and enhance your understanding. Details are provided in class and on the course website.

Utilizing collaboration skills and practices are beneficial to the study of algorithms and thus expected in this course and part of the assessment.

Class Session Attendance

If you are not present...

  • you are not contributing to the collaborative learning environment and the experiences of other participants.
  • your instructor is unable to provide real-time mentoring.
  • your instructor is unable to assess your performance and credit your contribution to the learning environment and as a collaborative member of the class.

Grading

The final course grade is determined based on the successful completion of assessment items, detailed in class sessions and on the course websites, and computed by combining scores. Course grades are based on the following conversion of scores to letters.

90%  ≤  A
80%  ≤  B  <  90%
70%  ≤  C  <  80%
67%  ≤  C− <  70%
60%  ≤  D  <  67%
        F  <  60%

Assignments, Activities, Projects

Assignments, activities, and projects are opportunities to practice applying the concepts, to enhance understanding, and to demonstrate knowledge and the ability to apply such knowledge.

Details regarding assignments and projects are provided in class or on the course websites. Assignment specifications explicitly state submission requirements. These include required use of website submission form fields (e.g., "Online text") and the number, type, and names of uploaded files.

Although much work is done collaboratively, all assignments must be submitted individually and with unique personalized reflections.

Deliverables

Reflections

Significant learning can result from reflecting on one's own experiences.

Every assignment submission must include a section, of approximately 150 words of prose, labeled “Reflection”. In this section, you describe personal insights and observations resulting from self-reflection on the experiences associated with the assignment.

Reflections comprise a portion of the score of every submitted assignment.

Online Submission via Website

Assignments must be turned in using the course website unless explicitly specified otherwise. In particular, email and hardcopy will not be accepted in lieu of website submission.

Requirements-Based Scoring, Deliverable Formats, and File Naming

Assignment descriptions explicitly state necessary submission requirements, both content and structure, including appropriate use of assignment submission fields and the names and types of uploaded files.

Here are some general specifications that apply unless overridden by an assignment specification:

Text-only documentation should be plain (unformatted) text using ASCII or UTF-8 encodings. Only open file formats should be used for other file types. Specifically unacceptable file formats include proprietary formats, such as (but limited to): Microsoft Word, Apple Pages, Microsoft PowerPoint, Apple Keynote, Rich Text Format (RTF). A deliverable submitted in an incorrect format is equivalent to no submission.

If you are unsure about the acceptability of a file format, please check with your instructor well before submission.


Collaboration & Citation of Sources

Collaborative activity is required for successful completion of this course. In particular, collaboration is regarded as an essential aspect of computer science and contributing to the community of learners. Collaboration and discussion with fellow students, instructors, and university resources (such as the Writing Center) is strongly encouraged. You are neither expected nor advised to learn the course content or work on assignments and projects in isolation.

Much of the work in this course will be collaborative in nature. That said, in order to provide fair and meaningful assessment for grading, the work you turn in must reflect your own efforts. You must create your own submissions, reporting your individual effort, for every assessment item submitted, whether or not the outcome resulted from collaborative effort.

Note that you must compose and submit a personal reflection for every individual and collaborative effort.

Team deliverables are expected to be a joint effort involving the collaboration and contribution of all team members. An overall evaluation will be made for each deliverable that reflects the quality of product or artifact. An individual grade for each team member will be assigned for each deliverable. You may be expected to assess each team member's contribution, including your own.

  • In every submission, you must credit the people with whom you worked or consulted.
  • If you consult any sources (people or works), your submission must explicitly reference those sources and indicate where and how they apply.
  • If you include direct quotations or derivatives (text, graphics, program code, etc.), your submission must include explicit citations that identify the sources.

Academic Dishonesty

Turning in work that includes quotations or derivatives (text, graphics, program code, etc.) without corresponding citations, does not properly cite references, or does not credit collaborators will be treated as an act of academic dishonesty. It is your responsibliity to ensure that you have properly vetted and cited all sources.

N.B. Online aggregators, search engines, and text generators may not properly attribute content. Responsibility for appropriate attribution resides with you, not those service providers.

Incidents of suspected dishonesty will be reported to the Chair of the department and the Dean of the college. Consequences may include a score of 0 on the assignment, a grade of "F" for the course, academic probation, or dismissal from the institution. This is a very serious matter and should not be taken lightly. If you have any uncertainty or concerns, please discuss them with your instructor or your advisor.

 


Official Information

Official policies applicable to all courses may be accessed at https://msudenver.edu/cs/policies

Students are responsible for full knowledge of the provisions and regulations pertaining to all aspects of their attendance at MSU Denver, and should familiarize themselves with the following policies provided on that website:
  • General University Policies
  • Grades and Notations including WITHDRAWAL FROM A COURSE, ADMINISTRATIVE WITHDRAWAL, and INCOMPLETE POLICIES
    Students should be aware that any kind of withdrawal can have a negative impact on some types of financial aid, including scholarships.
  • Accommodations to Assist Individuals with Disabilities
  • Academic Dishonesty
  • Class Attendance on Religious Holidays
  • Prohibition of Sexual Misconduct
  • Electronic Communication (Student Email) Policy

MSU Denver Academic Calendar: http://www.msudenver.edu/events/academic/
Additional official dates and deadlines, including the last dates to withdraw and holidays

MSU Denver Student Rights and Responsibilities: https://catalog.msudenver.edu/content.php?catoid=43&navoid=3176