CS 2413 — Data Structures — Fall 2018

Course Title:
Data Structures

Instructor:
Dean Hougen, Devon Energy Hall 242, 405-325-3150, hougen@ou.edu

Teaching Assistant:
Cameron Bost, Devon Energy Hall 210, Cameron.A.Bost-1@ou.edu
Sanjana Mudduluru, Devon Energy Hall 210, sanjana@ou.edu

Action Tutor:
Noah Zemlin, noah.zemlin@ou.edu

Class Hours:
Monday, Wednesday 3:00-4:15, Dale Hall 128

Office Hours:
Dean Hougen
Monday 1:30-2:30, Wednesday 1:30-2:30, Friday 1:30-2:30, Devon Energy Hall 242
Cameron Bost
Monday 12:00-1:00, Wednesday 12:00-1:00, Thursday 11:00-12:00, Friday 11:00-12:00, Devon Energy Hall 115
Sanjana Mudduluru
Tuesday 9:00-10:00, Friday 9:00-10:00, Devon Energy Hall 115

Action Tutoring Hours:
Noah Zemlin
Wednesday 10:30-12:00, Devon Energy Hall 245; Friday 12:00-1:30, Devon Energy Hall 145

Required Text Books:
You are required to have your own copy of the following textbooks:
— Data Structures and Algorithms in C++:
CS 2413: Data Structures with zyLabs, Frank Vahid and Roman Lysecky with Alex Edgcomb and Susan Lysecky plus Evan Olds and Nkenge Wheatland, 2018, zyBooks. (https://learn.zybooks.com, code: OUCS2413HougenFall2018 ).
— Computer Ethics:
A Gift of Fire: Social, Legal, and Ethical Issues for Computing and the Internet, Fourth Edition, Sarah Baase, 2012, Prentice Hall. (ISBN-10: 0132492679; ISBN-13: 978-0132492676).
Students should read ahead the chapters that are expected to be covered in the class period (see the class schedule). Students should always bring their textbooks with them to class periods, including lectures and exams.

Communication:

The primary means of transmitting class information to the students will be through announcements during class time and through Canvas. You are responsible for announcements made through either or both of these means.

Occasionally, urgent information may be sent via email. You must ensure that the email address the University has on file for you is valid and is monitored by you. A test of the email addresses provided by the University will be made during the second week of class. You are responsible for notifying the instructor if you do not receive this test email.

The best way for students to communicate with the teaching staff is to come to scheduled office hours. If you cannot attend office hours in person, phone calls can be accepted but students present in the office will get priority. Email can also be used but a quick or detailed personal response is unlikely as we get a lot of email and responding to email can be very time consuming. Moreover, emails will get a lower priority than either phone calls or in-person visits.

One way for students to communicate with one another is through the discussion forums of Canvas for the class.

Details of all of the communication methods follow.

WWW:
Information about this class will be found on the class website. The URL is
http://www.cs.ou.edu/~hougen/classes/Fall-2018/DataStructures/
This page will contain links to the directory of class materials and announcements and other important information.
Email:
Students should use the email addresses listed above. Note that we get a lot of email. Do not expect a reply in minutes; one or two days is more likely in most cases. If you have not heard back within five days, please resend your message, if it is still relevant.

Expectations and Goals:

The prerequisites for this course are CS 2334 (Programming Structures and Abstractions) and MATH 1823 (Calculus & Analytical Geometry I) or 1914 (Differential & Integral Calculus I); and CS 2813 (Discrete Structures) or MATH 2513 (Discrete Mathematical Structures), or concurrent enrollment in CS 2813 or MATH 2513. (If you have not taken these courses, you will need instructor permission to take 2413.) You are expected to have a solid working knowledge of a high-level object-oriented language such as Java, including a familiarity with its basic data types and control structures, an understanding of program abstraction and organization, and a capacity to create medium-scale programs using object-orientation. This course will introduce students to the representation, analysis and implementation of widely used data structures and associated algorithms and will include discussion of algorithms employing data structures with analysis. Written communications will be required. This course will also include discussion of ethical issues including computer crime, abuse, and hacker ethics. Tools and techniques used in writing secure applications will also be discussed.

For topics covered, see the schedule.

Specific Outcomes of Instruction:

By the end of the semester, the students will increase their:

  1. Ability to apply knowledge of computing and mathematics appropriate to the discipline.
  2. Ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.
  3. Ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.
  4. Understanding of ethical issues and responsibilities.
  5. Recognition of the need for and an ability to engage in continuing professional development.
  6. Ability to use current techniques, skills, and tools necessary for computing practice.
  7. Ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.
  8. Ability to apply design and development principles in the construction of software systems of varying complexity.

Requirements:

The graded assignments and their contribution to a student's grade are given in the table below. (Subject to change.)

Item
Topic
Percent
Lab 1
Lab 2
Lab 3
Lab 4
Project 1
Project 2
Project 3
Project 4
In Class Exercise
Exam 1
Exam 2
Final Exam
zyBook Exercises
Introduction to C++
Arrays, Pointers, and Functions in C++
Classes in C++
Object Oriented Programming in C++
Searching and Sorting
Linked Lists
Hash Tables
AVL Trees
Ethics
First 1/3
Second 1/3
Last 1/3 (Includes Ethics Question)
All (except optional)
2%
2%
2%
2%
10%
10%
10%
10%
2%
15%
15%
15%
5%

All assignments in this course are to be done ALONE; the work submitted by a student MUST be the student's own.

You are responsible for the material covered during the lectures sessions, whether or not it is also found in your textbooks or other assigned reading materials. Similarly, you are responsible for the material found in your textbooks and other assigned reading materials, whether or not it is also covered during the lectures sessions. In other words, you are responsible for the UNION of these sources of knowledge, as depicted by the entire shaded region of the Venn diagram below, not merely their intersection.

UNION of lectures and readings

All work in projects must properly cite sources. For example, if you include code in your project that you did not write from scratch, you must clearly indicate the source of that code.

Programming projects and labs will be due at 11:59 pm on the due date. Late assignments will be penalized 20% per day late. (All parts of days will be rounded up.) After five days, you will not be able to turn in that assignment for credit. If you are worried about turning in the assignment late and loosing points, turn in the assignment ahead of time. You will be turning in electronic copies of all assignments through both Canvas and zyLabs.

All exams will be open book/open notes. You must bring your own printed copy of any and all materials you wish to reference during the exam. Your exams will be given on-line, using your personal laptops, which you must which you must bring to each exam. NO OTHER electronic devices will be permitted in the testing area.

Copying another's work, or possession of extraneous electronic computing or communication devices in the testing area, is cheating and grounds for penalties in accordance with school policies.

Accommodations:
Any student in this course who has a disability that may prevent the full demonstration of his or her abilities should contact me personally as soon as possible so we can discuss accommodations necessary to ensure full participation and facilitate your educational opportunities.

Adjustments for Pregnancy/Childbirth Related Issues:
Should you need modifications or adjustments to your course requirements because of documented pregnancy-related or childbirth-related issues, please contact me as soon as possible to discuss. Generally, modifications will be made where medically necessary and similar in scope to accommodations based on temporary disability. Please see http://www.ou.edu/eoo/faqs/pregnancy-faqs.html for commonly asked questions.

Title IX Resources
For any concerns regarding gender-based discrimination, sexual harassment, sexual misconduct, stalking, or intimate partner violence, the University offers a variety of resources, including advocates on-call 24.7, counseling services, mutual no contact orders, scheduling adjustments and disciplinary sanctions against the perpetrator. Please contact the Sexual Misconduct Office 405-325-2215 (8-5, M-F) or the OU Advocates 405- 615-0013 (24.7) to learn more or to report an incident.

Drop Policy:
Students who do not attend the first week of class may be dropped from the course to make room for additional students to enroll.

Holidays:
It is the policy of the University to excuse the absences of students that result from religious observances and to provide without penalty for the rescheduling of examinations and additional required class work that may fall on religious holidays.

Student Evaluations:
"The College of Engineering utilizes student ratings as one of the bases for evaluating the teaching effectiveness of each of its faculty members. The results of these forms are important data used in the process of awarding tenure, making promotions, and giving salary increases. In addition, the faculty uses these forms to improve their own teaching effectiveness. The original request for the use of these forms came from students, and it is students who eventually benefit most from their use. Please take this task seriously and respond as honestly and precisely as possible, both to the machine-scored items and to the open-ended questions."

Related Documents:
Students should also read the related documents on Replacement Assignments or Extensions and Discussions of Scores and Grades.