CS
3114: Data Structure and Algorithms
Fall 2019 (Fall 2017, Spring 2019)
Instructor: Dr. Young (Yang)
Cao, ycao@cs.vt.edu,
Office Location: 2160L Torgersen
Hall
Office Hours: Tu and Fr, 9:30am-10:30am or by
appointment.
Open
Door Policy: At any time of a day, if my office door is open,
students are welcome to drop by and ask questions.
Note:
If you cannot make my office hours, you are welcome to send emails to me. If
your email is sent before 5pm, usually I will respond the same day. If it is
after 5pm, I will respond after 10pm or sometimes the next day.
Class Location: Surge 118C, Class time: TuTh, 11am-12:15pm
Web page: www.cs.vt.edu/~ycao/cs3114/, Canvas
system and TopHat.com
TA Info
Location:
106/110 McBryde
GTAs:
Mohammed Elarnaoty (marnaoty@vt.edu), Negin
Forouzesh (neginf@vt.edu), Suraj
Patil (surajp9@vt.edu)
UTAs: Vincent Le (vincentl@vt.edu), Ryan Berft (rberft@vt.edu)
TA
Photos (more to come):
Mohammed Elarnaoty |
Suraj Patil |
Vincent Le |
Ryan Berft |
|
|
|
|
|
|
TA Office hour Assignment:
You
must have got C
or better in each of the following classes:
Math2534: Introduction to Discrete
Math;
CS2104: Introduction to Problem Solving
in Computer Science;
CS2114: Software Engineering and Data
Structures;
CS2505: Introduction to Computer
Organization I.
2.
Binary Search Tree, Heap, and Hashing Table
3.
Sorting
4.
Searching
5.
Indexing
6.
Graph
Text:
Course notes/textbook materials will be
posted on Canvas System and TopHat. We will use the online
OpenDSA textbook. A pdf file
version is also available for download.
Teaching
Lectures
in this class will have a combination of powerpoint
slides showing and blackboard writing. Powerpoint
slides will be available through the Canvas system and the TopHat
system. They can help you take notes. But please note that they are too brief
to replace your notes in the class. We will use the TopHat system to check attendance, to take quizzes, and to have other
interactive activities. So it is REQUIRED
for each student to register on TopHat in this
session.
About the TopHat System
As
we have more than 100 people in this class, we will use the TopHat
classroom response system in class.
You will be able to submit answers to in-class questions using Apple or
Android smartphones and tablets, laptops, or through text message. You can visit TopHat
Student Guide for the Student Quick Start Guide which outlines how you will
register for a TopHat account, as well as providing a
brief overview to get you up and running on the system. An email invitation will also be sent to
your school email account (if you don't receive this email, you can register by
visiting our course website https://app.tophat.com/e/091503 ).
Note: Top Hat
will require a paid subscription, and the standard pricing for the cheapest
option is $26 for 4-months of unlimited access. For a full breakdown of all
subscription options available please visit https://tophat.com/educational-technology/pricing/.
Assessment:
Complete
descriptions and instructions for completing assessments will be provided when
assignment is made. Dates for
assignment of assessment and due dates for assessment completion will be
indicated on the course schedule. For midterms, students have an option to skip
one midterm upon approval from the instructor, for reasons such as health
reason or schedule conflicts, etc. In that case, the weight for that midterm
will be automatically distributed to the rest exams.
Attendance/Quizzes: 10%
Midterm
Exam 1 10%
Midterm
Exam 2 10%
Final
Exam 20%
Homework/Programs 10%
Four
Projects 40%
Total: 100%
In this course, programs should be
written in Java. The project grading will be done through WebCat system. So please register through WebCat and download the most recent update (if you used an
old version, there will be problem in your submission). Detailed instruction on
project assignment will be given for each assignment. Late homework will
not be accepted. However, everybody has a four-day quota in total for all
projects. When you use up your quota, a 50% penalty will be enforced for
late project submission. Any project submission late for more than 5 days, will
not be accepted.
Final
Grades:
All
assignments receive a numeric grade.
Your final grade will be converted to a letter grade as follows (Note:
The following are estimated scales. In principle, around 10% of the class will
get a letter grade A, and the median of the class should be in the range of B-.
Depending on the class performance, the grading scale may change, but your
grade will not be lower than the following estimation.):
A 90-100% A- 85-89.99%
B+ 80-84.99% B 75-79.99% B- 70-74.99%
C+ 65-69.99% C 60-64.99% C- 57.50-59.99%
D+ 55-57.49% D 52.5-54.99% D- 50-52.49%
F 0 - 49.99% or if ANY honor code
violation is involved
Disabilites:
Please let me know if you have a disability, which requires special
arrangements.
Expectation: In this course, for each
subject we will implement the following procedure:
1.
Instruction
in class to explain the problem, different data structure and the corresponding
analysis. In this step, it is mainly instruction, but you are encouraged to ask
questions. It is recommended that you preview the slides before coming to
class. You are expected to attend 90% of the class unless special arrangement
is made to adjust your grading. Participation (including attendance check and
quiz participation) takes 3% of your total score.
2.
In
the following class, a review for the same topic is given, and then you are
challenged with a quiz question. You are given around five minutes to answer a
quiz question (Sometimes when time is not enough, I will also assign an out of
class quiz problem, which you will take whatever period of time to solve and
submit before or in the next class.). Then the statistics is collected so that
the instructor can see how many students grasp the corresponding
concept/method. The solution of the quiz is immediately given and explained. In
your final grade, we will drop two or three lowest quiz scores (missing a quiz
will automatically count as 0) and use the average of the rest to assign the
quiz grade (7%).
Both attendance check and quizzes are
done through TopHat. Make sure you have the app
installed no later than the second week of the semester.
3.
For
each chapter, you are given a homework assignment. Please
note that Homework is used to help you
to explore related knowledge and to gain extensive understanding of the topic,
rather than to help you better prepare for the exams. For homework
assignment, discussion is encouraged but each individual should submit his/her OWN solution. Copying other studentsÕ work is against the honor code and may result
in an F grade for this course. If you made some mistake in your homework,
feel free to work on it again until you are 100% correct. The homework grade takes
10% of the final score.
4.
Besides
quizzes and homework, you will also be given four project assignments so that
you can practice the design and implementation of different data structure and
algorithms. The idea
for the solution of each project will be discussed in class, but the solution
and codes should never be shared, even after the due date.
Participation: Participants in this
course should expect to spend about 8-10
hours per week involved in the activities and completion of assignments
over the semester. This time invested is an average with some weeks requiring
more, some less time to complete all assignments and activities. If you have a very tight schedule for this
semester and wonÕt be able to spend that much time in this course, please donÕt
take this course, otherwise you may have great difficulty as the course gets
deeper.
Absences: If circumstances prevent participation
or timely completion, students must contact the professor to arrange for
adjustments in assignment or schedule in
advance of due dates and not after completion date has passed. Late homework will NOT be accepted
unless approved by the instructor in advance (official documents are required
to justify any extension).
Honor System:
The University Honor System applies to
all academic work at the university, including this course and all the
assignments. For details, check http://www.honorsystem.vt.edu/. Homework assignments and exams must
be done strictly on an individual basis. Programming assignments will normally
be done with a partner, in which case the pair will jointly submit the
assignment. Aside from your programming partner, it is acceptable to discuss
with classmates a programming assignment in a general way. In other words, you
may discuss with your classmates what your program is required to accomplish
but not the details on how to achieve that goal using Java. In no way should
the individual statements of a program be discussed with or shown to anyone
except the teaching assistants, the instructor, or the free tutors provided by
ACM or UPE. Any discussion of your program source code must be limited to these
people or your pair partner. Always give credit for work that is not entirely
your own (e.g., parts of programs or homework answers borrowed from a book).
Technical - The professor for this course does not
provide technical support. Requests for technical support and/or Canvas support
can be directed to 4Help
by calling (540) 231-HELP (4357).
Accommodations for Special Needs: Any student who has been confirmed by
the University as having special needs for learning
must notify me in the first two weeks of
the course. For more
information please go to http://www.ssd.vt.edu/ .
Accessibility Statement: For TopHat,
check https://tophat.com/accessibility/.
Academic Support Services: Any student requiring academic support
should investigate the UniversityÕs services at http://www.undergraduate.vt.edu/about/aca-supp/index.html.
For complete information on student services at Virginia
Tech, please see http://www.dsa.vt.edu/students.php