# CS/COE 1501: Algorithm Implementation

Course Information and Policies

## Course Description and Rational:

Algorithms are solutions to problems that are well-suited to being implemented by a programmer and run by computers. A large part of a computer scientist's job is solving problems. In this course, we will explore common computer science problems, solutions to those problems, and the tradeoffs of the various solutions. Towards the end of the course, we will explore what makes an algorithm "good" and how to determine the quality of an algorithm.

By the end of this course, you will be able to ...

• describe algorithms that solve common computer science problems.
• discuss tradeoffs between different algorithms that solve a problem.
• analyze an algorithm's runtime.
• propose an algorithm to solve a problem you may not have seen before and discuss its space and time complexity.

## Prerequisites

• CS 441: Discrete Structures for Computer Science
• CS/COE 445: Data Structures

## Textbook

Algorithms, 4th Ed.
by Robert Sedgewick and Kevin Wayne
ISBN-13: 978-0-321-57351-3
Book's site

Category Percentage
(non-writing section)
Percentage
(writing section)
First Exam 25% 20%
Second Exam 25% 20%
Quizzes 5% 4%
Programming Projects 40% 32%
Participation 5% 4%
Writing Assignments n/a 20%

98 – 100 A+
93 – 97 A
90 – 92 A-
87 – 89 B+
83 – 86 B
80 – 82 B-
77 – 79 C+
73 – 76 C
70 – 72 C-
67 – 69 D+
63 – 66 D
60 – 62 D-
less than 60 F

When a percentage falls exactly between two letter grades, the round half up method will be used for breaking this tie. For example, if a student has a final grade of 82.50%, the grade will be rounded up to 83% (B). However, if the final grade is 82.49%, then the grade will be rounded down to 82% (B-).

## General Information

• Students should attend all lectures, which may include material that is not directly available from the text or lecture notes/slides. If a student misses a lecture, he/she is still responsible for the material covered. While lecture notes will be available from the Daily Schedule, anything written on the board or programmed may not be available from anywhere other than a classmate. Additionally, participation is partially dependent on attending lecture.
• Information, including announcements, handouts, review sheets, and solutions, will be posted on the Daily Schedule. Students are expected to be aware of all information that is posted on this page.
• All material that a student turns in should also be saved in a safe place until the term has ended and he/she has received and accepted his/her final grade. Do not assume that uploading your project means you no longer need to keep a copy of it.
• It is recommended that students save their work frequently and maintain backups of their computer and, especially, any programs being written for this class. Failing to turn in an assignment on time because "my computer crashed" or "I lost my usb drive" are not valid excuses for turning an assignment in late.
• Grade Appeals: Grades can be appealed up to two weeks after they have been posted; no appeals will be considered after that time. When appealing a grade, you must identify at least one way in which you were graded incorrectly or unfairly. Please note that the entire homework/exam/etc. will be regraded upon appeal.
• If a student is having issues that can affect his or her grade, it is better to talk to the instructor sooner rather than later.
• All course material is subject to copyright, including notes, slides, assignments, and solutions. Students are allowed to use the provided material only for personal use, and may not share the material with others, including posting the material on the Web or other file sharing venues.

## Lecture and Discussion

• Students are encouraged to attend all lectures, which frequently include material that is not directly taken from the text. If a student misses a lecture, he/she is still responsible for the material covered and is advised to copy the notes from a classmate.
• This course may include open discussion or other interactions among students. To allow all participants to express their viewpoints, all discussion must remain civilized and respectful, and participants must avoid comments and behaviors that disparage others. A student who feels their viewpoints are not being respected is encouraged to contact the instructor, who will work to correct the situation without revealing the student's specific concerns to the rest of the class. A student in this situation who does not feel comfortable contacting the instructor directly is encouraged to contact the TA, who will uphold the same degree of confidence in relaying the issue to the instructor.
• To ensure the free and open discussion of ideas, students may not record lectures, discussion or other course activities without the advance written permission of the instructor. Any recording properly approved in advance can be used solely for the student's own personal use.

## Collaboration

• We believe that students should be able to distinguish between helping one another understand the core concepts of the course material and cheating. We encourage students to discuss the content of the course in ways that will improve understanding without violating academic integrity, such as clarifying the objective of an assignment or discussing general solution tactics.

## Programming Projects

• We will be using the git version control system via GitHub for the development and submission of programming projects this term. Please visit github.com to register for an account. You will need to have an account before the first assignment is released.
• If you are new to git or GitHub, the first recitation will cover basic usage. The recitation slides on using Git can be found here. The official documentation on how to use git can be found here: https://git-scm.com/documentation.
• Homework is due by 11:59 pm at GitHub on the due date, unless otherwise stated. Homework submitted after the deadline will be graded as a late submission. Note: Submissions received at 11:59:01 pm are considered late.
• All assignments specify a precise due date and time. Late assignments will not be accepted. Students must ensure they understand each assignment's submission procedure in advance of its deadline to ensure that submission difficulties do not cause an assignment to be rejected.
• Any programs that need to be written must be written in Java.

## Exams and Quizzes

• Exam and quiz dates will be listed on the daily schedule. Exams will be announced at least two weeks before the date and quizzes will be announced at least one class before the quiz.
• Both exams will be during lecture. Quizzes may be during recitation or lecture
• Students are expected to be present for exams and quizzes. Make-ups will only be given in the event of a properly-documented emergency, and only if the instructor is informed in advance or as soon as possible after. If you cannot contact your instructor directly, send him an email or call the CS department (412-624-8490). Failure to notify your instructor prior to missing an exam or quiz will result in a zero.

## Writing Assignments

• Students in the writing section are required to complete all writing assignments. Students not in the writing section do not need to complete any writing assignments (nor will they receive credit for completing them). Be sure you know which section you are registered for.
• Writing assignments will be completed through Peerceptiv. If you are in the writing section, be sure to register for an account before the first assignment is posted.

## Extra Credit

• There are no opportunities for extra credit in this course.

## Disability Services

If you have a disability, please have the Office of Disability Resources and Services (DRS) send a confirmation letter. Upon receiving the letter, we can discuss accommodations.

"The Office of Disability Resources and Services (DRS) provides a broad range of support services to assist students with disabilities. Services include, but are not limited to, tape-recorded textbooks, sign language interpreters, adaptive and transportation. Contact DRS at 412-648-7890 or 412-383-1355 (TTY) in 216 William Pitt Union or see www.drs.pitt.edu for more computer technology, Braille translation, and nonstandard exam arrangements, DRS can also assist students with accessibility to campus housing information." (quoted from the Undergraduate Bulletin)

## Religious Observances

If a religious observance will interfere with your attendance or performance in class, please inform the instructor ahead of time (by email, at least two weeks in advance) so accommodations can be made. While it would be useful for any class, this is especially important for days when graded assignments are due or exams are scheduled.