CSCE A311: Data Structures and Algorithms

Course Syllabus, Spring 2021
• Instructor: Dr. Kenrick Mock.
• Office Hours: M: 1030-1130, R: 1100-1200 or by appointment (Discord)
• Prereq: CSCE A211.  You will be given assignments in both C++ and Python
Textbook
• We are mostly going off the notes on the calendar page, but below are additional free resources. Use the notes for the main reference, and then look up a topic from the online textbooks below for supplemental or additional reading on the topic.
• I am putting my notes/videos up in Google Colaboratory notebooks, which is like a website with live code and popular with data science and machine learning research. You can create your own notebooks on https://colab.research.google.com.
• Data Structures & Algorithm Analysis. The C++ edition will more closely match the beginning of the class. There are also many interactive examples from this text on OpenDSA.
• Problem Solving with Algorithms and Data Structures using Python.
• Introduction to Algorithms. This is not free, but is a great resource used in many universities and is currently the required textbook for CSCE A351.

Course Description: Representation and organization of digital information in the form of effective and efficient data structures, manipulation of data structures in a procedural fashion, and the analysis and evaluation of various algorithms. The following topics will be covered: ADT, arrays, tables, linked lists, stacks, queues, trees, sorting, searching, graphs, hashing, spanning trees, disjoint sets, and heaps.

Outcomes:

The instructor will:

1. Aid students to achieve an expert knowledge of how to represent and organize digital information by variety of data-structures applicable in most object-oriented languages.
2. Introduce students to the techniques of manipulating these structures by algorithms to perform common actions on the data structures such as finding, retrieving, adding, and deleting information.
3. Illustrate benefits and drawbacks of different algorithms by analytically and experimentally evaluating algorithmic efficiency.
4. Provide students with the background knowledge and skills needed to successfully design, implement, modify and evaluate digital information in subsequent upper-division computer science courses.

Students will be able to:

1. Design suitable information representations for a variety of problems
2. Describe appropriate algorithms and data structures for a number of well-defined problems
3. Design algorithms to solve given problems using techniques such as divide-and-conquer
4. Implement algorithms and data structures in a computer programming language
5. Analyze the time and space efficiency of an algorithm, use the big-O notation.
6. Measure the time and space requirements of an algorithm.

Homework Assignments:    There will be four to five homework assignments that will consist of both analytical problems and programs to write. Late homework will be penalized by 5% per day late, up to the day that answers are provided. I will typically post answers the next week (but not always). Unless otherwise indicated, programming assignments and written assignments must represent your own work. It is permissible to discuss the assignments with other students, but do not disclose the solution. The tutor schedule will be posted at the College of Engineering Tutoring Center page. You can chat with fellow students in your course on the CS&E Discord server although there is a server set up just for this class (see below).

Small Group Exercises:    Throughout the semester we will have five small group exercises. The groups will be randomly selected and you will be given some problems to work through. The expectation is that group members will work on the problems individually (either all of them or a subset based on however the group wishes to split up work) and then there will be a discussion among all the members to come up with a final set of answers. A discord server has been set up for groups to collaborate: CSCE A311 Discord Server (You can also use the server for general CSCE A311 questions). You must use the discord server for discussion - I will use this to see who is participating. It also allows you to see what other groups are doing, as each group's discussion will be public to the class. The main reason for choosing discord is it allows discussion either offline or in realtime or voice/screensharing if desired. The deliverable is a short video (or videos from each member) posted on your group's channel going over the answers. If the video is over 8MB it will need to be uploaded to youtube or some other video/file sharing service. 70% of each group grade is participation and 30% is correctness.

Labs:Under COVID I am anticipating that most of you will be working on your own computer from home. If you don't have computer access at home, you can work in the EIB labs which are in EIB 202 and 401. Currently, hours are limited to M-F 8 to 5 and distancing/hygiene practices must be adhered to. See the Facilities Website for more information. You can also access a virtual Windows machine via VDI. The machine image includes all the programs you would normally have access to from the campus computer lab. Finally, you can do your work on one of our linux machines via remote access (VPN access required). I can set you up with an account upon request.

Questions:If you have any questions, normally I would invite you to drop by my office. But under COVID, the best way to get a hold of me is through email or to send me a message on the discord server. These mechanisms will reach me more quickly than telephone.

Exams: There are two exams and a final. Each test will cover the material since the last exam while the final exam may include any material that was covered in the course, but will emphasize the new material. Unless prior arrangements are made no make-up exams will be given. At this point I am planning to give you exams accessible through Blackboard that you complete within a specified timeframe.

Homeworks: 35%
Group Exercises: 15%
Exam 1: 15%
Exam 2: 15%
Final: 20%

An incomplete grade will only be given for a valid excuse (e.g. medical, death in the family). An incomplete grade does not let you take the class over again, your final grade will be assigned based on work submitted in class and work that remains to be submitted.

Academic Honesty: Academic integrity is a basic principle that requires students to take credit only for ideas and efforts that are their own. Cheating, plagiarism and other forms of academic dishonesty are defined in the Student Code of Conduct, which can be found in the UAA Student Handbook: https://www.uaa.alaska.edu/students/dean-of-students/student-conduct/code.cshtml

Cheating, plagiarism and other forms of academic dishonesty will first go through the student conduct process and then, if a violation of the Student Code of Conduct is found, academic sanctions may occur in addition to disciplinary sanctions. The Student Conduct Review Procedures are outlined in the UAA Student Handbook.

Student Equity and Compliance:

The Office of Equity and Compliance ensures that UAA adheres to a safe, equitable, and healthy environment.  The office website is https://www.uaa.alaska.edu/about/equity-and-compliance/.  If you qualify for accommodations because of a disability, please contact Disability Support Services in RH 105 (phone 907-786-4530) in atimely manner so that your needs can be addressed. You can make anonymous reports regarding discrimination, sexual assault, sexual harassment, dating and domestic violence, stalking, or retaliation. For emergencies, contact UPD at 8-911 from a campus phone or 911 from a cell phone.

Care Team Support for Students:

If you, or someone you know, needs support, is distressed, or exhibits concerning behavior, help by making a referral to the Care Team. The UAA CareTeam's purpose is to promotea safe and productive learning, living and working environment by addressing the needs of students. As your Faculty, I may contact the Care Team to seeksupport for you.  I encourage you to fill out a referral if you or a classmate may be in need of help.

Contact info for the Care Team: (1) submit a Care Report (referral) online, http://www.uaa.alaska.edu/careteam/submitting-care-report.cfm; (2) E-mail your concern to care@uaa.alaska.edu; or (3) call the Care Team phone number: 786-6065;  if an emergency-- call UPD or 911.

Title IX: Members of UAA and visitors have the right to be free from all forms of gender and sex-based misconduct including sexual violence, sexual harassment, domestic violence, dating violence and stalking. UAA expects all members of the community to conduct themselves in a manner that does not infringe upon the rights of others. Gender-based and sexual misconduct has a negative impact on members of our community. Therefore, UAA has a zero tolerance policy for gender-based and sexual misconduct. If you have experienced gender-based and/or sexual misconduct, the following individuals can assist you in exploring options and support: