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 - “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.