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:

 

 

Prerequisites: 

            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. 

Topics Covered:

1.        Time Complexity Analysis 

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). 

 

Course Support:

 

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