Search courses · All instructors
CSCI 305: Data Structures and Algorithms I
Design and implementation of hash tables, general trees, search trees, balanced trees, and sorting algorithms. Demonstration of the use of data structures in various applications. Evaluation of the best data structure for a particular task. Programming is required in implementation of concepts. Design techniques such as divide and conquer will be introduced as will correctness proofs and runtime analysis.
Offered in 24 of the 26 listed terms (Winter 2021 to Spring 2027).
Catalog entryBrowse ClassesTextbooks (WWU Bookstore)
Prerequisites
Prerequisite tree
Each course's own prerequisites, down to the first courses in the chain.
- CSCI 201 Discrete Math and Functional Programming for Computer Scientists
requires CSCI 145 and (MATH 124 or MATH 125 or MATH 134 or MATH 135 or MATH 138 or Calculus AB AP Exam (AP66), score 3 or Calculus BC AP Exam (AP68), score 3 or Calc AB Subscore AP Exm (AP69), score 3)- CSCI 145 Computer Programming and Linear Data Structures
requires CSCI 141 and (MATH 115 or MATH 118 or MATH 124 or MATH 125 or MATH 138 or MATH 156 or MATH 157 or Precalculus AP Exam (AP65), score 5 or Calculus AB AP Exam (AP66), score 2 or Calculus BC AP Exam (AP68), score 3 or Calc AB Subscore AP Exm (AP69), score 2 or Pre-Calculus 2 (PC2), score 1.70 or MPT - Advanced - Scaled Score, score 153 or ALEKS Math Placement Assessmnt, score 80)- CSCI 141 Computer Programming I
requires MATH 112 or MATH 114 or MATH 115 or MATH 118 or MATH 124 or MATH 125 or MATH 134 or MATH 138 or MATH 156 or MATH 204 or Pre-Calculus 1 (PC1), score 1.70 or Precalculus AP Exam (AP65), score 3 or Calculus AB AP Exam (AP66), score 2 or Calculus BC AP Exam (AP68), score 3 or Calc AB Subscore AP Exm (AP69), score 2 or Pre-Calculus (PC), score 1.70 or Pre-Calculus 2 (PC2), score 1.70 or College Algebra (CA), score 1.70 or MPT General - Scaled Score, score 152 or MPT - Advanced - Scaled Score, score 143 or ALEKS Math Placement Assessmnt, score 55- MATH 112 Functions and Algebraic Methods
requires MPT - Advanced - Scaled Score, score 143 or MATH 099 (minimum grade YP) or College Algebra (CA), score 1.70 or Intermediate Algebra (IA), score 1.70 or MPT General - Scaled Score, score 148 or ALEKS Math Placement Assessmnt, score 35 or Precalculus AP Exam (AP65), score 2 or MATH 197C (minimum grade S) or MATH 109 (minimum grade S) - MATH 114 Precalculus I
requires MPT General - Scaled Score, score 153 or MPT - Advanced - Scaled Score, score 143 or ALEKS Math Placement Assessmnt, score 55 or MATH 112 or Precalculus AP Exam (AP65), score 3 or College Algebra (CA), score 1.70 or Pre-Calculus 1 (PC1), score 1.70- MATH 112 Functions and Algebraic Methods (shown above)
- MATH 115 Precalculus II
requires MATH 114 or Precalculus AP Exam (AP65), score 4 or ALEKS Math Placement Assessmnt, score 65- MATH 114 Precalculus I (shown above)
- MATH 118 Accelerated Precalculus
requires MPT General - Scaled Score, score 158 or MPT - Advanced - Scaled Score, score 149 or Precalculus AP Exam (AP65), score 4 or Calculus AB AP Exam (AP66), score 2 or Calculus BC AP Exam (AP68), score 3 or Calc AB Subscore AP Exm (AP69), score 2 or ALEKS Math Placement Assessmnt, score 70 - MATH 124 Calculus and Analytic Geometry I
requires MPT - Advanced - Scaled Score, score 153 or MATH 115 or MATH 118 or Precalculus AP Exam (AP65), score 5 or Calculus BC AP Exam (AP68), score 3 or Calculus AB AP Exam (AP66), score 2 or Calc AB Subscore AP Exm (AP69), score 2 or Pre-Calculus 2 (PC2), score 2.30 or ALEKS Math Placement Assessmnt, score 80 - MATH 125 Calculus and Analytic Geometry II
requires MATH 124 or MATH 134 or Calculus AB AP Exam (AP66), score 4 or Calculus BC AP Exam (AP68), score 3 or Calc AB Subscore AP Exm (AP69), score 4 - MATH 134 Calculus I Honors
requires MATH 115 (minimum grade A) or MATH 118 (minimum grade A) or Math Placement - Advanced 2, score 20 or Precalculus AP Exam (AP65), score 5 - MATH 138 Accelerated Calculus
requires Calculus AB AP Exam (AP66), score 4 or Calculus BC AP Exam (AP68), score 3 or Calc AB Subscore AP Exm (AP69), score 4 or (Calculus BC AP Exam (AP68), score 2 and Calc AB Subscore AP Exm (AP69), score 3) - MATH 156 Algebra With Applications to Business and Economics
requires MPT General - Scaled Score, score 152 or MPT - Advanced - Scaled Score, score 143 or ALEKS Math Placement Assessmnt, score 55 or Precalculus AP Exam (AP65), score 3 or College Algebra (CA), score 1.70 or Pre-Calculus 1 (PC1), score 1.70 or MATH 112- MATH 112 Functions and Algebraic Methods (shown above)
- MATH 204 Elementary Linear Algebra
requires MATH 125 or MATH 135 or MATH 138
- MATH 112 Functions and Algebraic Methods
- MATH 115 Precalculus II
requires MATH 114 or Precalculus AP Exam (AP65), score 4 or ALEKS Math Placement Assessmnt, score 65- MATH 114 Precalculus I (shown above)
- MATH 118 Accelerated Precalculus
requires MPT General - Scaled Score, score 158 or MPT - Advanced - Scaled Score, score 149 or Precalculus AP Exam (AP65), score 4 or Calculus AB AP Exam (AP66), score 2 or Calculus BC AP Exam (AP68), score 3 or Calc AB Subscore AP Exm (AP69), score 2 or ALEKS Math Placement Assessmnt, score 70 - MATH 124 Calculus and Analytic Geometry I
requires MPT - Advanced - Scaled Score, score 153 or MATH 115 or MATH 118 or Precalculus AP Exam (AP65), score 5 or Calculus BC AP Exam (AP68), score 3 or Calculus AB AP Exam (AP66), score 2 or Calc AB Subscore AP Exm (AP69), score 2 or Pre-Calculus 2 (PC2), score 2.30 or ALEKS Math Placement Assessmnt, score 80 - MATH 125 Calculus and Analytic Geometry II
requires MATH 124 or MATH 134 or Calculus AB AP Exam (AP66), score 4 or Calculus BC AP Exam (AP68), score 3 or Calc AB Subscore AP Exm (AP69), score 4 - MATH 138 Accelerated Calculus
requires Calculus AB AP Exam (AP66), score 4 or Calculus BC AP Exam (AP68), score 3 or Calc AB Subscore AP Exm (AP69), score 4 or (Calculus BC AP Exam (AP68), score 2 and Calc AB Subscore AP Exm (AP69), score 3) - MATH 156 Algebra With Applications to Business and Economics
requires MPT General - Scaled Score, score 152 or MPT - Advanced - Scaled Score, score 143 or ALEKS Math Placement Assessmnt, score 55 or Precalculus AP Exam (AP65), score 3 or College Algebra (CA), score 1.70 or Pre-Calculus 1 (PC1), score 1.70 or MATH 112- MATH 112 Functions and Algebraic Methods (shown above)
- MATH 157 Calculus with Applications to Business and Economics
requires MPT - Advanced - Scaled Score, score 148 or MATH 156 or MATH 114 or MATH 118 or Pre-Calculus 2 (PC2), score 2.30 or ALEKS Math Placement Assessmnt, score 65 or Pre-Calculus 1 (PC1), score 2.3 or Pre-Calculus (PC), score 2.3 or Precalculus AP Exam (AP65), score 4 or Calculus AB AP Exam (AP66), score 2 or Calculus BC AP Exam (AP68), score 3 or Calc AB Subscore AP Exm (AP69), score 2
- CSCI 141 Computer Programming I
- MATH 124 Calculus and Analytic Geometry I
requires MPT - Advanced - Scaled Score, score 153 or MATH 115 or MATH 118 or Precalculus AP Exam (AP65), score 5 or Calculus BC AP Exam (AP68), score 3 or Calculus AB AP Exam (AP66), score 2 or Calc AB Subscore AP Exm (AP69), score 2 or Pre-Calculus 2 (PC2), score 2.30 or ALEKS Math Placement Assessmnt, score 80 - MATH 125 Calculus and Analytic Geometry II
requires MATH 124 or MATH 134 or Calculus AB AP Exam (AP66), score 4 or Calculus BC AP Exam (AP68), score 3 or Calc AB Subscore AP Exm (AP69), score 4 - MATH 134 Calculus I Honors
requires MATH 115 (minimum grade A) or MATH 118 (minimum grade A) or Math Placement - Advanced 2, score 20 or Precalculus AP Exam (AP65), score 5 - MATH 135 Calculus II Honors
- MATH 138 Accelerated Calculus
requires Calculus AB AP Exam (AP66), score 4 or Calculus BC AP Exam (AP68), score 3 or Calc AB Subscore AP Exm (AP69), score 4 or (Calculus BC AP Exam (AP68), score 2 and Calc AB Subscore AP Exm (AP69), score 3)
- CSCI 145 Computer Programming and Linear Data Structures
- CSCI 301 Formal Languages and Functional Programming
requires CSCI 145- CSCI 145 Computer Programming and Linear Data Structures (shown above)
From Banner's catalog for Spring 2027. Banner lists only the requisites it enforces, so check the catalog entry too.
Required by (26)
CSCI 321, CSCI 330, CSCI 345, CSCI 347, CSCI 367, CSCI 380, CSCI 402, CSCI 405, CSCI 410, CSCI 415, CSCI 424, CSCI 426, CSCI 429, CSCI 430, CSCI 444, CSCI 450, CSCI 477, CSCI 479, CSCI 480, CSCI 482, CSCI 486, CSCI 497X, CSCI 511, CSCI 529, CSCI 582, DATA 471
What it leads to
Courses that list it as a prerequisite, then the courses that list those, 2 levels deep.
- CSCI 321 Game Programming
- CSCI 330 Database Systems
- CSCI 345 Object Oriented Design
- CSCI 347 Computer Organization II
- CSCI 367 Computer Networks I
- CSCI 415 Parallel Computation (shown above)
- CSCI 435 Cloud Computing
- CSCI 461 Computer Security (continues on its page)
- CSCI 467 Computer Networks II
- CSCI 497L Advanced Network Sys. Security
- CSCI 497U Cloud Computing Fundamentals
- CSCI 497Z Cloud Security
- CSCI 597 Operating System Internals
- CSCI 597A Computer Security
- CSCI 597L Advanced Network System Security
- CSCI 597U Cloud Computing Fundamentals
- CSCI 597Z Cloud Security
- CSCI 380 Numerical Computations
- CSCI 402 Symbolic Artificial Intelligence
- CSCI 405 Data Structures and Algorithms II
- CSCI 410 Programming Languages
- CSCI 415 Parallel Computation
- CSCI 424 Social Network Analysis
- CSCI 426 Principles of Human-Centered Technology Design
- CSCI 429 Usable Security & Privacy
- CSCI 430 Database Theory
- CSCI 530 Advanced Database Theory
- CSCI 444 Accessible Human-Centered Computing
- CSCI 450 Compiler Theory and Design
- CSCI 477 Data Mining
- CSCI 479 Spoken Language Processing
- CSCI 480 Computer Graphics
- CSCI 585 Image Processing
- CSCI 482 Computational Neuroscience
- CSCI 486 Privacy Engineering
- CSCI 497X Privacy Enhancing Technologies (PETs)
- CSCI 511 Analysis of Algorithms
- CSCI 529 Usable Security & Privacy
- CSCI 582 Computational Neuroscience
- DATA 471 Machine Learning
Syllabi and course websites
None listed yet.
Instructors
| Instructor | Sections | Terms |
|---|---|---|
| Jagodzinski, Filip | 8 | Spring 2021 to Fall 2024 |
| Ahmed, Shameem | 7 | Summer 2026 to Spring 2027 |
| Harris, Kameron | 7 | Winter 2021 to Winter 2026 |
| Hao, Qiang | 5 | Spring 2025 to Winter 2026 |
| Liu, Yudong | 5 | Winter 2021 to Winter 2024 |
| Nilles, Alex | 3 | Winter 2025 to Spring 2026 |
| Clauson, Aran | 2 | Spring 2023 to Spring 2024 |
| Fizzano, Perry | 2 | Winter 2022 to Fall 2022 |
| Gu, Xuhang | 2 | Winter 2027 |
| Sizemore, Logan | 1 | Winter 2024 |
Every offering in the listed terms (44 sections)
| Term | Sec | CRN | Type | Meets | Instructor | Enrolled | Delivery |
|---|---|---|---|---|---|---|---|
| Spring 2027 | 0 | 22397 | Lecture | MTWF 11:00am-11:50am · CF 225 M 2:00pm-3:50pm · CF 167 | Ahmed, Shameem | 0/20 | Face to Face Instruction |
| Spring 2027 | 0 | 23265 | Lecture | MTWF 11:00am-11:50am · CF 225 M 12:00pm-1:50pm · CF 167 | Ahmed, Shameem | 0/20 | Face to Face Instruction |
| Spring 2027 | 0 | 23266 | Lecture | R 8:00am-9:50am · CF 167 MTWF 2:00pm-2:50pm · CF 125 | Ahmed, Shameem | 0/20 | Face to Face Instruction |
| Spring 2027 | 0 | 23267 | Lecture | MTWF 2:00pm-2:50pm · CF 125 R 2:00pm-3:50pm · CF 162 | Ahmed, Shameem | 0/20 | Face to Face Instruction |
| Winter 2027 | 0 | 12482 | Lecture | T 10:00am-11:50am · CF 164 MTWF 12:00pm-12:50pm · CF 125 | Gu, Xuhang | 0/20 | Face to Face Instruction |
| Winter 2027 | 0 | 12483 | Lecture | T 8:00am-9:50am · CF 165 MTWF 12:00pm-12:50pm · CF 125 | Gu, Xuhang | 0/20 | Face to Face Instruction |
| Winter 2027 | 0 | 12897 | Lecture | MTWF 9:00am-9:50am · CF 226 R 10:00am-11:50am · CF 164 | Staff | 0/20 | Face to Face Instruction |
| Winter 2027 | 0 | 13406 | Lecture | R 8:00am-9:50am · CF 164 MTWF 9:00am-9:50am · CF 226 | Staff | 0/20 | Face to Face Instruction |
| Fall 2026 | 0 | 43573 | Lecture | W 8:00am-9:50am · CF 162 MTWF 12:00pm-12:50pm · CF 105 | Ahmed, Shameem | 20/20 | Face to Face Instruction |
| Fall 2026 | 0 | 43574 | Lecture | MTWF 12:00pm-12:50pm · CF 105 W 2:00pm-3:50pm · CF 165 | Ahmed, Shameem | 17/20 | Face to Face Instruction |
| Summer 2026 | N01 | 30702 | Lecture | MW 11:00am-12:45pm · CF 225 T 11:00am-12:50pm · CF 165 | Ahmed, Shameem | 9/25 | Face to Face Instruction |
| Spring 2026 | 0 Analysis of Algorithms and Data Structures I | 22858 | Lecture | MTWF 3:00pm-3:50pm · KB 307 | Nilles, Alex | 30/32 | Face to Face Instruction |
| Winter 2026 | 0 Analysis of Algorithms and Data Structures I | 12985 | Lecture | TR 10:00am-11:40am · CF 225 | Harris, Kameron | 17/35 | Face to Face Instruction |
| Winter 2026 | 0 Analysis of Algorithms and Data Structures I | 12986 | Lecture | TR 2:00pm-3:40pm · MH 103 | Hao, Qiang | 9/32 | Face to Face Instruction |
| Winter 2026 | 0 Analysis of Algorithms and Data Structures I | 13741 | Lecture | TR 12:00pm-1:40pm · CF 120 | Hao, Qiang | 30/32 | Face to Face Instruction |
| Fall 2025 | 0 Analysis of Algorithms and Data Structures I | 42722 | Lecture | TR 12:00pm-1:40pm · ES 413 | Hao, Qiang | 35/35 | Face to Face Instruction |
| Spring 2025 | 0 Analysis of Algorithms and Data Structures I | 23430 | Lecture | MTWF 10:00am-10:50am · CF 227 | Hao, Qiang | 32/32 | Face to Face Instruction |
| Spring 2025 | 0 Analysis of Algorithms and Data Structures I | 23431 | Lecture | MTWF 11:00am-11:50am · CF 227 | Hao, Qiang | 32/32 | Face to Face Instruction |
| Winter 2025 | 0 Analysis of Algorithms and Data Structures I | 13807 | Lecture | MTWF 10:00am-10:50am · CF 420 | Nilles, Alex | 38/35 | Face to Face Instruction |
| Winter 2025 | 0 Analysis of Algorithms and Data Structures I | 13808 | Lecture | MTWF 11:00am-11:50am · CF 025 | Nilles, Alex | 33/35 | Face to Face Instruction |
| Fall 2024 | 0 Analysis of Algorithms and Data Structures I | 43583 | Lecture | MTWF 9:00am-9:50am · CF 314 | Jagodzinski, Filip | 34/35 | Face to Face Instruction |
| Spring 2024 | 0 Analysis of Algorithms and Data Structures I | 21404 | Lecture | MTWF 12:00pm-12:50pm · CF 227 | Clauson, Aran | 22/35 | Face to Face Instruction |
| Spring 2024 | 0 Analysis of Algorithms and Data Structures I | 21463 | Lecture | TR 10:00am-11:40am · CF 316 | Harris, Kameron | 35/35 | Face to Face Instruction |
| Winter 2024 | 0 Analysis of Algorithms and Data Structures I | 11848 | Lecture | TR 10:00am-11:40am · AW 406 | Liu, Yudong | 21/35 | Face to Face Instruction |
| Winter 2024 | 0 Analysis of Algorithms and Data Structures I | 13092 | Lecture | TR 2:00pm-3:40pm · CF 314 | Liu, Yudong | 13/35 | Face to Face Instruction |
| Winter 2024 | 0 Analysis of Algorithms and Data Structures I | 13909 | Lecture | MTWF 2:00pm-2:50pm · CF 125 | Sizemore, Logan | 33/35 | Face to Face Instruction |
| Fall 2023 | 0 Analysis of Algorithms and Data Structures I | 40527 | Lecture | TR 10:00am-11:40am · CF 023 | Harris, Kameron | 36/35 | Face to Face Instruction |
| Summer 2023 | S01 Analysis of Algorithms and Data Structures I | 30774 | Lecture | M 10:00am-11:50am · AW 302 WF · ONLINE ASNC | Jagodzinski, Filip | 17/35 | Hybrid |
| Spring 2023 | 0 Analysis of Algorithms and Data Structures I | 21512 | Lecture | MTWF 9:00am-9:50am · CF 023 | Clauson, Aran | 35/35 | Face to Face Instruction |
| Winter 2023 | 0 Analysis of Algorithms and Data Structures I | 12026 | Lecture | MTWF 10:00am-10:50am · HH 253 | Jagodzinski, Filip | 34/35 | Face to Face Instruction |
| Winter 2023 | 0 Analysis of Algorithms and Data Structures I | 13793 | Lecture | MTWF 12:00pm-12:50pm · CF 105 | Jagodzinski, Filip | 35/35 | Face to Face Instruction |
| Fall 2022 | 0 Analysis of Algorithms and Data Structures I | 40547 | Lecture | MTWF 12:00pm-12:50pm · AW 406 | Fizzano, Perry | 35/35 | Face to Face Instruction |
| Fall 2022 | 0 Analysis of Algorithms and Data Structures I | 43156 | Lecture | MTWF 11:00am-11:50am · AW 406 | Harris, Kameron | 17/35 | Face to Face Instruction |
| Summer 2022 | S01 Analysis of Algorithms and Data Structures I | 31204 | Lecture | MTWR 12:00pm-1:20pm · CF 125 | Jagodzinski, Filip | 4/35 | Face to Face Instruction |
| Spring 2022 | 0 Analysis of Algorithms and Data Structures I | 21644 | Lecture | MTWF 9:00am-9:50am · CF 225 | Harris, Kameron | 30/35 | Face to Face Instruction |
| Spring 2022 | 0 Analysis of Algorithms and Data Structures I | 21722 | Lecture | MTWF 11:00am-11:50am · AW 303 | Jagodzinski, Filip | 36/35 | Face to Face Instruction |
| Winter 2022 | 0 Analysis of Algorithms and Data Structures I | 12269 | Lecture | MTWF 12:00pm-12:50pm · CF 115 | Fizzano, Perry | 33/35 | Face to Face Instruction |
| Fall 2021 | 0 Analysis of Algorithms and Data Structures I | 40615 | Lecture | MTWF 2:00pm-2:50pm · CF 115 | Liu, Yudong | 33/35 | Face to Face Instruction |
| Fall 2021 | 0 Analysis of Algorithms and Data Structures I | 44183 | Lecture | MTWF 10:00am-10:50am · CF 316 | Liu, Yudong | 20/35 | Face to Face Instruction |
| Summer 2021 | S08 Analysis of Algorithms and Data Structures I | 30455 | Lecture | TBA · REMOTE ASNC | Jagodzinski, Filip | 21/35 | Face to Face Instruction |
| Spring 2021 | 0 Analysis of Algorithms and Data Structures I | 21780 | Lecture | MTWF 9:00am-9:50am · REMOTE SYNC | Harris, Kameron | 36/35 | Face to Face Instruction |
| Spring 2021 | 0 Analysis of Algorithms and Data Structures I | 21894 | Lecture | MTWF 1:00pm-1:50pm · REMOTE SYNC | Jagodzinski, Filip | 35/33 | Face to Face Instruction |
| Winter 2021 | 0 Analysis of Algorithms and Data Structures I | 12516 | Lecture | MTWF 2:00pm-2:50pm · REMOTE SYNC | Liu, Yudong | 36/35 | Face to Face Instruction |
| Winter 2021 | 0 Analysis of Algorithms and Data Structures I | 13587 | Lecture | MTWF 9:00am-9:50am · REMOTE SYNC | Harris, Kameron | 34/35 | Face to Face Instruction |