Skip to content
This organization was marked as archived by an administrator on Apr 17, 2024. It is no longer maintained.
@CS-2420-nilsstreedain

CS 2420

Introduction to Algorithms and Data Structures

Course Syllabus

Course Description

This course provides an introduction to the problem of engineering computational efficiency into programs. Students learn about classical algorithms (including sorting, searching, and graph traver- sal), data structures (including stacks, queues, linked lists, trees, hash tables, and graphs), and anal- ysis of program space and time requirements. Students complete extensive programming exercises that require the application of elementary techniques from software engineering. The prerequisite for this course is CS 1410: Introduction to Object Oriented Programming.

Course Materials

Website. The class website is a Canvas course available through CIS. It is always under development, with updates to the class schedule, lecture videos, assignment specifications, and more posted regularly. It is critical that students become familiar with the class website right away and plan to visit it three times a week, at a minimum. Textbook. Reading is assigned from online notes and articles linked from Canvas. Lectures. The lecture component is comprised of multiple brief videos posted to Canvas weekly.∆ Any slides, source code, and other materials referenced in videos are also posted. Laboratory practice. Lab sections meet on Fridays to give students guided practice applying the concepts of CS 2420. Attendance is very strongly encouraged.∆ To avoid more participants than can be managed by the TA(s), students should attend the lab section for which they are assigned. Infrequently attending a different lab section is allowed and need not be approved by the instructor. Recitations. ∆ Recitation sections, meeting on Tuesdays, are added for the 2020-21 academic year to provide students with synchronous and face-to-face (for some sections) instruction, while observ- ing restrictions due to the COVID-19 pandemic. Recitations are a critical way of engaging students in CS 2420 continuously throughout the semester; therefore, attendance is very strongly encouraged . Students can expect material not covered by lecture videos or labs to be presented in recitations. Source code and other materials used, in addition to a video recording of the remote section’s Zoom meeting, are posted to Canvas after the last section on Tuesday afternoon. Note that such posted items may not represent completely the concepts covered in recitation and technical problems may prevent a usable recording. Therefore, students who must miss should check with a classmate to ensure they stay informed.

Student Evaluation

Programming assignments and analysis documents. The instructions for each assign- ment and its due date are posted on Canvas at least one week before it must be submitted. It is the student’s responsibility to ensure the successful and timely submission of each programming assignment — start early and follow the instructions carefully. Corrupted or missing files are not grounds for extensions — double-check your submissions and save a digital copy of all of your work in your CADE account. The timestamps of files outside of your CADE account are not trusted. Each assignment’s deadline is followed by a three-day late period. A student may submit within the late period up to three times without incurring a penalty.∆ A fourth and any subsequent late submissions are penalized 10 points for each day beyond the deadline. Note that 12a marks the start of a new day and -10 points. With the exception of Assignment 1, all assignments are to be completed using pair program- ming. Rarely, a student may have an extenuating circumstance that prevents working with a partner. Therefore, a student may complete up to three assignments without a partner.∆

Students should plan to exercise this option only when it is impossible to work with a partner , and most students should not exercise this option at all. No assignment scores are dropped at the end of the semester. Labs. Each lab is comprised of a TA-led activity and a Canvas quiz, to be completed by stu- dents during their designated Friday lab time. Students who cannot attend lab should complete the activity on their own and submit the Canvas quiz before the Friday deadline.∆ The lowest lab score is dropped at the end of the semester for each student. Quizzes. Students take Canvas quizzes regularly, reviewing the material covered recently in lecture, recitation, and lab, as well as preparing for an upcoming assignment. Note that these Canvas quizzes are distinguished from those used in labs. Each quiz’s deadline is followed by a one-day late period.∆ A late submission is penalized 10%. The lowest quiz score is dropped at the end of the semester for each student. Exams. Midterm exams are to be given during lab meetings on February 26 and April 2. The final exam is cumulative and to be given 3:30-5:30p May 4. (Note that this is scheduled as a departmental exam and does not follow the University’s “Day Class Exams” schedule.) No exam may be taken at a different time for any reason other than a medical emergency or conflict with another exam, and documentation may be required. All exams are remote (i.e., not in person)∆ with details to be given at least one week before the exam date. Regrades. Students who wish to appeal a score on an assignment, a lab, a quiz, or an exam must do so within one week of receiving the score. For an assignment or exam, use the Regrade Request system in Gradescope. For a Canvas quiz or lab, post a private message to Piazza in the “quiz-regrade” or “lab-regrade” folder. Letter grades. The following table is used to associate numerical scores with the corresponding letter grade, notice that scores are not rounded.

ABC %
A 93≤X≤100
A- 90 ≤ X < 93
B+ 87≤X<90
B 83 ≤ X < 87
B- 80≤X<83
C+ 77≤X<80
C 73 ≤ X < 77
C- 70≤X<73
D+ 67≤X<70
D 63 ≤ X < 67
D- 60≤X<63
E X < 60

Getting Help

To get help understanding course material, students may see the Teaching Assistants during TA Help Hours, see the instructor during Office Hours, post a question to the Q&A forums on Piazza, or contact the course staff directly (also via Piazza). See the How to get help in CS 2420 module on Canvas for instructions and advice.

Student Behavior

Student code. All students are expected to maintain professional behavior, according to the University of Utah Student Code. Students should read the Code carefully and know that they are responsible for the content. According to Faculty Rules and Regulations, it is the faculty responsi- bility to enforce responsible classroom behaviors, beginning with verbal warnings and progressing to dismissal from class and a failing grade. Students have the right to appeal such action to the Student Behavior Committee. Piazza discussion forum. Piazza is used for all announcements, questions, and discussion related to CS 2420. A student must use their first and last names (as they appear in Canvas) in their Piazza profile, such that the correct name is visible to the instructor and TAs on posts. Note that students may select to post anonymously, such that their name is not visible to classmates. Other guidelines. Students are also responsible for the content of these documents: School of Computing Policies and Guidelines, College of Engineering Guidelines, and CS 2420 Academic Misconduct Policy.

COVID-19 Policies and Accommodations

Face coverings. Based on CDC guidelines, the University requires everyone to wear face coverings in shared public spaces on campus, including our classroom. As a reminder, when the instructor wears a face covering, she is protecting students. When a student wears a face covering, they are protecting the instructor and all of their classmates. If a student forgets to wear a face covering in class, the instructor asks them to leave class to retrieve it. If a student repeatedly fails to wear a face covering in class, they are referred to the Dean of Students for a possible violation of the Student Code. Note that some students may qualify for accommodations through the Americans with Disabilities Act (ADA). Any student who thinks they meet these criteria and desires an exception to the face covering policy, should contact the Center for Disability and Access (CDA). Accommodations should be obtained prior to the first day of class so that the instructor is notified by CDA of any students who are not required to wear a face covering. Zoom meetings. Zoom is used for all labs, TA help hours, instructor office hours, and the remote recitation section. A student must use their first and last names (as they appear in Canvas) in their Zoom profile, such that the correct name appears during meetings. Students are very strongly encouraged, but not required to leave cameras on during Zoom meetings. Students can expect the instructor and TAs to leave their cameras on, and instruction is improved when the instructor / TA can observe student faces to gauge comprehension and engagement. Fur- thermore, the experience of other students and the sense of classroom community is enhanced when students leave their cameras on. Students who need a Zoom Pro License may activate their account at Teaching and Learning Technologies. Recordings. The only class meeting recorded is the remote recitation section’s weekly Zoom meeting. Students enrolled in this section who prefer that their real name not appear in the recording may contact the instructor to establish an alias. This is the only exception to the policy above regarding Zoom meetings. Deadline extensions. Throughout this semester, some students may become ill, need to care for someone who is sick, and/or require a break in observance of their mental health and wellbeing. The following class policies are designed as accommodations:

• All programming assignments and analysis documents are accepted late (up to three days). Each student may submit up to three (of eleven) assignments late with no penalty. For subsequent late submissions, 10 points are deducted for each day past the deadline. • To ensure they learn the material presented in Friday lab sessions and submit correct lab work, students are very strongly encouraged to attend. However, lab work may be submitted without attending. No work is accepted after 11:59p on the Friday the lab occurs. The lowest lab score is dropped for each student. • All Canvas quizzes are accepted late, up to one day with a 10% deduction. The lowest quiz score is dropped for each student. • To ensure they learn the material presented in Tuesday recitation sessions, students are very strongly encouraged to attend. However, attendance is not required. When technical difficulties do not prevent it, a recording of the remote recitation section’s Zoom meeting is posted.

Students need not ask to apply nor give an excuse for using these accommodations, as they are built into this semester of CS 2420. Students are cautioned against using these accommodations early in the semester, if it can be avoided – especially the assignment late penalty exceptions and lab / quiz drop scores. This semester is likely to be long and difficult for some students, and they will benefit from having accommodations to use late in the semester. Positive COVID-19 tests. Any student who tests positive for COVID-19 must self-report via coronavirus.utah.edu. Weeks of all-remote instruction. The University has determined that no in-person instruction is to occur for the weeks of March 1 and March 8. During those weeks, all in-person recitation sections are to occur as Zoom meetings.

Learning Outcomes

Upon completion of CS 2420, students are able to: • implement, and analyze for efficiency, fundamental data structures (including lists, graphs, and trees) and algorithms (including searching, sorting, and hashing); • employ Big-O notation to describe and compare the asymptotic complexity of algorithms, as well as perform empirical studies to validate hypotheses about running time; • recognize and describe common applications of abstract data types (including stacks, queues, priority queues, sets, and maps); • apply algorithmic solutions to real-world data; • use generics to abstract over functions that differ only in their types; and • appreciate the collaborative nature of computer science by discussing the benefits of pair programming.

Pinned Loading

  1. assign11 assign11 Public archive

    CS 2420 Assignment 11 - Comprehensive Project

    Java 1

Repositories

Showing 10 of 12 repositories
  • .github Public archive
    CS-2420-nilsstreedain/.github’s past year of commit activity
    0 0 0 0 Updated Mar 13, 2022
  • assign11 Public archive

    CS 2420 Assignment 11 - Comprehensive Project

    CS-2420-nilsstreedain/assign11’s past year of commit activity
    Java 1 0 0 0 Updated Apr 28, 2021
  • assign10 Public archive

    CS 2420 Assignment 10 - BinaryMaxHeap

    CS-2420-nilsstreedain/assign10’s past year of commit activity
    Java 0 0 0 0 Updated Apr 15, 2021
  • assign09 Public archive

    CS 2420 Assignment 9 - HashTable

    CS-2420-nilsstreedain/assign09’s past year of commit activity
    Java 0 0 0 0 Updated Apr 8, 2021
  • assign08 Public archive

    CS 2420 Assignment 8 - BinarySearchTree

    CS-2420-nilsstreedain/assign08’s past year of commit activity
    Java 0 0 0 0 Updated Mar 25, 2021
  • assign07 Public archive

    CS 2420 Assignment 7 - GraphUtility

    CS-2420-nilsstreedain/assign07’s past year of commit activity
    Java 0 0 0 0 Updated Mar 18, 2021
  • assign06 Public archive

    CS 2420 Assignment 6 - LinkedListStack

    CS-2420-nilsstreedain/assign06’s past year of commit activity
    Java 0 0 0 0 Updated Mar 12, 2021
  • assign05 Public archive

    CS 2420 Assignment 5 - ArrayListSorter

    CS-2420-nilsstreedain/assign05’s past year of commit activity
    Java 0 0 0 0 Updated Mar 12, 2021
  • assign04 Public archive

    CS 2420 Assignment 4 - LargestNumberSolver

    CS-2420-nilsstreedain/assign04’s past year of commit activity
    Java 0 0 0 0 Updated Mar 12, 2021
  • assign03 Public archive

    CS 2420 Assignment 3 - SimplePriorityQueue

    CS-2420-nilsstreedain/assign03’s past year of commit activity
    Java 0 0 0 0 Updated Mar 12, 2021

Top languages

Loading…

Most used topics

Loading…