Abstraction is a fundamental concept in computer science and software development that involves preserving relevant information and disregarding irrelevant information. It is closely related to modeling, theory, design, and mathematics, and can be applied to real-world objects, computational systems, and programming languages.
University of Washington
Spring 2022
This course aims to improve students' software development skills, focusing on building correct, scalable, and easy-to-understand software. It relies on a solid understanding of Java and the concepts covered in CSE 143. Students will learn about software design principles, modern programming languages, and software tools. It covers software testing, type systems, design patterns, and more.
UC Berkeley
Fall 2022
A course that emphasizes software abstraction, equipping students with the skills to manage program complexity. Students will primarily use Python, with additional exposure to Scheme and SQL.
Stanford University
Autumn 2022
This course is designed for those with prior programming experience. It focuses on advanced programming methodologies in Python and JavaScript, and covers topics from object-oriented design principles to building web applications.
University of Washington
Summer 2022
This introductory course teaches programming using Java. Students learn computational problem-solving techniques, functional decomposition, control structures, data abstraction, and code documentation. No prior programming experience is required.