Textbooks
This class is a survey of many sub-areas of software engineering, and an unfortunate result of this is that there is no single textbook that is appropriate for this class. However, there are several texts that have chapters that are quite relevant, and most of these books are available for free for Northeastern students through O’Reilly’s Safari Books online. To create your account, first visit this page: https://www.safaribooksonline.com/library/view/temporary-access/ and then select “Not Listed? Click Here” for institution, then enter your @northeastern.edu email address. After this first account creation, you’ll be able to log in directly to Safari Books Online with your @northeastern.edu email and no need for 2FA (hooray!). The schedule will list which chapters of which texts are relevant for each lecture:
- “Software Engineering at Google” By Titus Winters, Tom Manshreck and Hyrum Wright
This book is effectively a manual that describes the software engineering practices at Google, and the rationale behind those practices - “Effective Software Testing: A Developer’s Guide” by Mauricio Aniche (Not on Safari)
A focused discussion of software testing concepts, with concrete examples using popular Java testing frameworks. - “The Programmer’s Brain” by Felienne Hermans (Not on Safari)
A survey of research on programming and cognition, covering topics such as how to read code more effectively and how to write code that is easier to read and share. - “Fundamentals of Software Architecture” By Mark Richards and Neal Ford
An overview of software architectural patterns and their role in successful software projects. - “Refactoring: Improving the Design of Existing Code” By Martin Fowler
The definitive list of “code smells” that should be avoiding in programming, matched up with “refactoring” techniques to improve that code - Design Patterns: Elements of Reusable Object-Oriented Software (1994) This book is quite dated, but it is a foundational text for object-oriented design. It is available from many sources. You could look it up.
- Freeman & Robson Head First Design Patterns, 2nd Edition This should be available free to you with your student O’Reilly subscription.
- “Learn React with TypeScript 3” by Carl Rippon
A solid reference for React, describing how to get started, plus more advanced features like React’s Router and testing using Jest - “Programming TypeScript” by Boris Cherny
A useful introduction to TypeScript, written assuming familiarity with programming in languages like Java, C# or python.