Syllabus
Computer Science 130B
Data Structures and Algorithms II
Spring 2017
Lecture:
TH 9:30am - 10:45am
|
Room:
PHELP 3515
|
Discussion: F 11:00 - 11:50pm (08029)
|
Room:
GIRV 1112
|
Discussion: F 12:00 - 12:50pm (08037)
|
Room:
GIRV 2129
|
Instructor: Yuan-Fang Wang
|
Office:
Harold Frank Hall 3113
|
Office hours: TH 11:00am - 12:00pm
|
Phone:
893-3866
|
TA:
Raymond Wong
|
Office Hours T 11-1, W 11-1, F 1-2 (in CSIL)
|
TA: Steven
Munn
|
Office Hours M 1-3, W 1-3, F 2-3 (in CSIL)
|
Reader: Jungah Song
|
Office Hours: by appointment (in CSIL)
|
Grading:
- Homework
(both programming and written assignments) = 60%
- Midterm
exam = 15%
- Final
exam = 25%
Final
exam:
June 13 Tuesday, 8:00am - 11:00am
Textbooks:
There are quite a few acceptable textbooks
on algorithm designs. You can use any of those for reference (e.g., those from
your CS130A class if they cover the topics we discuss in this course). As I do
not follow any textbooks closely, I do not require you to buy any specific
books for this course. The following books are good references (many others
will do too).
- Introduction
to Algorithms, Second Edition,
Cormen, Leiserson, Rivest, and Stein (2001)
- Fundamentals
of Algorithmics, Brassard and Bratley (1995)
- Computer
Algorithms C++, Horowitz, Sahni,
and Rajasekaran (1996)
- Data
Structures, Algorithms, and Applications in C++, Sahni (2004)
- Algorithms,
Second Edition, Sedgewick
(1998)
- An
Introduction to the Analysis of Algorithm, Sedgewick and Flajolet (1995)
- Computer
Algorithms, Introduction to Design and Analysis, Third edition, Baase (1999)
- Data
Structures and Algorithm Analysis in C++, Third Edition, Weiss (2006)
Lab:
CSIL Lab,
Harold Frank Hall 1132
Topics
to be covered:
- Overview
- Divide
and Conquer
- Greedy
Methods
- Dynamic
Programming
- Search
Techniques
- Randomized
Algorithms
- Complexity
Classes P vs. NP
General
class policies and announcements:
- This
class has a Web site at http://www.cs.ucsb.edu/~cs130b.
You will find there useful information such as announcements, program
deadlines, on-line copies of syllabus, homework, and lecture notes.
No hardcopy will be distributed in class. It is your responsibility
to check the class Web site on a regular basis.
- You
can view, download, and print the class notes on-line through the
appropriate links from the class Web site.
- We
will be using Piazza for class discussion. The system is highly catered to
getting you help fast and efficiently from classmates, the TAs, reader,
and instructor. Rather than emailing questions to the teaching staff, you
can also post your questions online. Important Piazza etiquette:
- Be professional and courteous - this is not a place to
vent your frustration!
- Describe your problems clearly but succinctly - you
are wasting your time composing long questions in the Twitter era,
- Remember the rule of gives-and-takes: you want people
to help you, you should try to help others if possible, however,
- Don't post suggestions that you are not sure of or are
intentionally misleading, and
- Most importantly, never ever post your codes onto the
discussion website.
- A
written assignment is to be handed in before 4:00pm
on the due day in the CS130b turnin box in the
mail room (HFH, rm 2108). Programming
assignments are to be turned in electronically before 11:59pm on the due day for grading. Check Homework Turnin Instruction
for more information.
- You
can code and debug your assignments using your home PC. However, it
is imperative you compile and run your programs on machines in CSIL at
least once before you turn in your source codes electronically for grading.
This step is essential to make sure that no incompatibility (in header and
library files) exists that might prevent your programs from being compiled
and run in CSIL.
- For
all programming assignments, you must keep a copy of your codes in CSIL. You
must not
edit or change them in any way after you turn them in electronically.
The purpose of this backup copy is to help resolving disputes regarding
assignment grading (e.g., the turnin process
corrupts the codes). You need to have a backup copy with a time stamp
showing the codes' last modification date. A backup copy on your own
computer is not acceptable.
- You
should save important email correspondences with your
readers/TAs/instructor (e.g., those grant you a late turnin
without penalty, those change your grades, etc.) and retain all graded
written assignments. These evidence is a must if you later want to contest
those grades as recording error.
- Homework
due dates will be clearly marked on the handouts. In general, you
will have about two weeks to finish a programming assignment and one week
to finish a written assignment. Plan your schedule wisely as
late homework turnin, without a documented proof
of an emergency, will be severely penalized. 20% will be taken off
for any fraction of a day late, up to two days. No late assignment turnins will be accepted after the second day past the
due day. This policy applies to both written and programming assignments.
(Note that HFH will be closed during the weekend. If you are to turn in
written assignments during the weekend, you will need to scan the papers
into a PDF file and email the file to the class account cs130b@cs.ucsb.edu
to receive the proper credit.)
- There
is no group assignment in this class. You can discuss problems with your
classmates and consult your TAs and instructor if you have any questions
(email inquiries sent to cs130b@cs.ucsb.edu
will be routed to the TAs and instructor automatically). However, you must
do all the assignments on your own; i.e., all answers and codes you turn
in must be your own work. Any act of cheating, plagiarism or
collaboration on assignments will be met with severe penalty.
- If
you have questions concerning your program/exam grades, you should bring
them to your readers and TAs first. If the questions cannot be resolved to
your satisfaction, you should then consult the instructor. Any
dispute over grades must be resolved in a timely manner (within two weeks
after the grades are announced).
- Class
attendance is highly recommended. You are responsible for everything that
goes on in class. "I wasn't there" and "I didn't know"
are not valid excuses for missing something important!
- Weekly
one-hour discussion sections, led by the TAs, will focus on (1) presenting
supplementary material (such as practical examples) to the lectures and
(2) answering questions (about lecture topics, homework problems,
programming issues, etc.). It is expected that you attend these sessions -
you are responsible for what goes on during the discussion sessions also.
Academic Honesty Policy
In this class, you are expected to subscribe to the
highest standard of academic honesty. This means that every idea that is not
your own must be explicitly credited to its author. Failure to do this
constitutes plagiarism.
Plagiarism includes using ideas, code, and old
solution sets from any other students or individuals, or any sources other than
the required text, without crediting these sources by name. In this class, the
homework includes several programming assignments. You are encouraged to
discuss problems with your instructor and TA. You may not copy codes from other
students, or give your codes to others under any circumstances.
Academic dishonesty will not be tolerated. Any student
caught of academic dishonesty will be reported to the proper authority for
disciplinary action. You will receive a failing grade for this course and may
be suspended or dismissed from the university.