dyslexic
edit
qrcode
+=-
NOTE: STILL UNDER CONSTRUCTION (as of 2026.09.17)

COS 265: Data Structures & Algorithms


Fall 2026 Course Syllabus

Course: COS 265 Data Structures and Algorithms
Credits: 4hrs
Term: Fall 2026
Lecture: MWF 8, Nussbaum 101
Labs: Tu 10–12, Euler 103
Tu 12–14, Euler 103
Tu 14–16, Euler 103
Oral Exam: 2026.10.21–2026.10.30, Euler 206
Final Exam: Tue 2026.12.15, 08–10, Nussbaum 101
SP/CC/etc.: none
Prereqs: COS 121
Prepared: 2026.09.17

Instructor


Dr. Jonathan Denning
Associate Professor, Department Chair
Computer Science and Engineering

Office: Euler 206
Email: jon.denning@taylor.edu
Phone: 765-998-4931
Hours: see contact info or schedule appointment

Teaching Assistants  #


The teaching assistants are listed below:

Zane Merrifield

Email: zane_merrifield@taylor.edu
Lab: Tue 10–12 Euler 103
Hours: ... ... ...

Jack Rainey

Email: jack_rainey@taylor.edu
Lab: Tue 12–14 Euler 103
Hours: Tue 19–21 Euler 217

Kaleb Hiehle

Email: kaleb_hiehle@taylor.edu
Lab: Tue 14–16 Euler 103
Hours: Mon 20–22 Euler 217

Kendrick Myers

Email: kendrick_myers@taylor.edu
Lab:
Hours: Wed 20–22 Euler 217

Course Details


The course description in the course catalog:

COS 265 Data Structures and Algorithms, 4 hours
A survey of data structures and algorithms that operate on them, with an emphasis on abstract data types and analysis of computational complexity. Prerequisite: COS 121.

The summary table below shows the topics covered in this course, the book chapter the topic is from, and approximately how long each topic will take. See Tentative Schedule for a more detailed version.

Chp Topic Wks
1. Fundamentals
  • Union-Find
  • Algorithm Analysis
  • Queues and Stacks
~4
2. Sorting
  • Elementary Sorts
  • Merge Sorts
  • Quicksort
  • Priority Queue
~4
3. Searching
  • Symbol Tables
  • Binary Search Trees
  • Balanced Search Trees
~4
4. Graphs
  • Undirected Graphs
  • Directed Graphs
~2
X. Special Topics
  • Geometric Searching
~1

Requirements and Expectations


You will spend a considerable amount of time in this course writing Java programs that implement and employ the data structures and algorithms that you will learn through reading and participation in the classroom. At this point in your career, you will have had at least two previous programming-centered courses, and your work in this course should reflect your experience. In particular, your program submissions should:

Overall Requirements


COS 121 is a prerequisite. According to standard policy, a grade of C- or better must be obtained for this course to meet the major requirement.

Regular checking of the course Brightspace page and your email account (as set in Brightspace) is expected. Updates and information regarding assignments and class activities will be posted on Brightspace and/or distributed through email.

Grade-related requirements are stated in the Performance Assessment section below.

Materials and Resources


There is one required text for the course.

Computer scientists not only know how to program, but also know how to successfully integrate and use a variety of tools to solve technological and computational problems. The list below are tools that we will be using throughout the course.

Outcomes, Objectives, Assessments


The following subsections describe in more detail the outcomes, objectives, and assessments for this course.

Learning Outcomes


Computer Science
This course provides you as a Computer Scientist with a significant understanding of key elements of data structures and algorithms that are ubiquitous in computing. At the completion of the course you will:

Critical Thinking Skills
One of the additional learning outcomes is the learning, developing, and application of critical thinking skills. These skills will not only you in understanding the data structures and algorithms material or other computer science topics more deeply and fully, but they will also be transferable and applicable to life in general. The critical thinking skills we will cover through this course are: asking good questions, developing sub-goals, consulting with an expert, similar problems / fewer variables, and extreme/edge cases.

Coding Review
Following the submission deadline of certain assignments, you will be assigned to download, review, and compare other students' implementations. These exercises offer an opportunity to think critically about another students' code, analyzing it for strengths, weaknesses, and cleverness. Note: all personally identifying information will be removed to maintain anonymity of the original author.

Program-Level Outcomes


This course specifically focuses on the following program-level outcomes. Both of these outcomes were introduced in COS 120 Introduction to Computational Problem Solving and reinforced in COS 121 Foundations of Computer Science. We will continue reinforcing these outcomes through this course, preparing you for mastery in courses such as COS 320 Algorithm Design, COS 382 Language Structures, COS 435 Theory of Computation, SYS 390 Information Systems Analysis, and SYS 394 Information Systems Design.

PLO[0] analyze problems / think critically reinforced
PLO[1] design / implement solutions reinforced

PLO[0]: Analyze Problems / Think Critically
This outcome is to develop the ability to break complex problems into manageable parts, recognize patterns and appropriate computational strategies, and evaluate solutions for correctness and efficiency. You will not simply learn about algorithms, but become a computer scientist who can look at a new problem, determine what matters, and thoughtfully design an effective solution.

PLO[1]: Design / Implement Solutions
The outcome is to apply computational knowledge to design, implement, test, and refine solutions to problems using appropriate data structures and algorithms. You will move beyond understanding how algorithms work to building them yourself. You will learn to translate an idea into working code while making deliberate choices about efficiency, correctness, and the tradeoffs inherent in different solutions.

Performance Assessment  #


The final grade is the weighted average of scores as noted in the following table, but only if every ✓ category has at least a C- (greater than 55.6%). If any of the ✓ categories is below C- (55.6% or below), then the final score for the course will be the lowest category grade.

Assessment Details ≥ C- Weight*
Projects approx 7, related to content 40%
Labs coding review, critical thinking, exercises 25%
Examinations oral and written, lower score dropped 25%
Participation reading, attendance, quizzes, etc. 10%




Final Grade all ✓ categories above must be ≥C- 100%
Extra Credit CodeCon, TU Career Fair, etc. ≤+5%

Important

ALL assessment categories must be at least C- (greater than 55.6%) to earn the weighted grade as final grade for this course. Otherwise, if there is any category with a grade below a C-, the final grade will be the lowest category grade.

Project Assessments
There will be approximately 7 Projects. Generally, each will require implementing an interface to solve a computational problem. Projects involve working with the data structures and algorithms discussed in class. There will be about 2 weeks between release date and due date for each project. Some projects will be released before we have covered all the material, but there will be plenty of time to work on the project before it is due.

Important

In this course, writing code that computes the correct output does not guarantee that you will receive full credit! Some problems require efficient and possibly clever solutions. And some problems require solving edge cases which can be tricky.

Lab Assessments
There will be various lab assignments throughout the semester, including coding reviews, critical thinking assignments, and lab exercises. Each of these are designed to be completed during the lab time, but many will have a later due date.

Examination Assessments
There will be two examinations. Both examinations will be taken in person and no resources will be allowed (books, notes, Internet, etc.). The lowest grade between these exams will be dropped.

The first exam is an Oral Exam taken around the middle of the semester. It is structured to simulate a technical interview. Some of the questions might involve stepping through a snippet of code, explaining how a data structure works, providing details on an algorithm, etc. This exam should take no more than 30 minutes.

The second exam is a Final Exam taken during finals week. It is structured similar to a standardized test like the GRE or ETS. There will be a variety of problem types, such as multiple choice, true or false, and short answer. This exam should take no more than 2 hours.

Participation: Reading, Attendance, Quizzes, etc.
Participation consists of reading the assigned sections, attending class regularly, engaging material to answer quizzes correctly, asking and answering questions, meeting with instructional staff, etc.

Sections of the book will be assigned to supplement the lecture material. Ideally, each student will at least skim the assigned section before lectures, so that the students can engage fully during lectures by asking relevant questions. While scoring of reading assignments is done on the honor system, it will be clear when students fail to prepare for classes through the other participation items.

We will use Plickers in class to manage attendance and administer pop quizzes. You will receive a Plicker card at the beginning of the course that is specific to you and this course. If you lose your card, let me know immediately, and I will reprint your card. You may use the Plickers Mobile Viewer (you will need to know your Plickers number for this course), but phone displays are smaller than Plickers cards, so it will significantly slow down scanning.

Additionally, the instructional staff will keep track of out-of-classroom activity, such as asking questions over Slack, visiting us during office hours, answering questions of student peers, and so on.

Extra Credit
Some assignments and projects will have extra credit opportunities. These extra credit problems will be applied directly to the individual assignment/project grade or category of assignment/project, not the final grade.

You will have several opportunities to receive general extra credit throughout the term that are not tied to an assignment or project.

Taylor hosts a Internship and Career Fair in the Fall, where many companies will come to meet and possibly interview CSE students. Attendance and participation, even as a sophomore, is strongly encouraged, because doing so will kickstart your networking experience, provide you a chance to work on your communication skills, and give you a reason to create/update your résumé.

There are several programming contests this Fall. For example, we typically participate in or host the following programming contests: Taylor CodeCon, CCSC Midwest Conference, and the ACM International Collegiate Contest (usually around the beginning of November).

Note

General Extra Credit (i.e., not extra credit for project) will count only up to 5% of the final grade.

Authorship, AI, and Collaboration Policy  #


In his 1974 Turing Award lecture, Donald Knuth, legendary Stanford Computer Scientist and devout Christian, wrote:

We have seen that computer programming is an art, because it applies accumulated knowledge to the world, because it requires skill and ingenuity, and especially because it produces objects of beauty. A programmer who subconsciously views himself as an artist will enjoy what he does and will do it better.

As befits the work of those made in the image of God himself, consider your programs to be small works of art that demonstrate your skill, ingenuity, and creativity.

Authorship and Mastery  #


It is your responsibility to completely understand and steward anything that you contribute, regardless of who was the original author. In other words, you should be ready to provide a detailed explanation for and to replicate ex sola mente any block or line of code, logical expression, or comment that you submit.

Modern large language models (LLMs) have been training on vast repositories and are highly tuned, which means LLMs are very capable at solving a wide variety of computational problems, especially problems that have been solved over and over again. As this is a lower-level, undergraduate course covering fundamental computer science topics, you will see problems that have been solved many times over. LLMs should have no problem with solving any of the course assignments or projects.

However, my goal is to train you to think critically and systematically about these problems so you can practice developing your own solution(s). You should aim to master these skills on simple problems that have been solved before, so that you can apply those same skills toward solving much harder problems that have never been solved before. LLMs struggle to solve problems that have never been solved before. After graduation, you will typically run into problems that fall into this category.

You will have many opportunities to learn new concepts and then think about and apply these concepts in different contexts. You will be challenged with carefully crafted projects. You will be assessed on your ability to solve the problems, to reflect on your solution, and then to apply learned skills to different but related problems.

Collaboration  #


The Internet has fundamentally changed how we work in many dimensions, two of which are in collaboration and in assistance. Sites like stackoverflow.com allow a way for a programmer to get help with almost any programming-related problem. While collaboration and assistance—whether by peer, community, instructor, or AI—can bring about learning and help with troubleshooting, your task as a university student is to learn how to discover, diagnose, and correct bugs on your own. Each assignment and project will state how much collaboration is allowed for the three possible areas listed below.

  1. understand the problem
  2. develop a solution
  3. implement and debug

For each area of collaboration, we will recognize four different levels of contribution.

Note

If there is any ambiguity in the acceptable level of collaboration, check with the instructor; never assume that collaboration is implicitly allowed. No collaboration of any kind—Internet, peer, book, cheat sheets, etc.—is allowed for quizzes and exams unless explicit approval is given.

Attribution and Disclosure  #


Attributions should always be explicit and clear. Always disclose from where your code and comments came.

I will assume that anything you do not explicitly attribute to another author (whether human or AI) was created by you on your own. You should be prepared to explain and replicate any portion of that contribution at any time. Failure to properly attribute code not written completely by you (ex: code from generative AI, an AI-assistant, an Internet source, TA or peer in the course, past students, etc.) will result in disciplinary action, such as receiving a zero score on the assignment, being written up for academic dishonesty, failing the course, and so on.

Warning

While I do not take the posture of "guilty until proven innocent", I have seen hundreds of student submissions, so I have an expectation of the quality of code submitted. If your code falls outside that expectation, I will start investigating.

See Peer/AI Attribution | Setup Document for more details.

General Course Policies


The following are general policies and details for courses that I instruct. Unless otherwise stated above, these policies apply to this course. Please read them carefully.

Scoring and Grading #


Assignments are broken down into individually graded items. Any item to be graded will be scored on the 3-point scale shown below.

pts grade description
3 A perfect solution, meets every requirement and expectation, clearly demonstrates thorough understanding
2 C solution is satisfactory, demonstrates understanding but with minor flaws, only partially correct
1 D- solution submitted, but clearly not correct, contains serious flaws
0 F unsatisfactory, nothing of value was submitted, does not satisfy requirements

A score of 0, 1, and 3 are clearly identifiable; anything not clearly identifiable is scored a 2. If I feel a particular item is more important and therefore should carry more weight, I may use a multiplicative factor (\(n\)) to change the possible scores for that item to be 0, \(n\), \(2n\), and \(3n\).

The reason for using discrete values is to avoid arguments over unimportant issues, to remove (as much as possible) the subjectivity in grading, to allow (as much as possible) room for unit/automatic testing systems, and to reduce the turnaround time for receiving a grade. Furthermore, this scoring can often be more telling than some arbitrary number of points.

I convert an individual item score to a letter grade as follows: 0 maps to an F, 1 to D-, 2 to C (average), and 3 to A. For a final grade for an assignment, I use the following chart with \(T\) is the total points available divided by 18.

A- \((16T,17T]\)   A \((17T,18T]\)  
B- \((13T,14T]\)   B \((14T,15T]\)   B+ \((15T,16T]\)
C- \((10T,11T]\)   C \((11T,12T]\)   C+ \((12T,13T]\)
D- \((4T,6T]\)   D \((6T,8T]\)   D+ \((8T,10T]\)
  F \([0T,4T]\)  

Note

There will be no rounding up when determining your final score. For example, receiving a 16 out of 18 will always be a B+ and never an A-.

Below is an interactive table. For example, letter grades for points (\(T\) above) are given below.

A- A
B- B B+
C- C C+
D- D D+
F

I reserve the right to award a higher grade than strictly earned; outstanding attendance and class participation figure prominently in such decisions.

Exams and final course grade will be scored similarly.

I have based my grading philosophy on an article by Dr. William J. Rapaport.

Plickers  #


In some of my courses, I may use Plickers to track attendance and help gauge participation and comprehension. I will print and distribute you a Plickers card at the very first class. Bring this card with you to every class and lab (if applicable). If you lose your Plickers card, let me know immediately, and I will reprint you a new card. Alternatively, you can use the Mobile Plickers Card Viewer, but this version is far less convenient than a printed card due to typical phone screen sizes.

When Plickers are used in class, responses will be graded depending on the type of question.

quiz score survey score
Correct 3pts Answered 3pts
Incorrect 2pts 2pts
1pt 1pt
No Answer 0pts No Answer 0pts

Important

Missed quizzes/surveys will NOT be made up outside of the class, whether due to an excused absence, an unexcused absence, or missing Plickers card.

Late Assignments


As in the world outside academia, time management is a valuable and import skill to master. The assignments for this course are designed to help you learn and master the computer science material. As in the world outside academia, time management is a valuable and important skill. In an effort to help you understand and master the material as well as to help you develop good time management skills, no assignments will receive credit if turned in late. Assignments will have a cut-off set for the due date and time, and only commits with timestamps before the due date and time will be accepted for Git-based assignments.

Slothfulness casts into a deep sleep, and an idle person will suffer hunger.
— Proverbs 19:15

Attendance


Physical attendance is required. I will be in class each day, and I expect you to be there also. In general, I am very understanding about students who must miss class due to a sanctioned Taylor activity, job interview, family emergency, and the like. If possible, let me know in advance if you will not be in class. I will work with you to arrange make-up instruction, quizzes, etc.

Many class periods will include discussion of reading materials and examples. You are responsible for everything that occurs when you are away for any type of absence. I will work with you if you have an excused absence, but you are responsible to communicate (in person during office hours or by e-mail) with me when an absence is excused. Exams and Quizzes which are missed may not be made up unless it is cleared with me PRIOR to class. Any make-up exam or quiz will be taken at an agreed upon time. (No exceptions!) Communication is essential!

Along with a physical presence, it is important to have a mental presence. Come to class prepared to participate in discussions. Readings are expected to be completed by the date they are listed in the schedule. Refer to the Electronics Usage section for more details.

Examples and other materials presented in class may contain errors. Therefore, it is not wise to take notes in class without thinking. Materials recorded but not understood is less valuable than materials understood but not recorded. There should be "real-time" thinking on the part of both the instructor and the student during class. If materials are not understood, a question should be asked. If an error is made, the student should make the instructor and the rest of the class aware of it.

See attached for university-wide policy on excused absences.

Electronics Usage


Research shows that computer/tablet/phone usage during class, even for taking notes, has a negative impact on retention, processing, and performance. Therefore, except for pre-generated materials such as presentations, computer use during lectures is disallowed, even if computers are accessible in the room. Note that this policy only applies to times of lecturing and not during lab time or certain participation activities.

An exception may be granted by writing a 1-page paper arguing why you choose to use an electronic device in the classroom. This paper must present a reasonable argument against studies like the one cited in this recent NPR article and this Business Insider article. Important: the exception comes with the caveat that you must sit where you will not disturb others, and that you may not use the device to check e-mail, engage in social networking, surf the web, play video games, or do any other activity not directly relevant to current classroom activity.

Confidentiality


Students should talk in person or use the LMS (Moodle / Canvas / Blackboard / Brightspace) to communicate sensitive information to the professor (such as grades).

Students may be asked to (or choose to) use external information systems such as Slack, GitHub, Piazza, Ed Discussion, and/or Google applications for this course. Students should not transmit sensitive information using these external communication services. Taylor University has no control over information shared on these external platforms.

Students should not communicate sensitive information over email. Email is nonsecure.

General University and Department Policies


The following are general university or department policies that apply to this course.

Please read them carefully.

Final Exams Policy


Students must take their final exams at the assigned exam times. Exceptions are made only by the dean due to serious illness or death of an immediate member of the family. Reasons such as plane schedules, availability of flights, and rides leaving early are not acceptable exceptions. Students must submit a petition 10 days prior to final week if three or more exams are scheduled on the same day. Please see the student handbook for more details.

The following was copied from Student Handbook on 2026.08.24.

Taylor operates on an academic calendar, which includes finals week as an integral part of each fall and spring term. During that week, each class meets at the time designated in the published exam schedule.

Students must meet for their final examinations at the assigned hours listed in the finals week schedule. Exceptions will be made only because of serious illness or the death of an immediate member of the family (mother, father, brother, sister, grandparent, spouse, or child). Reasons such as plane schedules, availability of flights, and rides leaving early are not acceptable exceptions. Contact the appropriate School dean for requests that qualify as stated above.

Students scheduled to take more than two final exams on the same day may, with written permission from a faculty member, reschedule an exam(s) to maintain a maximum of no more than two exams per day. Students should contact the Registrar's office to begin the rescheduling process. Rescheduling must be approved at least 10 class days prior to the beginning of exam week

(Un)Excused Absence Statement


Class attendance is expected as your presence is an important part of your learning and also your classmates' learning. You may submit an excused absence via the online form (Excused Absence Form - Individual). The Excused Absence Form is also available via Quick links on the student portal. If you have questions about excused absences, contact absences@taylor.edu. The Class Attendance Policy is located in the catalog and outlines attendance expectations, including criteria for excused absences.

Updated 2026.08.24.

Academic Resources and Accommodations


See the "Support Services" widget on the Taylor Brightspace homepage for links and full descriptions of support services and additional resources to support your academic work (e.g., Library, Writing Center, Tutoring, AEC, Attendance Policy-Excused Absence, Title IX, Counseling, ADA).

AEC Any academic need
Jill Smith Peer tutoring
Scott Barrett Students with disabilities support services
Writing Center Help with any part of the writing process
Zondervan Library
email, web
Student research assistance

For help with any part of the research process, please email zondervanlibrary@taylor.edu to connect with a librarian or to set up an appointment. Walk-up assistance is available during most of the Library's open hours. See the Library's website for more details on hours and to connect via chat.

Updated 2026.08.24.

Learning Management Systems


The Computer Science and Engineering department uses Brightspace as our Learning Management Systems.

You are responsible to check the appropriate LMS regularly for assignment due dates and other announcements posted to the site. For due dates, the calendar is your friend.

Collaboration


The Internet has fundamentally changed how we work in many dimensions, two of which are in collaboration and in assistance. Sites like stackoverflow.com allow a way for a programmer to get help with almost any programming-related problem. While collaboration and assistance—whether by peer, community, instructor, or AI—can bring about learning and help with troubleshooting, your task as a university student is to learn how to discover, diagnose, and correct bugs on your own. Each assignment and project will state how much collaboration is allowed for the three possible areas listed below.

  1. understand the problem
  2. develop a solution
  3. implement and debug

Note: if there is any ambiguity in the acceptable level of collaboration, check with the instructor; never assume that collaboration is implicitly allowed. No collaboration of any kind—Internet, peer, book, cheat sheets, etc.—is allowed for quizzes and exams unless explicit approval is given.

Honesty and Academic Integrity


As a student at an institution whose goal is to honor Christ in all that is done, I expect you to uphold the strictest standards of academic integrity. You must do your own work, cite others when you present their work, and never misrepresent your academic performance in any way. Violation of these standards stains the reputations of you as a student, Taylor as an institution, and Jesus as our Lord. Such a violation will result in your failing the course and other disciplinary action by the University.

It is important to note that, although collaboration and getting feedback on one's own writing and coding are essential parts of the writing process, having a text or program altered for the writer/coder is not.

Plagiarism
In an instructional setting, plagiarism occurs when a person presents or turns in work that includes someone else's ideas, language, or other (not common-knowledge) material without giving appropriate credit to the source.
Common Knowledge
any knowledge or facts that could be found in multiple places or as defined by a discipline, department, or faculty member.

Plagiarism will not be tolerated and may result in failing this course, and may also result in further consequences as stipulated in the Taylor catalog.

Academic dishonesty constitutes a serious violation of academic integrity and scholarship standards at Taylor that can result in substantial penalties, at the sole discretion of the University, including, but not limited to, denial of credit in a course as well as dismissal from the University. Any act that involves misrepresentation regarding the student's academic work or that abridges the rights of other students to fair academic competition is forbidden. Academic dishonesty includes but is not limited to cheating on assignments or exams; plagiarizing; submitting the same (or substantially the same) paper in more than one course without prior consent of all instructors concerned; depriving others of necessary academic sources; sabotaging another student's work; using, without attribution or authorization, a computer algorithm, program, or artificial intelligence tool. In short, a student violates academic integrity when he or she claims credit for any work not his or her own (e.g., words, ideas, answers, data, program codes, music) or misrepresents any academic performance, including significant input from a peer or AI platform. Like any academic resource, the use of artificial intelligence must align with instructor guidelines and include appropriate attribution. If academic dishonesty is suspected, faculty will initiate a conversation with the student to discuss the situation. All major acts of academic dishonesty, as defined herein, must be reported by the faculty member to their dean and the Office of Student Development. Departments or professors may have discipline- or course-specific policies.

Plagiarism: In an instructional setting, plagiarism occurs when a person presents or turns in work that includes someone else's ideas, language, or other (not common knowledge) material without giving appropriate credit to the source.

Taylor distinguishes between major and minor plagiarism infractions. Examples of minor infractions include inappropriate or inadequate citing or not crediting ideas from class readings. Examples of major infractions include taking significant portions of text from any source with no attribution or taking full credit for work that was completed with substantial assistance from a peer or AI platform.

Please see the Academic Dishonesty and Plagiarism sections in the student handbook for full descriptions.

Updated 2026.08.24.

AI-Assisted Recording Device


Students may not record, photograph, transcribe, or use an AI-enabled device to capture a class session without prior instructor permission or an approved academic accommodation. Recordings, transcripts, course materials, and contributions from classmates may not be shared or uploaded to an external AI platform without explicit permission.