Title Text
Problem Solving with Data Structures and Algorithms
Applied Algorithmic Thinking
Applied Algorithmic Thinking
ICB102: Expressive Clarity xxxx xx xxxxx
ICB103: Applied Algorithmic Thinking
IDS102: Applied Creative and Critical Thinking
IDS101: Critique and Communications
IDS103: Statistical Intuitions and Applications
IDS105: Systems and Society xxxx xxx
IDS104: Deriving Insights from Evidence
ICS211: Single and Multivariable Calculus
ICS213: Theory and Applications of Linear Algebra
IAH244: Ethical Systems, Moral Dilemmas
College Elective xxxxxxxxxxxxxx xxxx
ICS264: Optimization Methods
IDS206: Systems and Strategic Leadership
College Elective xxxxxxxx xxxxxxxxxx
Computational Systems Program Elective
ICS456: Finding Patterns with Machine Learning
ICS352: Theory and Applications of Artificial Intelligence
ICS346: Computational Bayesian Statistics
ICS210: Data Structures and Algorithms
ICS211: Single and Multivariable Calculus
Electives from other programsxxxxxxxxxxxxx
IDS392: Capstone Seminar 2 x xxxxxxx
IDS493: Capstone Project 1 xx xxxxxxx
IDS494: Capstone Project 2 xxxxxxxxxx
IDS499: Internship xxxxxxxxx xxx xxxx
IDS392: Capstone Seminar 1 x xxxxxxx
Electives from other programsxxxxxxxxxxxxx
Electives from other programsxxxxxxxxxxxxx
Semester 3
Semester 4
Semester 5
Semester 6
Semester 7
Semester 8
Year 4
Year 3
Year 2
Computational Systems
ICB102: Expressive Clarity xxxx xx xxxxx
ICB103: Applied Algorithmic Thinking
IDS102: Applied Creative and Critical Thinking
IDS101: Critique and Communications
IDS103: Statistical Intuitions and Applications
IDS105: Systems and Society xxxx xxx
IDS104: Deriving Insights from Evidence
ICS211: Single and Multivariable Calculus
ICS213: Theory and Applications of Linear Algebra
IAH244: Ethical Systems, Moral Dilemmas
College Elective xxxxxxxxxxxxxx xxxx
ICS264: Optimization Methods
IDS206: Systems and Strategic Leadership
College Elective xxxxxxxx xxxxxxxxxx
Computational Systems Program Elective
ICS456: Finding Patterns with Machine Learning
ICS352: Theory and Applications of Artificial Intelligence
ICS346: Computational Bayesian Statistics
ICS215: Math for Computational Sciences
ICS211: Single and Multivariable Calculus
Electives from other programsxxxxxxxxxxxxx
IDS392: Capstone Seminar 2 x xxxxxxx
IDS493: Capstone Project 1 xx xxxxxxx
IDS494: Capstone Project 2 xxxxxxxxxx
IDS499: Internship xxxxxxxxx xxx xxxx
IDS392: Capstone Seminar 1 x xxxxxxx
Electives from other programsxxxxxxxxxxxxx
Electives from other programsxxxxxxxxxxxxx
Semester 3
Semester 4
Semester 5
Semester 6
Semester 7
Semester 8
Year 4
Year 3
Year 2
Computational Systems
ICB102: Expressive Clarity xxxx xx xxxxx
ICB103: Applied Algorithmic Thinking
IDS102: Applied Creative and Critical Thinking
IDS101: Critique and Communications
IDS103: Statistical Intuitions and Applications
IDS105: Systems and Society xxxx xxx
IDS104: Deriving Insights from Evidence
ICB103: Applied Algorithmic Thinking
IDS102: Applied Creative and Critical Thinking
IDS105: Systems and Society xxxx xxx
IDS104: Deriving Insights from Evidence
Semester 2
Semester 4
ICB102: Expressive Clarity xxxx xx xxxxx
IDS101: Critique and Communications
IDS103: Statistical Intuitions and Applications
Semester 1
ICB102: Expressive Clarity xxxx xx xxxxx
ICB103: Applied Algorithmic Thinking
IDS102: Applied Creative and Critical Thinking
IDS101: Critique and Communications
IDS103: Statistical Intuitions and Applications
IDS105: Systems and Society xxxx xxx
IDS104: Deriving Insights from Evidence
ICS211: Single and Multivariable Calculus
ICS213: Theory and Applications of Linear Algebra
IAH244: Ethical Systems, Moral Dilemmas
College Elective xxxxxxxxxxxxxx xxxx
ICS264: Optimization Methods
IDS206: Systems and Strategic Leadership
College Elective xxxxxxxx xxxxxxxxxx
Computational Systems Program Elective
ICS456: Finding Patterns with Machine Learning
ICS352: Theory and Applications of Artificial Intelligence
ICS346: Computational Bayesian Statistics
ICS210: Data Structures and Algorithms
ICS211: Single and Multivariable Calculus
Electives from other programsxxxxxxxxxxxxx
IDS392: Capstone Seminar 2 x xxxxxxx
IDS493: Capstone Project 1 xx xxxxxxx
IDS494: Capstone Project 2 xxxxxxxxxx
IDS499: Internship xxxxxxxxx xxx xxxx
IDS392: Capstone Seminar 1 x xxxxxxx
Electives from other programsxxxxxxxxxxxxx
Electives from other programsxxxxxxxxxxxxx
Semester 1
Semester 2
Semester 3
Semester 4
Semester 5
Semester 6
Semester 7
Semester 8
Year 1
Year 4
Year 3
Year 2
Algorithms and Data
Critical Thinking and Quantitative Reasoning
Language
InformationTechnology
Information Literacy and Communication
Leadership
Global Awareness
Creative Problem Solving
Communication
Machine Learning and AI
Data and Statistics
Working in Teams
Mathematical Techniques
Algorithms and Data
Critical Thinking and Quantitative Reasoning
Language
InformationTechnology
Information Literacy and Communication
Leadership
Global Awareness
Creative Problem Solving
Communication
Machine Learning and AI
Data and Statistics
Working in Teams
Mathematical Techniques
Algorithms and Data
Critical Thinking and Quantitative Reasoning
Language
InformationTechnology
Information Literacy and Communication
Leadership
Global Awareness
Creative Problem Solving
Communication
Machine Learning and AI
Data and Statistics
Working in Teams
Mathematical Techniques
Evaluate appropriate algorithms or data structures to solve computational problems
Identify and describe algorithmic techniques and their associated data structures.
WritePython
implementation of
algorithms and
computational
applications using best practices for code
efficiency and
readability
Analyze the asymptotic behavior of an algorithm or algorithm solution to a problem using the appropriate Big-O, Big-Ω, or Big-Θ notations.
(1) Lacks knowledge Cannot perform the analysis of an algorithm when prompted, or asymptotic analysis is mostly inaccurate (i.e., the bounds presented are highly implausible). |
(2) Superficial knowledge Uses inappropriate notation when analyzing the complexity of algorithms or algorithmic solutions. Applies asymptotic analysis notation inaccurately or when prompted cannot identify and improve incorrect asymptotic bounds. |
(3) Knowledge Uses the appropriate asymptotic notation when analyzing algorithms and algorithmic solutions. Also applies techniques of asymptotic analysis mostly accurately. without providing context and explanations for these results. |
(4) Deep knowledge In addition to using the appropriate notation for the context, provides a clear, detailed, well-justified and accurate asymptotic analysis. |
(5) Profound knowledge Uses complexity analysis in a creative and effective way to study the asymptotic behavior of algorithms and computational applications, relying on a novel perspective comparable to what one would find in an academic publication. |
2-11,13,17,18,19
Contrast the relative merits of several algorithms or data structures that accomplish the same goal and choose the best option given relevant constraints.
(1) Lacks knowledge Does not compare the relative merits of different algorithms when prompted. |
(2) Superficial knowledge Recalls algorithms that fail to address the relevant problem; recalls and/or compares the relative merits of different algorithms inaccurately. |
(3) Knowledge Accurately recalls and compares the relative merits of different algorithms in a way that addresses the relevant problem. |
(4) Deep knowledge Gives an in-depth analysis of space or time resources each algorithm needs, comparing that to space or time resources available in the given context. Chooses the algorithmic approach that offers the best solution to a given problem in the context of well-defined constraints. |
(5) Profound knowledge Uses creative and effective criteria to offer a constructive critique of different algorithms and justify the selection of the best algorithm to solve a particular problem. Relies on novel perspectives and approaches when comparing algorithmic and computational solutions to a problem. The resulting level of analysis and critique is at a level comparable to what one would find in an academic publication. |
1,2,3,4,5,10,11,14,18,20,21,25
Explain and apply the principles of specific algorithmic techniques (including sorting algorithms, randomization techniques, dynamic programming and greedy algorithms, among others).
(1) Lacks knowledge Does not recall, explain or apply algorithmic strategies when prompted. |
(2) Superficial knowledge Recalls, explains or applies algorithmic strategies inaccurately and/or in a way that fails to solve the computational problem at hand or does not fully answer questions related to the computational solutions addressed by the algorithmic techniques. |
(3) Knowledge Accurately and appropriately applies algorithmic techniques to solve a given computational problem, or correctly answers questions relating to the application of algorithmic techniques. |
(4) Deep knowledge In addition to accurately applying algorithmic techniques to solve computational problems, provides a clear, detailed, and well-justified explanation supporting the algorithmic solution. Also, provides extensive evidence that other competing alternatives would not solve the problem as effectively. |
(5) Profound knowledge Applies algorithmic techniques in a creative and effective way, relying on a novel perspective, in a way that is a substantial improvement from standard applications of this technique, and the algorithmic solution is justified and documented at a level comparable to an academic publication. |
2-5,7-11,13,16,19,21,23,24,25
Explain and apply data structures to solve a given problem, by providing technical information on the data structure, its abstractions, implementations, and functional operations. Contrast different data structures that support a solution of a given problem.
(1) Lacks knowledge Does not identify or explain data structures and their functionalities when prompted or does so mostly inaccurately. |
(2) Superficial knowledge Recalls, explains or uses data structures inaccurately and/or in a way that does not address the relevant problems or goals. Superficially recalls the functional operations of data structures. |
(3) Knowledge Accurately and appropriately defines, applies, and implements data structures and its functional operations in a given context. |
(4) Deep knowledge In addition to using data structures appropriately in a given context, provides a clear, detailed, well-justified and accurate explanation supporting the choice, or provides extensive evidence that other competing alternatives would not solve the problem as effectively. |
(5) Profound knowledge Uses data structures in a creative and effective way, relying on a novel perspective, in a way that is a substantial improvement on standard techniques and justified at a level |
13-19, 23, 25
Generate and structure Python code that is clear and concise. Include meaningful comments, choose clear variable names, use naming conventions consistently, and include, where appropriate, useful error messages. Strive to produce code that not only works but can also be run by external readers.
(1) Lacks knowledge Does not write Python code that is understandable or easy to read by a third person, or does not use meaningful comments, variables and function names or does so mostly incorrectly. |
(2) Superficial knowledge Writes Python programs which are poorly organized and unclear to the external reader due to the lack of meaningful comments, or does so very poorly. |
(3) Knowledge Chooses a proper organization for the Python program that implements the required functionality, using appropriate variable names and a consistent naming convention. Python programs are well-documented and thoroughly commented on. Clearly identifies and documents shortfalls of the Python implementation. |
(4) Deep knowledge In addition to thoroughly commenting aPython implementation and following naming conventions consistently and throughout, includes useful error messages that are helpful for external readers and reviewers of the python code. |
(5) Profound knowledge Write thorough and well-organized Python code using novel and creative approaches that substantially increase the readability and understanding of the Python implementation. Rigorously applies algorithmic concepts when naming functions and variables, as well as demonstrates the code accuracy though strategic and well-documented test cases.. The final result is a well-documented and written Python implementation at the level of a professional Python software distribution. |
NOT IN CURRENT SYLLABUS
Write Python programs to implement, analyze, and compare algorithms and apply data structures. Produce Python code to plot and visualize meaningful performance metrics.
(1) Lacks knowledge Does not demonstrate knowledge of Python and cannot write Python programs to implement the required functionality. |
(2) Superficial knowledge Writes Python programs that only partially implement algorithms and applications of data structures, or writes Python programs that are not fully functional and do not pass all verification tests. |
(3) Knowledge Correctly and accurately writes Python programs that implement the required functionality, and pass all required test cases. |
(4) Deep knowledge Writes Python programs that correctly, accurately and efficiently implement the required functionality, and do so using Python commands and instructions that demonstrate deep knowledge of Python. Writes well-written instructions on how to use her or his Python code, and explicitly shows that the Python programs correctly pass all verification tests. Accurately uses advanced and well-documented Python plotting tools to present performance results and other relevant metrics. |
(5) Profound knowledge Write novel Python implementations of algorithms and applications of data structures, demonstrating deep knowledge of Python programming. Documents Python implementation and complexity analysis using sophisticated Python plotting tools and produces publications at a level that is comparable to an academic publication. |
1,3,4,7-21,23-25
Conventional Topics
Data Structures
Basics: primitive/abstract data types; arrays, lists, sets, stacks, queues, linked lists, trees
Dynamic arrays; priority queues; disjoint sets; hash tables; search trees
Text
ICB102: Expressive Clarity xxxx xx xxxxx
ICB103: Applied Algorithmic Thinking
IDS102: Applied Creative and Critical Thinking
IDS101: Critique and Communications
IDS103: Statistical Intuitions and Applications
IDS105: Systems and Society xxxx xxx
IDS104: Deriving Insights from Evidence
ICS211: Single and Multivariable Calculus
ICS213: Theory and Applications of Linear Algebra
IAH244: Ethical Systems, Moral Dilemmas
College Elective xxxxxxxxxxxxxx xxxx
ICS210: Data Structures and Algorithms
ICS264: Optimization Methods
IDS206: Systems and Strategic Leadership
College Elective xxxxxxxx xxxxxxxxxx
Computational Systems Program Elective
ICS456: Finding Patterns with Machine Learning
ICS352: Theory and Applications of Artificial Intelligence
ICS346: Computational Bayesian Statistics
ICS210: Data Structures and Algorithms
ICS211: Single and Multivariable Calculus
Electives from other programsxxxxxxxxxxxxx
IDS392: Capstone Seminar 2 x xxxxxxx
IDS493: Capstone Project 1 xx xxxxxxx
IDS494: Capstone Project 2 xxxxxxxxxx
IDS499: Internship xxxxxxxxx xxx xxxx
IDS392: Capstone Seminar 1 x xxxxxxx
Electives from other programsxxxxxxxxxxxxx
Electives from other programsxxxxxxxxxxxxx
Description: In this course, students learn how to apply core concepts in the design and analysis of algorithms and data structures to address computational problems. Hashing, searching, and sorting are a few examples of algorithms students learn to exploit strategies to solve problems. Course topics include: binary search trees, red-black trees, dynamic programming, and greedy algorithms.
1
Algorithm Analysis
2
Divide and Conquer
3
Heaps and Priority Qs
4
Randomi-zation
5
Search
Trees
6
Dynamic Programing
7
Hash
Tables
8
Course
Synthesis
CLOs
ICB102: Expressive Clarity xxxx xx xxxxx
ICB103: Applied Algorithmic Thinking
IDS102: Applied Creative and Critical Thinking
IDS101: Critique and Communications
IDS103: Statistical Intuitions and Applications
IDS105: Systems and Society xxxx xxx
IDS104: Deriving Insights from Evidence
ICS211: Single and Multivariable Calculus
ICS213: Theory and Applications of Linear Algebra
IAH244: Ethical Systems, Moral Dilemmas
College Elective xxxxxxxxxxxxxx xxxx
ICS264: Optimization Methods
IDS206: Systems and Strategic Leadership
College Elective xxxxxxxx xxxxxxxxxx
Computational Systems Program Elective
ICS456: Finding Patterns with Machine Learning
ICS352: Theory and Applications of Artificial Intelligence
ICS346: Computational Bayesian Statistics
ICS210: Data Structures and Algorithms
ICS211: Single and Multivariable Calculus
Electives from other programsxxxxxxxxxxxxx
IDS392: Capstone Seminar 2 x xxxxxxx
IDS493: Capstone Project 1 xx xxxxxxx
IDS494: Capstone Project 2 xxxxxxxxxx
IDS499: Internship xxxxxxxxx xxx xxxx
IDS392: Capstone Seminar 1 x xxxxxxx
Electives from other programsxxxxxxxxxxxxx
Electives from other programsxxxxxxxxxxxxx
Description: In this course, students learn how to apply core concepts in the design and analysis of algorithms and data structures to address computational problems. Hashing, searching, and sorting are a few examples of algorithms students learn to exploit strategies to solve problems. Course topics include: binary search trees, red-black trees, dynamic programming, and greedy algorithms.
1
Algorithm Analysis
2
Divide and Conquer
3
Heaps and Priority Qs
4
Randomi-zation
5
Search
Trees
6
Dynamic Programing
7
Hash
Tables
8
Course
Synthesis
U
N
I
T
S
CLOs
Right-Tool-for-the-Problem
Implementing-Tools-in-Code
Toolbox
#DataStructures Explain and apply data structures to solve a given problem, by providing technical information on the data structure, its abstractions, implementations, and functional operations.
#AlgorithmicStrategies: Explain and apply the principles of specific algorithm design methods such as dynamic programming and the greedy method.
ICB102: Expressive Clarity xxxx xx xxxxx
ICB103: Applied Algorithmic Thinking
IDS102: Applied Creative and Critical Thinking
IDS101: Critique and Communications
IDS103: Statistical Intuitions and Applications
IDS105: Systems and Society xxxx xxx
IDS104: Deriving Insights from Evidence
ICS211: Single and Multivariable Calculus
ICS213: Theory and Applications of Linear Algebra
IAH244: Ethical Systems, Moral Dilemmas
College Elective xxxxxxxxxxxxxx xxxx
ICS264: Optimization Methods
IDS206: Systems and Strategic Leadership
College Elective xxxxxxxx xxxxxxxxxx
Computational Systems Program Elective
ICS456: Finding Patterns with Machine Learning
ICS352: Theory and Applications of Artificial Intelligence
ICS346: Computational Bayesian Statistics
ICS210: Data Structures and Algorithms
ICS211: Single and Multivariable Calculus
Electives from other programsxxxxxxxxxxxxx
IDS392: Capstone Seminar 2 x xxxxxxx
IDS493: Capstone Project 1 xx xxxxxxx
IDS494: Capstone Project 2 xxxxxxxxxx
IDS499: Internship xxxxxxxxx xxx xxxx
IDS392: Capstone Seminar 1 x xxxxxxx
Electives from other programsxxxxxxxxxxxxx
Electives from other programsxxxxxxxxxxxxx
Description: In this course, students learn how to apply core concepts in the design and analysis of algorithms and data structures to address computational problems. Hashing, searching, and sorting are a few examples of algorithms students learn to exploit strategies to solve problems. Course topics include: binary search trees, red-black trees, dynamic programming, and greedy algorithms.
1
Algorithm Analysis
2
Divide and Conquer
3
Heaps and Priority Qs
4
Randomi-zation
5
Search
Trees
6
Dynamic Programing
7
Hash
Tables
8
Course
Synthesis
U
N
I
T
S
CLOs
Right-Tool-for-the-Problem
Implementing-Tools-in-Code
Toolbox
#ComputationalCritique: Contrast the relative merits of several algorithms or data structures that accomplish the same goal and choose the best option given relevant constraints.
#ComplexityAnalysis: Analyze the asymptotic behavior of an algorithm or algorithm solution to a problem using the appropriate Big-O, Big-Ω, or Big-Θ notations.
ICB102: Expressive Clarity xxxx xx xxxxx
ICB103: Applied Algorithmic Thinking
IDS102: Applied Creative and Critical Thinking
IDS101: Critique and Communications
IDS103: Statistical Intuitions and Applications
IDS105: Systems and Society xxxx xxx
IDS104: Deriving Insights from Evidence
ICS211: Single and Multivariable Calculus
ICS213: Theory and Applications of Linear Algebra
IAH244: Ethical Systems, Moral Dilemmas
College Elective xxxxxxxxxxxxxx xxxx
ICS264: Optimization Methods
IDS206: Systems and Strategic Leadership
College Elective xxxxxxxx xxxxxxxxxx
Computational Systems Program Elective
ICS456: Finding Patterns with Machine Learning
ICS352: Theory and Applications of Artificial Intelligence
ICS346: Computational Bayesian Statistics
ICS210: Data Structures and Algorithms
ICS211: Single and Multivariable Calculus
Electives from other programsxxxxxxxxxxxxx
IDS392: Capstone Seminar 2 x xxxxxxx
IDS493: Capstone Project 1 xx xxxxxxx
IDS494: Capstone Project 2 xxxxxxxxxx
IDS499: Internship xxxxxxxxx xxx xxxx
IDS392: Capstone Seminar 1 x xxxxxxx
Electives from other programsxxxxxxxxxxxxx
Electives from other programsxxxxxxxxxxxxx
Description: In this course, students learn how to apply core concepts in the design and analysis of algorithms and data structures to address computational problems. Hashing, searching, and sorting are a few examples of algorithms students learn to exploit strategies to solve problems. Course topics include: binary search trees, red-black trees, dynamic programming, and greedy algorithms.
1
Algorithm Analysis
2
Divide and Conquer
3
Heaps and Priority Qs
4
Randomi-zation
5
Search
Trees
6
Dynamic Programing
7
Hash
Tables
8
Course
Synthesis
U
N
I
T
S
CLOs
Right-Tool-for-the-Problem
Implementing-Tools-in-Code
Toolbox
#PythonProgramming: Write Python programs to implement, analyze, and compare algorithms and apply data structures. Produce Python code to plot and visualize meaningful performance metrics.
ICB101: Strategic Learning and Growth
ICB102: Expressive Clarity
ICS210: Data Structures and Algorithms
UNITS
In this course, students learn how to apply core concepts in the design and analysis of algorithms and data structures to address computational problems. Searching and sorting are a few examples of algorithmic strategies that students learn to solve problems that can range from logistics and route optimization to auto-completion engines and plagiarism detection.
ICS210: Data Structures and Algorithms
ICS210: Data Structures and Algorithms
1: Writing algorithms in Python--part I
This lesson introduces the arc of the course and discusses algorithmic strategies that encompass iteration and recursion. Focusing on the problem of finding palindromes, students examine the differences and similarities between both approaches to this problem, using flowcharts and actual Python implementations. We use step counters as a proxy for algorithmic efficiency in finding palindromes.
ICS210: Data Structures and Algorithms
2: Aspects of algorithm design and analysis
This lesson provides an introduction to computational concepts that will be central to the entire course and provides initial tools for the analysis of algorithm performance.
ICS210: Data Structures and Algorithms
3: Analyzing elementary sorting algorithms
Students review and experimentally analyze the performance of three sorting algorithms; insertion sort, selection sort, and bubble sort. These will serve as an introduction to the practical analysis of the run-time performance of algorithms. For this, students count algorithmic operations and time the runtime execution in Python.
In addition, students put into practice the creation of lists and basic plotting capabilities in Python.
ICS210: Data Structures and Algorithms
4: Measuring algorithms' efficiency
Students run numerical experiments to determine to what extent and in which circumstances a given sorting algorithm can be better than another. This session focuses on different metrics that can be used to track an algorithm's efficiency (in theory and in practice).
ICS210: Data Structures and Algorithms
5: Mergesort and recurrences
Students learn how to analyze divide-and-conquer algorithms through the application of recurrences on a variation of the merge sort algorithm.
ICS210: Data Structures and Algorithms
6: [3.2] Asymptotic notations
Students learn to use asymptotic notation more precisely. Additionally, they explore a brute-force approach to the maximum-subarray problem in preparation for a divide-and-conquer solution.
ICS210: Data Structures and Algorithms
7: Dividing and conquering the maximum subarray problem
Students work through the typical steps when approaching a problem with a divide-and-conquer strategy.
A divide and conquer approach usually requires several things:
- A base case that is trivial to solve,
- A way of dividing up the current problem into one or smaller problems, and
- The ability to combine those smaller solutions into a solution for the bigger problem.
For preparatory work, the students are asked to divide up the problem that is not quite going to work (certainly not the way we would expect it to). This is because there is some extra information that we need to pass around before we arrive at an efficient solution. (This is pretty typical of how things go when tackling a divide and conquer problem.)
ICS210: Data Structures and Algorithms
ICS210: Data Structures and Algorithms
ICS210: Data Structures and Algorithms
ICS210: Data Structures and Algorithms
ICS210: Data Structures and Algorithms
U
N
I
T
S
Unit 1: Algorithms--Design and Analysis
1: Writing algorithms in Python--part I
2: Aspects of algorithm design and analysis
3: Analyzing elementary sorting algorithms
4: Measuring algorithms' efficiency
7: Dividing and conquering the maximum subarray problem
Unit 2: Enhanced Strategies for Efficient Algorithms
8: Introduction to randomization techniques
11: Algorithms for computing the median efficiently
Unit 3: Tree and Graph-based Algorithms
12: Writing algorithms in Python--part II
15: Binary Search Trees (BSTs)
20: Computational applications of trees and graphs
Unit 4: Greedy Techniques and Dynamic Programming
22: The knapsack and the money-game problems
24: Computational applications of dynamic programming and greedy algorithms
ICS210: Data Structures and Algorithms
U
N
I
T
S
ICS210: Data Structures and Algorithms
U
N
I
T
S
Core Competency
Sub-Competency
Learning Outcomes
#AAA
#AAA111
#AAA222
#AAA333
#Z1
#Z4
#Z5
#Z3
#Z2
#BBB
#BBB111
#BBB222
#BBB333
#Z4
#Z7
#Z8
#Z6
#Z2
deck
By Dan Ryan
deck
- 270