Class Piazza
Site
signup
Course
Description
Weekly
Schedule
Course
Overview
Required
Textbooks
Grading
Policy
Getting a Computer
Account
Academic
Integrity Policy

CS350, Section 1 — Winter Quarter 2019
Tuesday and Thursday 10:00–11:50
UTS 203 (In the Chase Bank
Building on 4th Ave at Lincoln)
CRN 40851
Instructors

Professor Andrew Black
503 725 2411
Office: FAB 115–10
Office hours: Tuesday noon–12:30 and Thursday
16:00–17:00. To set up an appointment at an
alternative time, please use the telephone


Teaching Assistant
Aark Koduru
Office hours: Thursday 08:00–10:00
Location: CS Fishbowl (may change)

Course Overview
This course looks closely at the complexity
of computing stuff. That means how much time, and
sometimes how much space, an algorithm takes. Why does
this matter, when computers are so fast? Because we
often want to solve large instances of certain
problems, and the time taken by some algorithms is
exponential in the size of the problem instance. What
that means is: if we choose an naive algorithm,
solving the problem might take more time than the
expected lifetime of the sun!
The approach of the course is mathematical: much of
it is about deriving formulae for the expected running
time of algorithms. However, there will also be some
programming assignments, including a programming and
measurement project.
Course
Objectives
Upon the successful completion of this class,
students will be able to:
1. Analyze the running time and space complexity of
algorithms.
2. Use the “big Oh” notation. (e.g., O(n
lg n).)
3. Describe how to prove the correctness of an
algorithm.
4. Use the mathematical techniques required to prove
the time complexity of a program/algorithm (e.g.,
limits and sums of series.)
5. Perform inductive proofs.
6. Prove and apply the Master Theorem.
7. Describe the notions of P, NP, NPC, and NPhard.
8. Compare the rates of growth of functions.
9. Apply algorithmic complexity principles in the
design of programs.
10. Design divide and conquer and dynamic programming
algorithms.
Official
Course
Description
Required Textbook

The required book is Introduction to the
Design and Analysis of Algorithms (3rd
Edition) by Anany Levitin. Addison
Wesley; ISBN10: 0132316811
ISBN13: 9780132316811. There is
also a Kindle Edition, which is a bit cheaper,
but I think that it contains page images and
works only on largerscreen devices.
I will be assigning reading from this book,
and I will not be repeating the
material that you have read as lectures.
Instead, we will be using the time in class to
solve problems and deal with issues that you
raise as a result of your reading. This puts
the onus on you to speak up if you don't
understand the readings.
NB: In addition to the textbook, I'm
requiring you to purchase a Student Response System
account.

Reference Book

This book, Introduction to Algorithms,
by Thomas Cormen, Charles Leiserson, Ronald
Rivest, and Clifford Stein, has been used at
PSU in the past. It's a great reference, but
is significantly harder to read than Levitin.
It's also organized by problem class, rather
than by algorithm class.
The book is intended for a graduate course.
It takes a mathematical approach, focusing
much more than Levitin on proof of correctness
of the algorithms. I'm listing it here as
resource that you may like to own,
particularly if you can find a used
copy. I will not be assigning
reading from this book, but reading it can be
helpful in providing an alternative view from
Levitin’s

Course Policies
Attendance
I recommend that you come to class, that you participate
actively —which means asking and answering
questions — and that you take notes. The
act of taking notes (even if you never look at
them again!) is a powerful learning aid. I will
generally make any visual aids, code samples, etc.
that I used in class available on the web, but
these are not a substitute for being in
class and taking notes. If you do have to miss a
class, say because of illness or workrelated
travel, you are responsible for getting notes and
finding out what went on in class from another
student.
Student Response System
("Clickers")
To encourage participation, I'm going to be using
a student response system in class, and part of
the grade will depend on your responding to the
inclass questions. (Whether or not you
answer correctly won't affect your grade.)
This quarter we will be using a SmartPhone App
from a company called TopHat.
The is good because you don't have to buy a piece
of hardware; it's bad because you do have to pay a
license fee.
To buy a license to TopHat, go to http://tophat.com and
sign up as a student. The Course Code for this
course is 791471. TopHat is a
cloudbased system that you can access from a web
browser on your laptop, or from your
smartphone. A onesemester license
costs around $26; a wholeyear license is around
$32. If you have trouble with the technical
aspects of using TopHat, contact them directly by
telephone at 8886635491, or by email at support@tophat.com.
I regret asking you to spend yet more money,
but the educational research results are in:
interactive classes using these devices really do
improve learning. I also regret that you may have
already bought a different brand of device for
another class.
Reading Assignments
Reading listed in the syllabus for each week
should be completed before coming to
class. I will check on the completion of reading
assignments by various means: oral or written
quizzes in class or on Piazza, written
summaries, discussion (webbased or in class),
etc. Anything in a reading assignment is fair game
for an exam question.
Online Questions & Discussions
There will not be a class mailing list; instead,
we will be using Piazza for class
discussion. This system is designed to get you
help fast and efficiently: from classmates, the
TA, and the instructor. Rather than emailing
questions to the teaching staff, I encourage you
to post your questions on Piazza. If you have any
problems or feedback for the developers of Piazza,
email team@piazza.com.
Sign up at: piazza.com/pdx/winter2019/cs350
Class link: piazza.com/pdx/winter2019/cs350/home
Assignments
Handwritten or printed assignments are due at the
start of class. I will accept assignments up
to three days (i.e., 72 hours) late, for a 10%
penalty in points. So homeworks due on
Thursday at 10:00 can be turned in late on Friday,
Saturday or Sunday up until 10:00; homeworks
due on Tuesday can be turned in late on Tuesday,
Wednesday, Thursday, or Friday up until
10:00. (In cases of authenticated sickness,
I'll accept homework late, without penalty, beyond
this limit.)
All late homeworks must
be turned in on D2L. Ontime
homeworks should normally be turned in on paper in
class, but if you are unable to get to class for
some reason, they can also can be turned in on
D2L. If you don't follow these rules
your homework is likely to get lost.
Regrading
We do sometimes make mistakes. If you believe
that we have not graded your assignment according
to the published grading scheme, please let the
instructor know in writing or by email
within 1 week of the assignment being returned to
you. Be specific as to why you think that the
grading is inconsistent. We will then
regrade the whole assignment; the second grading
will stand, whether it is higher or lower than the
original grading.
Disabilities
If you are a student with a disability in need of
academic accommodations, you should first register
with the Disability
Resource Center, and then notify the
instructor to arrange for support services.
Makeup Exams
If you have a medical or a family emergency and
must miss an exam, let me know, if at all possible
before the exam, and I will work with you
to find an alternative. Other reasons for absence
such as scheduled travel are not
emergencies and are not cause for a
makeup.
Passing the Course
Every assignment in the course is connected to a
learning objective. It is therefore important that
you make an honest attempt to complete them all. A
score of less than 20% on any assignment indicates
that you have not met this condition, and is
sufficient cause for failing the course. That
means an F, at the discretion of the instructor.
Access and Inclusion for Students with
Disabilities
PSU values diversity and inclusion; we are committed
to fostering mutual respect and full participation for
all students. My goal is to create a learning
environment that is equitable, useable, inclusive, and
welcoming. If any aspects of instruction or course
design result in barriers to your inclusion or
learning, please notify me. The Disability
Resource Center (DRC) provides reasonable
accommodations for students who encounter barriers in
the learning environment.
If you have, or think you may have, a disability that
may affect your work in this class and feel you need
accommodations, contact the Disability Resource Center
to schedule an appointment and initiate a conversation
about reasonable accommodations. The DRC is located in
116 Smith Memorial Student Union, 5037254150,
drc@pdx.edu, https://www.pdx.edu/drc.
If you already have accommodations, please contact me
to make sure that I have received a faculty
notification letter, and can discuss your
accommodations with you.
Students who need accommodations for tests and quizzes
that require them to take tests at location outside
the normal classroom are expected to schedule their
tests to overlap with the time at which the class is
taking the test.
Please be aware that the accessible tables or chairs
in the room should remain available for students for
whom standard classroom seating is unsuitable.
Emergencies
For information about emergency preparedness, please go
to the Fire and Life Safety webpage (https://www.pdx.edu/environmentalhealthsafety/fireandlifesafety).
Academic Integrity
Students are at university for two reasons: to learn
stuff, and to gain a credential. Because the
credential is important to many of our students, part
of my role as a professor is to make sure that it has
value. This means ensuring that the degree is awarded
only to those students who have mastered the material
in my course.
I have every sympathy for those who have difficulty
with the material and seek the assistance of the
instructor, the TA or their fellow students. I have no
sympathy at all for those who decide that the fastest
way to a degree is to cheat. I have been responsible
for having cheating students dismissed from the
university in the past, and I will not hesitate to
seek to have cheaters dismissed in the future.
The most common form of academic dishonesty is
representing the work of others as your own. In all
written material, you are allowed, indeed expected, to
build on others’ work, but must do so in a way that
makes it absolutely clear what part of the work is
your own, and what part is due to others. You do
this by citing the prior work. If you reproduce
someone else’s work in a way that makes it appear to
be yours, you are guilty of plagiarism—in other words,
of cheating.
Cheating on an assignment or exam will result
in an automatic zero grade for that piece of work,
and the initiation of disciplinary action at the
University level.
Cheating and collaboration
I encourage collaboration on certain assignments; I
will not tolerate cheating. Where is the line between
these activities?
First, if an assignment is explicitly set up as a
team assignment, you are of course allowed
— indeed, required — to collaborate with the
members of your team. In this case I will generally
require only one completed piece of work to be turned
in from the team as a whole.
For individual assignments, I encourage you to talk
about the problem with your fellow students. During
such discussion, you may even write something,
perhaps the code of a critical method, or a key step
in a proof, as a group. If you do this, there is a
danger that you might reproduce that group work as if
it were your own. To guard against this danger, do the
following: after the group session, destroy any notes
or code that you may have brought away with you. Then
go and do something else for an hour or two: go for a
walk or a bike ride, play your favorite sport, go to
the gym: do something to flush your shortterm memory.
Then sit down with a blank sheet of paper or a blank
computer workspace and start work on your own
solution. If you have a photographic memory or
otherwise won't be able to forget what you have seen
someone else write, then don't participate in
collaborative problemsolving sessions.
If I see the same code or assignment from two or more
students I will take this as evidence that these
guidelines have been ignored, and will assign a grade
of zero to all of the students involved.
Please refer to http://www.pdx.edu/dos/codeofconduct
for details of the general PSU Student Code of
Conduct.
Method of assessment
The following represents my present intention; I
reserve the right to vary the grade distribution if it
seems necessary or desirable.
Item 
Details 
Weighting 
Homework 
Five graded assignments, each worth
5%. The assignment with the lowest
score for each student will be dropped from
the final grade computation.

20% 
Midterm 
Week of 11th February in class

20% 
Final 
Tuesday 19th
March, 10:15–12:05 
30% 
Term
Paper/Project 
Further details will be made
available. Some of these points will
be awarded for the project proposal.

20% 
Participation 
For participation in class and
electronically.

10% 
Most recently modified sometime
in the past
Andrew P. Black
