CMPSC 132Programming and Computation II: Data Structures
This course builds upon the foundations of programming and computation by introducing and studying the data structures and programming language features that support the design and construction of large-scale software systems. It introduces the foundations of object-oriented programming, the design and analysis of efficient algorithms using important data structures, and programming techniques that support reusable and modular program components, including data abstraction, polymorphism, and higher-order functions. Topics from object-oriented programming include classes, objects, inheritance, methods, message passing, static and dynamic type checking. These topics form the core of most object-oriented languages and provide a foundation for learning more advanced language topics. Data structures capture the common organization of many kinds of data arising in the design of efficient solutions to computational problems. Specific data structures covered include stacks, queues, trees, graphs and linked lists. The design and analysis of efficient algorithms using these data structures provide a foundation for the study of computing, where understanding the complexity of a problem and the availability of efficient solutions are essential skills. Finally, topics including higher-order functional programming, data abstraction and parametric polymorphism, as well as principles from object-oriented programming, come together to support the design and implementation of modular, reusable and robust code.
Prerequisites
You need:
Where it sits in degree plans
Suggested plans most often put it in Year 1 · Spring (13 programs).
Required in (3)
- Artificial Intelligence Methods and Applications, B.S. (Capital)
- Artificial Intelligence Methods and Applications, B.S. (Information Sciences and Technology)
- Social Data Analytics, B.S.
One of the options in (24)
- Artificial Intelligence Engineering, B.S.
- Computer Engineering, B.S. (Engineering)
- Computer Science, B.S. (Engineering)
- Computer Science, Minor (Capital)
- Cybersecurity Analytics and Operations, B.S. (Abington)
- Cybersecurity Analytics and Operations, B.S. (Altoona)
- Cybersecurity Analytics and Operations, B.S. (Berks)
- Cybersecurity Analytics and Operations, B.S. (Capital)
- Cybersecurity Analytics and Operations, B.S. (Information Sciences and Technology)
- Cybersecurity Analytics and Operations, B.S. (University College)
- Data Sciences, B.S. (Abington)
- Data Sciences, B.S. (Engineering)
- and 12 more
Courses that list CMPSC 132 as a prerequisite (20)
- A-I 305 Algorithmic Foundations for Artificial Intelligence
- A-I 370 Problem Formulation and Automated Problem Solving
- CMPSC 221 Object Oriented Programming with Web-Based Applications
- CMPSC 222 Advanced Data Structures and Algorithms in C
- CMPSC 263 Blockchain and Modern Web Development
- CMPSC 330 Advanced Programming in C++
- CMPSC 410 Programming Models for Big Data
- CMPSC 445 Applied Machine Learning in Data Science
- CMPSC 448 Machine Learning and Algorithmic AI
- CMPSC 462 Data Structures
- CMPSC 465 Data Structures and Algorithms
- DS 220 Data Management for Data Sciences
- DS 305 Algorithmic Methods and Tools
- DS 310 Machine Learning for Data Analytics
- DS 330 Visual Analytics for Data Sciences
- DS 410 Programming Models for Big Data
- HCDD 331 Foundations of Human-Centered Design
- IST 256 Programming for the Web
- ITECH 461 Advanced Database Management
- MATH 225 Mathematical Foundations for Machine Learning