BYU CS Logo
Computing That Serves

CS 235

Course Offerings

Section # Semester Instructor Website Description
1 Fall 2017 Robert P. Burton https://learningsuite.byu.edu/view/6eN609w8D9ds.html
2 Fall 2017 Robert P. Burton https://learningsuite.byu.edu/view/6eN609w8D9ds.html
3 Fall 2017 Jacob Crandall https://cs.byu.edu/Download%20syllabus.pdf
4 Fall 2017 Jacob Crandall https://cs.byu.edu/Download%20syllabus.pdf
6 Fall 2017 Faculty Adjunct Salt Lake
Section # Semester Instructor Website Description
1 Winter 2018 Paul Roper
2 Winter 2018 Paul Roper
3 Winter 2018 Paul Roper
4 Winter 2018 Paul Roper
5 Winter 2018 Faculty Adjunct Salt Lake Center
6 Winter 2018 Mark Clement
1 Fall 2017 Robert P. Burton https://learningsuite.byu.edu/view/6eN609w8D9ds.html
2 Fall 2017 Robert P. Burton https://learningsuite.byu.edu/view/6eN609w8D9ds.html
3 Fall 2017 Jacob Crandall https://cs.byu.edu/Download%20syllabus.pdf
4 Fall 2017 Jacob Crandall https://cs.byu.edu/Download%20syllabus.pdf
6 Fall 2017 Faculty Adjunct Salt Lake
1 Spring-Summer 2017 Robert P. Burton
1 Spring-Summer 2017 Cory Barker https://faculty.cs.byu.edu/~barker/cs235/index.php
3 Spring-Summer 2017
3 Spring-Summer 2017
1 Winter 2017 Mark Clement https://learningsuite.byu.edu/view/jiB6L0lWKnKT.html
2 Winter 2017 Mark Clement https://learningsuite.byu.edu/view/jiB6L0lWKnKT.html
3 Winter 2017 Robert P. Burton https://learningsuite.byu.edu/.i5ug/cid-rukA7cw_q34v/home
4 Winter 2017 Robert P. Burton https://learningsuite.byu.edu/.i5ug/cid-rukA7cw_q34v/home
5 Winter 2017 Faculty Adjunct https://learningsuite.byu.edu/.04_k/cid-nwW4BIMyqulW/student/pages
1 Fall 2016 Robert P. Burton
2 Fall 2016 Robert P. Burton
3 Fall 2016 Cory Barker
4 Fall 2016 Cory Barker
5 Fall 2016 Jacob Crandall https://learningsuite.byu.edu/view/0_5Sl0woWB8Q.html
6 Fall 2016 SALT LAKE
6 Fall 2016 Faculty Adjunct SALT LAKE
1 Spring-Summer 2016 Robert P. Burton
2 Spring-Summer 2016 Cory Barker
1 Winter 2016 Cory Barker http://beta.cs.byu.edu/~cs235/index.php
2 Winter 2016 Cory Barker http://beta.cs.byu.edu/~cs235/index.php
3 Winter 2016 Robert P. Burton https://learningsuite.byu.edu/view/JQvcJqk3dzY_.html
4 Winter 2016 Robert P. Burton https://learningsuite.byu.edu/view/JQvcJqk3dzY_.html
1 Fall 2015 Robert P. Burton https://learningsuite.byu.edu/view/UY0m4bywjlDg.html
2 Fall 2015 Robert P. Burton https://learningsuite.byu.edu/view/UY0m4bywjlDg.html
3 Fall 2015 Kent Seamons https://learningsuite.byu.edu/view/VzUsd-GQ4TWu.html
4 Fall 2015 Kent Seamons https://learningsuite.byu.edu/view/VzUsd-GQ4TWu.html
1 Spring-Summer 2015 Robert P. Burton https://learningsuite.byu.edu/view/RgSJ60fL8b2q.html
2 Spring-Summer 2015 Cory Barker
1 Winter 2015 Robert P. Burton
2 Winter 2015 Robert P. Burton
3 Winter 2015 Robert P. Burton
4 Winter 2015 Cory Barker http://beta.cs.byu.edu/~cs235/index.php
5 Winter 2015 Cory Barker http://beta.cs.byu.edu/~cs235/index.php
6 Winter 2015 Faculty Adjunct Salt Lake Center
1 Fall 2014 Robert P. Burton https://learningsuite.byu.edu/view/W7hy-9TGzkL_.html
2 Fall 2014 Robert P. Burton https://learningsuite.byu.edu/view/W7hy-9TGzkL_.html
3 Fall 2014 Robert P. Burton https://learningsuite.byu.edu/view/W7hy-9TGzkL_.html
4 Fall 2014 Robert P. Burton https://learningsuite.byu.edu/view/W7hy-9TGzkL_.html
5 Fall 2014 Kent Seamons
6 Fall 2014 Kent Seamons
7 Fall 2014 Faculty Adjunct Salt Lake
1 Spring-Summer 2014 Robert P. Burton https://learningsuite.byu.edu/view/LVFrPvtiECed.html
2 Spring-Summer 2014 Cory Barker
1 Winter 2014 Cory Barker http://beta.cs.byu.edu/~cs235/index.php
2 Winter 2014 Cory Barker http://beta.cs.byu.edu/~cs235/index.php
3 Winter 2014 Cory Barker http://beta.cs.byu.edu/~cs235/index.php
4 Winter 2014 Cory Barker http://beta.cs.byu.edu/~cs235/index.php
5 Winter 2014 Cory Barker http://beta.cs.byu.edu/~cs235/index.php
1 Fall 2013 Robert P. Burton
2 Fall 2013 Robert P. Burton
3 Fall 2013 Kent Seamons
4 Fall 2013 Kent Seamons
1 Summer 2013 Cory Barker
1 Spring 2013 Robert P. Burton
1 Winter 2013 Cory Barker
1 Winter 2013 Cory Barker
2 Winter 2013 Cory Barker
3 Winter 2013 Cory Barker
4 Winter 2013 Cory Barker
5 Winter 2013 Cory Barker
1 Fall 2012 Robert P. Burton http://students.cs.byu.edu/~cs235headta/
2 Fall 2012 Robert P. Burton http://students.cs.byu.edu/~cs235headta/
3 Fall 2012 Kent Seamons http://students.cs.byu.edu/~cs235headta/
4 Fall 2012 Kent Seamons http://students.cs.byu.edu/~cs235headta/
1 Summer 2012 Cory Barker
3 Spring 2012 cs grad http://axon.cs.byu.edu/~dheath/cs235/
1 Winter 2012 Cory Barker
2 Winter 2012 Cory Barker
3 Winter 2012 Cory Barker
4 Winter 2012 Cory Barker
5 Winter 2012 Cory Barker
1 Fall 2011 Robert P. Burton http://students.cs.byu.edu/~cs235headta/
2 Fall 2011 Robert P. Burton http://students.cs.byu.edu/~cs235headta/
3 Fall 2011 Robert P. Burton http://students.cs.byu.edu/~cs235headta/
4 Fall 2011 Robert P. Burton http://students.cs.byu.edu/~cs235headta/
5 Fall 2011 Kent Seamons http://students.cs.byu.edu/~cs235headta/
1 Summer 2011 cs grad http://dml.cs.byu.edu/~sburton/cs235
1 Spring 2011 Robert P. Burton http://students.cs.byu.edu/~cs235headta/
1 Winter 2011 Cory Barker
1 Winter 2011 Cory Barker
2 Winter 2011 Cory Barker
3 Winter 2011 Cory Barker
4 Winter 2011 Cory Barker
1 Fall 2010 Kent Seamons http://students.cs.byu.edu/~cs235headta/
2 Fall 2010 Robert P. Burton http://students.cs.byu.edu/~cs235headta/
3 Fall 2010 Robert P. Burton http://students.cs.byu.edu/~cs235headta/
4 Fall 2010 Robert P. Burton http://students.cs.byu.edu/~cs235headta/
1 Summer 2010 cs grad http://axon.cs.byu.edu/~msmith/cs235
1 Spring 2010 cs grad https://cswiki.cs.byu.edu/cs235/index.php/Main_Page
1 Winter 2010 Cory Barker https://seth.cs.byu.edu/~cs235/winter2010/
2 Winter 2010 Cory Barker https://seth.cs.byu.edu/~cs235/winter2010/
3 Winter 2010 Cory Barker https://seth.cs.byu.edu/~cs235/winter2010/
4 Winter 2010 Cory Barker https://seth.cs.byu.edu/~cs235/winter2010/
1 Fall 2009 Christophe Giraud-Carrier http://seth.cs.byu.edu/~cs235/fall2009
2 Fall 2009 Cory Barker http://seth.cs.byu.edu/~cs235/fall2009
3 Fall 2009 Cory Barker http://seth.cs.byu.edu/~cs235/fall2009
1 Summer 2009 cs grad http://students.cs.byu.edu/~may109/~cs235/summer2009/
1 Spring 2009 Cory Barker http://code.cs.byu.edu/~cs235/spring2009
1 Winter 2009 Cory Barker http://faculty.cs.byu.edu/~barker/cs235/winter2009/
2 Winter 2009 Cory Barker http://faculty.cs.byu.edu/~barker/cs235/winter2009/
3 Winter 2009 Cory Barker http://faculty.cs.byu.edu/~barker/cs235/winter2009/
4 Winter 2009 Cory Barker http://faculty.cs.byu.edu/~barker/cs235/winter2009/
1 Fall 2008 Christophe Giraud-Carrier http://faculty.cs.byu.edu/~barker/cs235/fall2008/
2 Fall 2008 cs grad
3 Fall 2008 Cory Barker http://faculty.cs.byu.edu/~barker/cs235/fall2008/
4 Fall 2008 Cory Barker http://faculty.cs.byu.edu/~barker/cs235/fall2008/
1 Summer 2008 cs grad http://axon.cs.byu.edu/~mike/cs235
1 Spring 2008 cs grad http://dml.cs.byu.edu/matthewsmith/cs235/
2 Winter 2008 Cory Barker http://faculty.cs.byu.edu/~barker/cs235/winter2008/
3 Winter 2008 Cory Barker http://faculty.cs.byu.edu/~barker/cs235/winter2008/
4 Winter 2008 Cory Barker http://faculty.cs.byu.edu/~barker/cs235/winter2008/
4 Winter 2008 Cory Barker http://faculty.cs.byu.edu/~barker/cs235/winter2008/
5 Winter 2008 Cory Barker http://faculty.cs.byu.edu/~barker/cs235/winter2008/
1 Fall 2007 Christophe Giraud-Carrier http://students.cs.byu.edu/~cs235ta/fall2007/
2 Fall 2007 Christophe Giraud-Carrier http://students.cs.byu.edu/~cs235ta/fall2007/
3 Fall 2007 Cory Barker http://students.cs.byu.edu/~cs235ta/fall2007
4 Fall 2007 Cory Barker http://students.cs.byu.edu/~cs235ta/fall2007
5 Fall 2007 Cory Barker http://students.cs.byu.edu/~cs235ta/fall2007
1 Summer 2007 cs grad http://students.cs.byu.edu/~cs235ta/
1 Spring 2007 Ken Rodham http://students.cs.byu.edu/~cs235ta/
1 Winter 2007 Cory Barker http://students.cs.byu.edu/~cs235ta/winter2007
2 Winter 2007 Cory Barker http://students.cs.byu.edu/~cs235ta/winter2007
3 Winter 2007 Quinn Snell http://students.cs.byu.edu/~cs235ta/winter2007/
4 Winter 2007 Quinn Snell http://students.cs.byu.edu/~cs235ta/winter2007/
1 Fall 2006 Christophe Giraud-Carrier http://students.cs.byu.edu/~cs235ta/fall2006/
2 Fall 2006 Christophe Giraud-Carrier http://students.cs.byu.edu/~cs235ta/fall2006/
3 Fall 2006 Cory Barker http://students.cs.byu.edu/~cs235ta/fall2006
4 Fall 2006 Cory Barker http://students.cs.byu.edu/~cs235ta/fall2006
1 Summer 2006 cs grad http://students.cs.byu.edu/~cs235ta/summer2006/
1 Spring 2006 cs grad http://students.cs.byu.edu/~cs235ta/spring2006/
1 Spring 2006 cs grad http://students.cs.byu.edu/~cs235ta/spring2006/
1 Winter 2006 Cory Barker http://students.cs.byu.edu/~cs235ta/winter2006/
2 Winter 2006 Cory Barker http://students.cs.byu.edu/~cs235ta/winter2006/
3 Winter 2006 Ken Rodham http://students.cs.byu.edu/~cs235ta/winter2006/
4 Winter 2006 Cory Barker http://students.cs.byu.edu/~cs235ta/winter2006/
1 Fall 2005 Tom Sederberg http://students.cs.byu.edu/~cs235ta/fall2005/
1 Fall 2005 Tom Sederberg http://students.cs.byu.edu/~cs235ta/fall2005/
2 Fall 2005 Tom Sederberg http://students.cs.byu.edu/~cs235ta/fall2005/
2 Fall 2005 Tom Sederberg http://students.cs.byu.edu/~cs235ta/fall2005/
3 Fall 2005 Christophe Giraud-Carrier http://students.cs.byu.edu/~cs235ta/fall2005/
3 Fall 2005 Christophe Giraud-Carrier http://students.cs.byu.edu/~cs235ta/fall2005/
4 Fall 2005 Christophe Giraud-Carrier http://students.cs.byu.edu/~cs235ta/fall2005/

Short Summary: 

Data Structures and Algorithms

Credits: 

3

Prerequisites: 

Language: 

C++

Data Structures and Algorithms

 

Fundamental data structures and algorithms of computer science; basic algorithm analysis; recursion; sorting and searching; lists, stacks, queues, trees, hashing; object-oriented data abstraction.

 

 

This document is not a syllabus. Instead, for ALL offerings of this course, this document states the purpose, expected objectives, and topics for the course. Faculty members teaching this course should adhere to these objectives and topics. Students taking this course can expect to achieve the objectives and cover the topics specified, and faculty members teaching follow-on courses can expect students to have been appropriately exposed to the prerequisite material as stated.  The “hours” for topics listed below reflect the approximate number of 50-minute class periods (or equivalent) devoted to each topic.

 

Purpose

CS 235 provides a hands-on introduction to data structures and algorithms. Through projects and exercises, students learn how to select and implement suitable data structures for various problems, how and when to use recursion, and how to analyze the cost of algorithms, especially sorting algorithms.


Learning Outcomes

At the end of this course, students should be able to:

  1. Use the fundamental data types of computing (lists, stacks, queues, priority queues, sets, maps, trees, etc.).
  2. Understand the major techniques for implementing the fundamental data types (linked lists, binary search trees, hashing, heaps, etc.) and implement several of them.
  3. Properly use and select data structures from language-provided data-structure libraries.
  4. Apply basic algorithm analysis.
  5. Understand how recursion works and write programs using recursion to solve problems.
  6. Make informed decisions about which sorting and searching algorithms to use in specific circumstances.
  7. Write programs that require ~500 lines of code

Topics

 

  • C++ skills review  (5 hours)
  • Using data types in applications (5 hours)
  • Recursion (2 hours)
  • Big-Oh (2 hours)
  • Searching (sequential search, binary search) (1 hour)
  • Sorting (selection, insertion, mergesort, quicksort) (4 hours)
  • Array and linked implementations of List (2 hours)
  • Array and linked implementations of Stack and Queue (2 hours)
  • Trees, binary trees, traversals (4 hours)
  • Binary search trees (2 hours)
  • AVL trees (3 hours)
  • Hashing (chaining, linear probing, quadratic probing) (2 hours)
  • Binary heaps and heapsort (2 hours)