Course Syllabus
Course Information
|
Instructor |
Habtamu Minassie Aycheh, PhD Department of Electrical and Computer Engineering Email: habtamu.aycheh@utah.edu Office: U759 |
|
Class meetings |
Monday and Wednesday 9:00am - 10:20am in room U303 |
|
LAB Session |
Thursday 3:30pm - 4:20pm in room U507 |
|
Office hours |
Thursday : 4:30pm ~ 5:30pm or by Appointment |
|
Important Dates |
Midterm is Wednesday October 15,2025 during the class meeting. Final Exam is Tuesday December 9, 2025 8:00am – 10:00 am, Room U303 |
Course Description
CS2420 provides an introduction to tools found throughout computer science - basic algorithms and data structures that lend themselves naturally to computational problem solving, as well as the problem of engineering computational efficiency into programs. Students will gain an understanding of classical algorithms (including sorting, searching, tree and graph traversal), and data structures (including linked-lists, trees, graphs, hash tables, and heaps). Students will complete extensive programming assignments that require the implementation, testing, and analysis of these concepts. Students will also gain experience in team programming and software engineering. Students are expected to be familiar with the C++ programming language.
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
Course 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)
- Use the C++ Standard Template Library (STL) to properly code data structures, including stacks, queues, linked lists, hash tables, trees, and graphs.
- Develop programming skills to solve computatonal problems by applying important algorithmic design paradigms and data structures.
- Apply algorithmic solutions to real-world data.
- appreciate the collaborative nature of computer science by discussing the benefits of pair programming.
Course website
The class website is the Canvas course available through CIS. It will be updated throughout the semester with the class schedule, lecture notes, laboratory exercises, assignment specifications, and much more. Students are required to check their email and Canvas regularly until final grades are posted. It is critical that students become familiar with the Canvas.
Student Evaluation
Assignments
Assignments consist of weekly programming assignments in C++. Some of them will be done in pairs of two using pair programming, and some will be done individually. The instructions for each assignment and its due date will be posted on the class website roughly one week before it must be submitted. Assignments are submitted online via the Gradescope. 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 will not be grounds for extensions. Double-check your submissions, and save a digital copy of all of your work.
Partial credit may be given for incorrect programs, but it must be clear that a strong attempt was made. If your program does not compile or run, no credit will be given. Programs will be graded on readability, documentation, and design of the code, as well as correctness in execution. Assignments will also consist of a written portion describing the design of the program, and analyzing the computational performance of your solution.
Labs
Each lab is comprised of a TA-led activity and a Canvas quiz, to be completed by students each Thursday. You need to submit lab progress reports for esch lab sessions . Labs will focus on additional material that is helpful for completing assignments. Additionally, labs are very beneficial for reviewing material covered in class . Attendance is expected.
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%
Exams
Tests will consist of midterm and a final exam all given in-person in the lecture hall. No test may be taken at a different time for any reason other than a documented medical emergency or official University of Utah excused activities.
Final Course Grade
The final course grade is based on:
- Class and Lab Activity 10%
- Quizzes 10%
- Programming Assignments 25%
- Mid Test 25%
- Final Exam 30%
Letter Grades
Your weighted, cumulative course percentage score is turned into letter grades using the following scheme:
|
|
|
|
|
where, X represents Cumulative Score
Course Guidelines
Late Assignments
Each assignment's deadline is followed by a two-day late period. There is a one-day grace period for late assignments. The the second day Late submissions are penalized 10 points. No assignments will be accepted more than 2 days (48 hours) late, at which point a 0% will be assigned. Longer term issues should be discussed with the instructor.
Regrades
Students desiring to appeal a score on an assignment, lab exercise, quiz, test, or final exam must request no later than one week after the score is published. We reserve the right to regrade the entire assignment when a regrade request is made.
Dropped Scores
Students may end up missing a deadline or a lab session for a reason that is not granted an exception (generally, documented medical reasons or official University activities). Therefore, to allow for such an occurrence, the lowest score earned on assignments will be dropped from the record of each student at the end of the semester. These dropped score is automatically applied. No mid or final exam scores are dropped.
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.
Working Together
Some of the work in this class will be completed in pairs with another student. Students must adhere to the techniques of pair programming and partners are required to contribute equally to the work. Both students are equally responsible for what is submitted, including the responsibility to adhere to the academic misconduct policy posted on Canvas. If one student in a pair cheats, both students are responsible. Do not let your partner submit code that you didn’t both write together.
See Canvas for the academic misconduct policy for this course. Specifically, the use of AI is
not permitted on coursework in this class
University Policies
- The Americans with Disabilities Act. The University of Utah seeks to provide equal access to its programs, services, and activities for people with disabilities. If you will need accommodations in this class, reasonable prior notice needs to be given to the Center for Disability & Access, https://disability.utah.edu/, +1 -801-581-5020. CDS will work with you and the instructor to make arrangements for accommodations. All written information in this course can be made available in an alternative format with prior notification to the Center for Disability & Access.
Given the nature of this course, attendance is required and adjustments will only be permitted as required by Policy 6-100(III)(O). If you need to seek an ADA accommodation to request an exception to this attendance policy due to a disability, please contact the Center for Disability and Access (CDA). CDA will work with us to determine what, if any, ADA accommodations are reasonable and appropriate.
In compliance with ADA requirements, some students may need to record course content. Any recordings of course content are for personal use only, should not be shared, and should not be made publicly available. In addition, recordings should be destroyed at the conclusion of the course.
- University Safety Statement. The University of Utah values the safety of all campus community members. To report suspicious activity, call the Asia Campus Dean of Students Office at 032-626-6014 or the Asia Campus Emergency Contact at 010-8519-6008. You will receive important emergency alerts and safety messages regarding campus safety via text message. For more information regarding safety and to view available training resources, including helpful videos, visit https://safeu.utah.edu
- Addressing Sexual Misconduct. Title IX makes it clear that violence and harassment based on sex and gender (which Includes sexual orientation and gender identity/expression) is a civil rights offense subject to the same kinds of accountability and the same kinds of support applied to offenses against other protected categories such as race, national origin, color, religion, age, status as a person with a disability, veteran’s status or genetic information. If you or someone you know has been harassed or assaulted, you are encouraged to report it to the Title IX Coordinator in the Office of Equal Opportunity and Affirmative Action, 383 South University Street, +1-801-581-8365, or the Asia Campus Office of the Dean of Students, 611 Utah Building, 032-626-6014 or the Asia Campus Emergency Contact at 010-8519-6008. For support and confidential consultation, contact the Mental Health Counseling Center, 3051-3052 MCB, 032-626-5142 or 032-626-5142.
- Academic Misconduct Statement. It is expected that students adhere to University of Utah policies regarding academic honesty, including but not limited to refraining from cheating, plagiarizing, misrepresenting one's work, and/or inappropriately collaborating. This includes the use of generative artificial intelligence (AI) tools without citation, documentation, or authorization. Students are expected to adhere to the prescribed professional and ethical standards of the profession/discipline for which they are preparing. Any student who engages in academic dishonesty or who violates the professional and ethical standards for their profession/discipline may be subject to academic sanctions as per the University of Utah’s Student Code: https://regulations.utah.edu/academics/6-410.php
- Language Policy. The University of Utah Asia campus is committed to providing and fostering an environment that is safe and free from prohibited discrimination. The following language policy applies to all academic and administrative units of the University and all members of the University community, including faculty, staff, and students. English is recognized as the official language of instruction, assessment, and curriculum. Except for language classes, where the target language will dominate, per best practices of language pedagogy. In addition, English is the official language for all university administrative and business-related matters.