Course Syllabus

IMPORTANT NOTE:  Information in this CS 2420 syllabus and Canvas course are subject to change. Students will be informed immediately of any changes.

CS2420 - Intro. to algorithms and data structures

Top Information -

Instructor: Eric Heisler, eric.heisler@utah.edu (Use Piazza for course communication)

See the Getting Help section below for instructor and TA office hours.

Lectures:

Tuesdays and Thursdays 9:10-10:30am in WEB L104, led by Prof. Heisler

Lab sessions:

Every Friday at various times depending on your section, led by Teaching Assistants (TAs)

Note: You must attend the lab session for the section you are enrolled in.

Attendance in lectures and labs is expected.

Important dates:

  • Midterm 1 is Thursday, February 15, during the regular class time.
  • Midterm 2 is Thursday, March 28, during the regular class time.
  • Final Exam is Monday, April 29, 8:00 - 10:00am.

All exams are paper-based, administered in person, and cannot be taken remotely.

More important dates: University academic calendar, PCE semester guidelines

Textbook:

There is no textbook, but reading from online resources will be assigned and linked in the weekly to-do lists.

Course Information

CS 2420 provides an introduction to the basic algorithms and data structures that form a foundation for computer programming. It gives practical experience in engineering and analyzing the computational efficiency of programs. Students learn about classical algorithms (including sorting, searching, and graph traversal), data structures (including stacks, queues, linked lists, trees, hash tables, and graphs), and program space and time requirements analysis. Students will complete extensive programming exercises that require the implementation, testing, and analysis of these concepts. Students will also gain experience in team programming and software engineering.

Prerequisites

The prerequisite is a grade of C- or better in CS 1410 or CS 1420. Students who do not meet this prerequisite will be removed from CS 2420 in the first week of class.

Learning objectives 

Upon completion of CS 2420, students are able to:

  1. implement, and analyze for efficiency, fundamental data structures (including lists, graphs, and trees) and algorithms (including searching, sorting, and hashing)
  2. 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;
  3. recognize and describe common applications of abstract data types (including stacks, queues, priority queues, sets, and maps)
  4. apply algorithmic solutions to real-world data
  5. use generics to abstract over functions that differ only in their types
  6. appreciate the collaborative nature of computer science by discussing the benefits of pair programming

Students can expect to achieve these outcomes only if they attend lectures and lab sessions and complete Canvas quizzes, assignments, and exams in good faith and on time.

Pace Warning

The pacing of the summer version of this course is fast. We will cover the same material as a fall/spring semester in 12 weeks instead of 16 weeks. Students should be aware that not all of the information they need to know will be covered during lectures. Students should spend considerable time studying and practicing course concepts outside of class.

Attendance and recordings

The lectures and labs are designed as interactive experiences, so attendance is not optional. Participation will have a significant impact on your performance in the course. Lectures on Tuesdays and Thursdays will typically, but not always, be recorded. These recordings are not an alternative to attending class and may not be available for every lecture. Recordings will include the instructor's screen and classroom audio. Student voices may be present in the recording. Recordings are only accessible to people associated with the course. Lab sessions on Fridays are not recorded, and attendance is expected.

Communication

All class announcements and student questions (public or private) take place on Piazza — sign up right away and set notifications appropriately. Do not use Canvas inbox. Email is acceptable, but Piazza is preferred.

Course Materials

This CS 2420 Canvas course will be updated continually throughout the semester. There will be frequent changes and additions to the weekly modules, including course notes, slides, provided code samples, assignments, quizzes, and more. Students must become familiar with the layout of the Canvas course right away and plan to visit it several times a week. None of the materials created by the instructor can be shared with anyone outside of this class, in particular they must not be uploaded to an external website.

Textbook

Regular reading is assigned from online notes, books, and articles that will be linked in the weekly to-do lists.

Course notes

The instructor uses slides, sample code, and other materials during class. These items are typically posted to Canvas following the lecture.

Laboratory practice

Lab sessions meet on Fridays to give students guided practice applying the concepts of CS 2420. Attendance and completion of lab activities makes up a portion of your grade. The one lowest lab score will be dropped.

Students selected a lab section with a particular schedule when registering for the course. To keep lab groups to a manageable size, students must attend the lab section they are enrolled in. On rare occasions when it is necessary, attending a different lab section is allowed without prior approval. Students should bring their own laptops or make arrangements to use a "loaner" laptop in each lab session.

Personal computers

Students may use their own computers for completing assignments and taking Canvas quizzes; however, broken tools or computers, or network connectivity issues are not sufficient basis for a deadline extension. Plan ahead and use a campus lab computer if your own is not working.

Coursework and Evaluation

Programming assignments and analysis documents

The instructions for each assignment and its due date are posted on Canvas about 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.

Assignment Late Policy: Each assignment's deadline is followed by a three-day late period. Late submissions are penalized 10 percent of the maximum score for each day beyond the deadline. Programming and analysis portions are considered separately based on their respective maximums and submission dates. Note that midnight marks the start of a new day. After three late days a submission will not receive credit. Time of submission is recorded by the submission system. Don't wait until the last minute to submit as you may experience unexpected delays in the system.

Pair Programming

See the Guidelines for pair programming.

Except for Assignment 1, all assignments are to be completed using pair programming. 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 for full credit. 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. Additional assignments without a partner will receive a point deduction of 50% of the maximum score.

If you would like help with finding a partner, there will be a space on Piazza where you can post your availability as a partner and find someone to work with. If that does not work, please talk with the instructor.

Analysis Documents

Most assignments will also include an individually written (not with your pair programming partner) analysis document. This will include, for example, reflection on your pair programming experience, discussion on the topic of the assignment, and measurements and analysis of your code's performance. Each assignment will include detailed instructions for this.

Exams

Midterm exams will be given during class meetings on February 15 and March 28. The final exam is cumulative and will be given on Monday, April 29, 8:00 - 10:00am. 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.

Each student must bring their UCard to every exam, and they may be asked to show their UCard when turning in the exam. No other type of identification may be used for this purpose.

Lab sessions

Each lab is composed of a TA-led activity and a Canvas quiz to be completed by students each Friday. The quiz must be completed that day. It cannot be submitted late. Your lowest lab score will be dropped.

Canvas quizzes

Students take Canvas quizzes regularly, reviewing the material covered recently in class meetings 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 final. Solutions are made visible after the deadline, so no late submission is possible. Your lowest quiz score will be dropped.

Grades

The final CS 2420 grade is composed of:

  • assignments 35%
  • exams 45% (midterms 75 points each, final 100 points)
  • labs 10%
  • Canvas quizzes 10%

The following table is used to associate numerical scores with the corresponding letter grade. Note the lack of rounding.

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

Regrades

Students desiring to appeal a score on an assignment or exam must do so via Gradescope. For any Canvas quiz, the appeal must be made via a private post to Instructors in Piazza. All such appeals are due no later than one week after the score is published.

Getting Help

To get help understanding course material, students may see the Teaching Assistant(s) during TA Help Hours, see the instructor during Office Hours, or post a question to Piazza. To contact the course staff directly, use Piazza. Do not use Canvas inbox. See the Instructions on how to get help page for details.

Policies and Resources

Laptop and mobile device policy

Students are expected to engage with the instructor and classmates during class meetings. A laptop or mobile device will be required to participate in the polling questions. Devices are permitted for note-taking, but this is discouraged. Research has shown that handwritten note-taking is more beneficial to students than typed note-taking1. All CS 2420 exams require students to handwrite solutions on paper, making handwritten note-taking good practice. Furthermore, laptops and mobile devices tempt students to multitask during class meetings rather than focusing on the topic.

ADA statement

The University of Utah seeks to provide equal access to its programs, services and activities for people with disabilities. If you need accommodations in the class, reasonable prior notice needs to be given to the Center for Disability & Access, 162 Olpin Union Building, 801-581-5020. CDA will work with you and the instructor to make arrangements for accommodations. 

All written information in this course can be made available in alternative format with prior notification to the Center for Disability & Access.

Student mental health resources

If you would like help with any negative feelings, such as burnout, anxiety, depression, isolation, or loneliness, reach out for campus mental health resources, including counseling, trainings and other support.

Consider participating in a Mental Health First Aid or other wellness-themed training provided by our Center for Student Wellness and sharing these opportunities with your peers.

Student Names & Personal Pronouns 

Class rosters are provided to the instructor with the students legal name as well as Preferred first name(if previously entered by you in the Student Profile section of your CIS account). Please advise me of any name or pronoun changes (and update CIS) so I can help create a learning environment in which you, your name, and your pronoun will be respected. If you need assistance getting your preferred name on your UIDcard, please visit the LGBT Resource Center Room 409 in the Olpin Union Building, or email bpeacock@sa.utah.edu to schedule a time to drop by. The LGBT Resource Center hours are M-F 8am-5pm, and 8am-6pm on Tuesdays.

Learners of English as an Additional Language 

If you are an English language learner, please be aware of several resources on campus that will support you with your language and writing development. These resources include: the Writing Center (http://writingcenter.utah.edu/); the Writing Program (http://writing-program.utah.edu/); the English Language Institute (http://continue.utah.edu/eli/). Please let me know if there is any additional support you would like to discuss for this class.

Other polices and guidelines 

Students are bound by the following policies and guidelines:

Students should read and understand each of these documents, asking questions as needed.

1Mueller, P. A. & Oppenheimer, D. M. (2014). The pen is mightier than the keyboard: Advantages of longhand over laptop note taking.  Psychological Science, 25(6), 1159-1168. doi:10.1177/0956797614524581.