This page presents course-level and module-level outcomes. Outcomes identify what students will know and be able to do if they master the material.
Use and implement abstract data types such as lists, stacks, queues, and trees.
Select the appropriate searching or sorting algorithm based on the algorithm’s behavior.
Develop recursive algorithms and programs.
Use standard libraries or packages as well as advanced object-oriented programming techniques (polymorphism, inheritance, and encapsulation).
Produce robust and secure programs using exception handling and extensive program testing.
Understand the goals, structures, and procedures for learning in ICS 211.
To learn basics of programming with a modern programming language, Java.
To learn and uses the basics of algorithm analysis, including big-O notation.
To learn and understand the array standard data structure. Know the standard interface for an Array.
To learn and implement standard algorithms for sorting arrays.
To understand Java collection classes and the basics of memory management.
To learn and implement the List standard data structure. Know the standard interface for a List.
To learn and implement the Iterator and Iterable. Know the standard interface for an Iterator and Iterable.
To learn and implement the Queue standard data structure. Know the standard interface for a Queue.
To learn and implement the Stack standard data structure. Know the standard interface for a Stack.
To learn and implement the Tree standard data structure.
To learn and implement the Hash Map standard data structure. Know the difference between open addressing and chained maps.
To understand recursion and how to develop recursive algorithms and programs.
To learn and implement standard algorithms for searching.
Analyze a complex computing problem and apply principles of computing and other relevant disciplines to identify solutions.
Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
Apply computer science theory and software development fundamentals to produce computing-based solutions.
The student will:
Referencing modules: Java Review, Simple Sorting Algorithms, Midterm Exam 1, Midterm Exam 2, Final Exam
Assessed by: Q01: Java Review, Q02: Person Class, H03: Sorting Arrays, Q03: Identify Sorts, H04: Sortable Pizza List (Array implementation), H05: Sortable Pizza List (Doubly linked implementation), H06: Iterating over Pizza Slices, Midterm 1, H07: Postfix Calculator, H08: Simulate checkout lanes, H09: Recursive Sudoku Solver, H10: Sort by using a Binary Search Tree, H11: Huffman Tree, Midterm 2, Final Grade Assessment, Final Exam Assessment
The student will:
Referencing modules: OOP and Class Hierarchies, Simple Sorting Algorithms, Midterm Exam 1, Midterm Exam 2, Final Exam
Assessed by: Q02: Person Class, H03: Sorting Arrays, H04: Sortable Pizza List (Array implementation), H05: Sortable Pizza List (Doubly linked implementation), H06: Iterating over Pizza Slices, Midterm 1, H07: Postfix Calculator, H08: Simulate checkout lanes, H09: Recursive Sudoku Solver, H10: Sort by using a Binary Search Tree, H11: Huffman Tree, Midterm 2, Final Exam Assessment
The student will:
Referencing modules: Big-O Notation, Midterm Exam 1, Midterm Exam 2, Final Exam
Assessed by: H04: Sortable Pizza List (Array implementation), H05: Sortable Pizza List (Doubly linked implementation), Q04: List ADT, Q05: LinkedList, Q06: List Iterators, Midterm 1, Midterm 2, Final Exam Assessment
The student will:
Distinguish between and implement O(n2) sorting algorithms.
Distinguish between and implement O(nlogn) sorting algorithms.
Referencing modules: Simple Sorting Algorithms, Midterm Exam 1, Midterm Exam 2, Complex Sorting Algorithms, Final Exam
Assessed by: H03: Sorting Arrays, Q03: Identify Sorts, H04: Sortable Pizza List (Array implementation), H05: Sortable Pizza List (Doubly linked implementation), Midterm 1, Midterm 2, Q13: Complex Sorting, Final Exam Assessment
The student will:
Use Arrays as the underlying data structure for different ADT implementations.
Explain the trade-offs between an array vs. Linked implementation of the ADTs.
Referencing modules: Simple Sorting Algorithms, Midterm Exam 1, Midterm Exam 2, Complex Sorting Algorithms, Final Exam
Assessed by: H03: Sorting Arrays, Q03: Identify Sorts, H04: Sortable Pizza List (Array implementation), Q04: List ADT, Midterm 1, Midterm 2, Final Exam Assessment
The student will:
Develop abstract data types.
Use appropriate data encapsulation and information hiding.
Choose, design and develop appropriate tests for their Java code.
Referencing modules: Simple Sorting Algorithms
Assessed by: H03: Sorting Arrays, H04: Sortable Pizza List (Array implementation), H05: Sortable Pizza List (Doubly linked implementation), H06: Iterating over Pizza Slices, H07: Postfix Calculator, H08: Simulate checkout lanes, H09: Recursive Sudoku Solver, H10: Sort by using a Binary Search Tree, H11: Huffman Tree,
The student will:
Understand White and Black box testing.
Choose, design and develop appropriate tests for their Java code.
Referencing modules: Simple Sorting Algorithms
Assessed by: H03: Sorting Arrays, H04: Sortable Pizza List (Array implementation), H05: Sortable Pizza List (Doubly linked implementation), H06: Iterating over Pizza Slices, H07: Postfix Calculator, H08: Simulate checkout lanes, H09: Recursive Sudoku Solver, H10: Sort by using a Binary Search Tree, H11: Huffman Tree,
The student will:
Implement two different versions of the List interface.
Explain the trade-offs between the two different implementations.
Referencing modules: Lists, Midterm Exam 1, Midterm Exam 2, Hash Tables, Final Exam
Assessed by: H04: Sortable Pizza List (Array implementation), H05: Sortable Pizza List (Doubly linked implementation), H06: Iterating over Pizza Slices, Q04: List ADT, Q05: LinkedList, Q06: List Iterators, Midterm 1, Midterm 2, Final Exam Assessment
The student will:
Describe the different Java collection classes.
Explain and compare the basics of memory management in different implementations.
Referencing modules: Lists, Midterm Exam 1, Midterm Exam 2
The student will:
Implement several different versions of the Iterator interface.
Implement several different versions of the Iterable interface.
Explain the trade-offs between the different implementations.
Referencing modules: Lists
Assessed by: H06: Iterating over Pizza Slices, Q05: LinkedList, Q06: List Iterators,
The student will:
Explain standard interface for a Stack.
Implement two different versions of the Stack interface.
Compare the trade-offs between the two different implementations.
Referencing modules: Stacks, Midterm Exam 2, Final Exam
Assessed by: H07: Postfix Calculator, Q07: Stacks, Midterm 2, Final Exam Assessment
The student will:
Explain the differences between prefix, infix and postfix notation.
Implement code to process prefix, infix and postfix equations.
Compare the trade-offs between the notations.
Referencing modules: Stacks, Midterm Exam 2, Final Exam
Assessed by: H07: Postfix Calculator, Midterm 2, Final Exam Assessment
The student will:
Implement several different versions of the Queue interface.
Compare the trade-offs between the two different implementations.
Referencing modules: Queues, Midterm Exam 2, Final Exam
Assessed by: H08: Simulate checkout lanes, Q08: Queue, Midterm 2, Final Exam Assessment
The student will:
Use recursive algorithms to solve different problems.
Write correct recursive Java code to solve different problems.
Referencing modules: Recursion, Trees, Midterm Exam 2, Final Exam
Assessed by: H09: Recursive Sudoku Solver, Q09: Recursion, H10: Sort by using a Binary Search Tree, H11: Huffman Tree, Q10: Binary Tree Traversal, Q11: Heaps, Midterm 2, Final Exam Assessment
The student will:
Explain the standard structure of a Tree.
Implement binary trees.
Implement binary search trees.
Implement a Heap.
Referencing modules: Trees, Final Exam
Assessed by: H10: Sort by using a Binary Search Tree, H11: Huffman Tree, Q10: Binary Tree Traversal, Q11: Heaps, Final Exam Assessment
The student will:
Explain the differences between pre-order, in-order and post-order traversals.
Implement code to conduct pre-order, in-order and post-order traversals of binary trees.
Referencing modules: Trees, Final Exam
Assessed by: Final Exam Assessment
The student will:
Implement two different versions of the Hash Map interface, open addressing and chaining.
Explain the trade-offs between the two different implementations.
Referencing modules: Hash Tables, Final Exam
Assessed by: Q12: Hashtables, Final Exam Assessment
The student will:
Explain and implement the binary and linear search algorithms.
Compare, contrast and implement pre-order, in-order, and post-order binary tree traversal.
Referencing modules: Final Exam
Assessed by: Final Exam Assessment
The student will:
Referencing modules: Welcome to ICS 211
Assessed by: Final Grade Assessment