Course Syllabus
IMPORTANT NOTE: All dates and policies contained in the CS 2420 syllabus and Canvas course are subject to change. Students can expect to be informed immediately and clearly of any changes.
Critical Information
Instructor
Prof. Parker, 3144 MEB, erin.parker@utah.edu
Class meetings
Tuesdays and Thursdays 10:45-12:05p in L104 WEB, led by Prof. Parker
Lab sessions
Fridays at various times (see your class schedule) in MEB 3225, led by Teaching Assistants (TAs)
Attendance
Attendance is expected at class meetings (Tuesdays and Thursdays) and lab sessions (Fridays). Neither class meetings nor lab sessions are recorded. Students who must miss due to illness or emergency should catch up by visiting TA help hours or instructor office hours (more information below).
Textbook
None (reading assigned from free, online sources)
Important dates
All exams are paper-based, administered in person, and may not be missed.
- Midterm 1 is Thursday, September 26 during the class meeting.
- Midterm 2 is Thursday, November 7 during the class meeting.
- Final Exam (cumulative) is Wednesday, December 11 10:30a-12:30p.
Final course grade
The final CS 2420 grade is comprised of exams 50%, assignments (programming and analysis) 35%, labs 7.5%, Canvas quizzes 7.5%.
Communication
All class announcements and student questions (public or private) take place on PiazzaLinks to an external site. — sign up right away and set notifications appropriately.
Course Information
CS 2420 provides an introduction to the problem of engineering computational efficiency into 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 analysis of program space and time requirements. Students complete extensive programming exercises that require the application of elementary techniques from software engineering.
Fair warning
The pacing in this class is brisk. Students should be aware that not all of the topics they need to know are covered during class meetings and lab sessions. Students should spend a considerable amount of time studying and practicing course concepts outside of class.
Prerequisites
The prerequisite is a grade of C- or better in CS 1410 or CS 1420. Students who do not meet this prerequisite are to be removed from CS 2420 in the first week of class.
Learning objectives
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
- 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 class meetings and lab sessions, as well as complete Canvas quizzes, assignments, and exams in good faith and on time. Furthermore, students may vary in their competency level on these outcomes.
Course Materials
Website
The CS 2420 Canvas course is always under development, with updates to the class schedule, course notes, provided code samples, assignment specifications, and more, occurring regularly. It is critical that students become familiar with the Canvas course right away and plan to visit it three times a week, at a minimum.
Textbook
Regular reading is assigned from online notes, books, and articles linked from Canvas.
Course notes
The instructor often makes use of typed notes, sample source code, and other materials during class. These items are posted to Canvas following the class meeting.
Laboratory practice
Lab sessions meet on Fridays to give students guided practice applying the concepts of CS 2420. To avoid more participants than can be managed by the TA(s), students should regularly attend the lab section for which they are registered. Infrequently attending a different lab section is allowed and need not be approved by the instructor. Students should bring their own laptops or plan to borrow a laptop from the Marriott Library for the semesterLinks to an external site..
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.
Student Evaluation
Programming assignments and analysis documents
The instructions for each assignment 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 two-day late period. Late submissions are penalized 10% for each day beyond the deadline. Note that 12a marks the start of a new day and 10% reduction.
Unless otherwise noted, 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. 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.
Exams
Midterm exams are to be given during class meetings on September 26 and November 7. The final exam is cumulative and is to be given 10:30a-12:30p December 11. 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.
Labs sessions
Each lab is comprised of a TA-led activity and a Canvas quiz, to be completed by students each Friday.
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 followed by a one-day late period. A late submission is penalized 10%.
Final course grade
The final CS 2420 grade is comprised of exams 50%, assignments (programming and analysis) 35%, labs 7.5%, Canvas quizzes 7.5%.
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.
Letter grades
The following table is used to associate numerical scores with the corresponding letter grade. Note the lack of rounding.
|
|
|
|
|
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 PiazzaLinks to an external site.. To contact the course staff directly, use Piazza — use of the Canvas Inbox or email is discouraged for CS 2420 communications. See the Instructions on how to get help page for details.
Policies and Guidelines
Laptop and mobile device policy
Students are expected to engage with the instructor and classmates during class meetings. Laptops and mobile devices are permitted for note taking; however, 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, the success of which is wishful thinking for students who must focus in order to learn new and complex material. For these reasons, students are discouraged from using laptops and mobile devices during class except when contributing to polling questions.
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 (https://disability.utah.eduLinks to an external site., 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.
Other polices and guidelines
Students are bound by the following policies and guidelines:
- CS 2420 academic misconduct policy
- Kahlert School of Computing academic misconduct policyLinks to an external site.
- Kahlert School of Computing policies and guidelinesLinks to an external site.
- Price College of Engineering guidelinesLinks to an external site.
- University of Utah Student CodeLinks to an external site.
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.