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.
Software engineereing is a broad topic, but it usually requires students to have backgrounds in Computer Programming and Data Structures and Algorithms.
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 conceptsUniversity 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 conceptsUniversity 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 conceptsCarnegie 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