CS 3460 Data Structures
Syllabus, Fall 2020

Class Schedule
Sections 103 meets from 12:00-12:50, Mondays, Wednesdays, and Fridays in Belk 310.

Instructor

Name Alice McRae
Pronouns She, her, hers
Office Belk 312-L
Office Hours 4:00-5:30 MW, 2:00-5:30 TR
Telephone 262-2385


Textbook
Data Structures and Algorithm Analysis with Java, by Mark Allen Weiss

Notebook
Students will need a binder to collect in-class worksheets. A 3-ringed binder is suggested.

Content
Study of data structures and algorithms fundamental to computer science; measures of program theoretical and running time complexity; lists, search trees, hashing, priority queues, graphs; sorting, recursion, and algorithm analysis and design techniques.


Objectives
Students successfully completing the data structures course will demonstrate the following:

Grading

Test Average. There will be three semester tests. Their average will constitute your "test average." The third test will be cumulative. Tests should be entirely your own work. All tests are mandatory and there will be no make-up tests unless you have to miss class for a reason that the University considers valid. In such a case you must supply appropriate documentation prior to the date of the exam unless you become ill suddenly. In that case I will need the telephone number of the doctor you saw so that I can verify your illness. The last test grade can replace one bad or missed earlier test if the grade on the last test is higher. To repeat, unless arrangements are worked out in advance, missed tests cannot be made up. If a student has an absence on a test day, then the comprehensive test grade will substitute for the missed test.


Lab and Classwork Average. Lab, homework and classroom activities are designed to help students master the new material and to develop strengthen problem solving, programming and reasoning skills. This average will be computed from lab and programming assignments, quizzes, and class participation.

Labs, Programs 50%
Homework 20%
Final Project 15%
Class Participation and Quizzes 15%

Lab and Programming assignments. There will be lab and programming assignments over the course of the semester. I will grade your labs and programs based on your use of the techniques discussed in class and the correctness of your output. Be absolutely sure that you compile and test. You will be responsible for creating your own testing. Students may discuss programming assignments and share testing data, but students should write their own labs and programs. Programs and labs are important components of this class. Lab assignments are generally smaller programming assignments used to reinforce concepts discussed in class. Labs/programs should be submitted by the end of the day of their due dates (11:59 pm). Late labs/programs will lose 5n points, where n is the number of class days the program is late.
Programs and labs will be evaluated on
  1. Meeting the specifications of the assignment and solving the problem that you are given.
  2. Following a given technique or algorithm, if one is specified.
  3. Correctness
  4. Efficiency
  5. Program Style and Documentation

Collaboration on Programs, Labs, Classwork, and Homework. Homework may be discussed in groups (but not copied). Every member of the group should write their own solution. If students work together on homework, every member of the group should contribute, and each member of the group is responsible for all the material.

For labs and programs, it is OK to discuss an algorithm or technique, but code should not be shared. It is OK to ask others to help with debugging, but do not give others the opportunity to copy your code. With respect to your labs and programs, neither a borrower nor a lender be. Do not give your labs or programs to others. Do not take labs or programs from others. Do not use solutions from the Internet to labs or programs unless you are told to do so as part of the assignment. It is possible a quiz will be given after a lab or program is turned in. Students that do not pass the quiz will be given no credit for the lab or program assignment.


Additional Program and Lab Requirements or Goals
  1. Except for constants, i.e. static finals, and a Random object, fields must be private and they may not be static. If you find a compelling reason to break this policy, you need to get the instructor's permission.
  2. Put your test programs in a separate class.
  3. Document any code in your program that comes from another source, giving an approprite citation (code from the book or class).
  4. We will not be using WebCat or an automatic grader this semester. Happily, you have more creativity in your assignments. It also becomes your responsibility to figure out how to test your programs and labs thoroughly. Before, it was easy to tell when you were done, or making progress, because your labs were in stages, and there was immediate feedback in grading. Not now.
  5. There is no formal lab section with this class. It is your responsibility to schedule lab time to work on your lab assignments.

Using Code found on the Internet. This semester, we will look at different data structures and different algorithms for problems. We are going to see some really cool techniques for solving problems that may not be the most intuitive or the most common way that people solve the problem. Your textbook will claim these techniques are better in many ways - especially with respect to time efficiency. Because we are learning ways that are different from the way the average programmer might approach the problem, our textbook should be a resource before the Internet.

This semester I want to discourage students from using code from the Internet. One reason is that it is cheating - students are passing off copied work as their own. Another reason is it defeats the whole purpose of an assignment which is for a student to learn how to solve the problem. A third reason is that I believe the majority of the code on the Internet is of extremely poor quality.

There are good reasons to search the Internet for code - to find examples of how to use a particular feature in a language is one example. For this class, anytime you use code from the Internet, I want there to be documentation and citation in your code giving credit to the site you found the code.


Final Project There will be a special final project due at the final exam period in December. More information will be given later in the semester.


Homework Problems. There will be frequent homework assignments. Students may discuss homework assignments and their solutions, but students should write up their own answers. Homework will be graded quickly based on cursory glances of correctness and completeness. Their purpose is to help prepare students for the kind of questions that appear on tests. I do not like to grade late homework after I have already given them back.


In-class Quizzes There will be occasional inclass quizzes during the week.

Attendance/Class Participation Every day we meet you will be responsible for actively participating in class. This may mean answering questions; it may mean being fully engaged in the material and solving problems on the worksheet for the day. I used to compute an attendance grade starting at 100, and subtracting 20 points from every absence after the second absence, though stopping at 0. This semester this policy needs to be changed. Students are expected to keep up with class notes at least to the point of filling out and completing worksheets that are given in class. Keep daily worksheets together in some sort of binder. Sometimes we will not finish a worksheet during class. We either will complete the worksheets the next class, or students should complete the worksheets on their own. If you are unable to be in class, you still are responsible for any material missed. This includes changes to programming assignments, labs, test dates, etc. Sometimes current assignments and due date changes do not make their way onto ASULearn. You are still responsible for what is assigned in class. In case of dangerous weather: if you are concerned about driving through significant ice or snow to get to class, missed material will be made available.


Class Preparation You are expected to read the appropriate sections of the book before lecture. Most of the time, the reading section can be found on ASULearn. If you are not sure which sections of the book correspond to the material we are covering, please ask in class. Sometimes we will cover material that is not in the textbook. Usually, any additional material covered may be found in class notes on ASULearn.


Letter Grade Assigned. Your submitted letter grade will be computed from the following table. The numbers in the column heading refer to your test average, and the numbers in the rows refer to your lab/classwork average. The letter grade in the intersection will be the letter grade you are assigned in the class.


97+

96-93

92-90

89-87

86-83

82-80

79-77

76-73

72-70

69-67

66-63

62-60

59-55

54-

97+ A A A A B+ B B B C+ C C C- D F
93-96 A A A A B+ B B B- C+ C C C- D F
90-92 A A A- B+ B B B B- C+ C C C- D F
87-89 A A B+ B B B B C+ C C C D+ D F
83-86 A A- B B B B B- C+ C C C D D F
80-82 A- B+ B B B B- C+ C C C C- D D F
77-79 B+ B B B B- C+ C C C C D+ D D F
73-76 B B B B- C+ C C C C C- D D D F
70-72 B B B- C+ C C C C C D+ D D D- F
67-69 B- C+ C C C C C C C- D D D F F
63-66 C C C C C C C C- D+ D D D F F
60-62 C C C C C C C- D+ D D D D- F F
55-59 C- C- C- C- C- C- D+ D D D D- F F F
0-54 F F F F F F F F F F F F F F


Pandemic Concerns
These are uncertain times. Normally a syllabus is a contract from an instructor, but there may be many parts of this course that need to change based on unexpected events. All of us need to remain flexible and do our best to care about the safety of ourselves, our family, other students, and the community. All students should stay home when sick, wear masks in class, wash hands frequently, and follow the mask guidelines given by the university ASU Face Covering Policy. Let's hold each other accountable and stay safe.

Office Hours
This semester I am teaching four classes that have a heavy emphasis on programming. At the same time, there are fewer help session study hall hours. Together, this suggests that my office could become packed with students needing help on assignments. With the need for social distancing, this has to be avoided. I don't have an answer yet. We'll need to find solutions as the semester progresses.

Academic Integrity Code (quoted from Vice Provost)
As a community of learners at Appalachian State University, we must create an atmosphere of honesty, fairness, and responsibility, without which we cannot earn the trust and respect of each other. Furthermore, we recognize that academic dishonesty detracts from the value of an Appalachian degree. Therefore, we shall not tolerate lying, cheating, or stealing in any form and will oppose any instance of academic dishonesty. This course will follow the provisions of the Academic Integrity Code, which can be found on the Office of Student Conduct Web Site at www.studentconduct.appstate.edu.


Accomodations for Students with Disabilities (quoted from Vice Provost)
Appalachian State University is committed to making reasonable accommodations for individuals with documented qualifying disabilities in accordance with the Americans with Disabilities Act of 1990, and Section 504 of the Rehabilitation Act of 1973. Those seeking accommodations based on a substantially limiting disability must contact and register with The Office of Disability Services (ODS) at http://www.ods.appstate.edu/ or 828-262-3056. Once registration is complete, individuals will meet with ODS staff to discuss eligibility and appropriate accommodations.

Personal Inclusive Excellence Statement
I want to treat every student with dignity and respect. Especially in light of the horrific events of this past summer, I want to become anti-racist. I have got lots of work to do to meet these these two goals. Please feel free to correct me and help me learn how to be the person I want to be. Hold me accountable.