Computer Science

Software Engineering

Software Engineering

Software engineering is the application of engineering principles to the design, development, and maintenance of software systems. Common subtopics include Integrated Development Environment (IDE), Version Control, Testing, Debugging etc. It is an essential field for anyone interested in pursuing a career in software development or a related field.

Prerequisites

Software engineereing is a broad topic, but it usually requires students to have backgrounds in Computer Programming and Data Structures and Algorithms.

CS 190: Software Design Studio

Stanford University

Winter 2023

This course aims to teach the art of software design by breaking down complex systems into manageable classes. It covers concepts like information hiding, API design, and error handling. Enrolment is application-based, and prior C++ experience is a must. The curriculum encourages simplicity in system building for easy implementation and maintenance. It is based on "A Philosophy of Software Design" book.

No concepts data

+ 6 more concepts

CSE 340 Interaction Programming

University of Washington

Spring 2022

This course focuses on the design and programming of interactive systems, exploring various programming paradigms, event handling, and accessibility. It requires prior knowledge of Java and familiarity with data structures. This course helps to develop user-friendly interfaces and study existing interfaces. Although the platform used is Android, it's not strictly an Android programming course.

No concepts data

+ 27 more concepts

CSE 331 Software Design & Implementation

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.

No concepts data

+ 28 more concepts

15-414 Bug Catching: Automated Program Verification

Carnegie Mellon University

Spring 2022

This course is about software verification, with the goal of writing bug-free code. Students will learn to formalize program correctness, write verified code, and use automated tools for verification. It explores the principles behind verification tools, logical specifications, and deductive reasoning. Previous knowledge in program correctness reasoning is beneficial.

No concepts data

+ 22 more concepts