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

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