Textbooks

hfsd_cover

There are two required textbooks for 5828 this semester.

Pilone and Miles's book "Head First Software Development" is another entry in O'Reilly's excellent set of Head First books. We will use this book to introduce the basic concepts and practices of modern software development including life cycles, planning, requirements, design, development, testing, and configuration management. I will supplement this material with material from other "more academic" sources such as Fred Brook's No Silver Bullet article and past textbooks used from previous versions of this class. Between our textbook and this other material, you will gain a comprehensive look at the software engineering field both past and present.

art_of_concurrency

The Art of Concurrency: A Thread Monkey's Guide to Writing Parallel Applications by Clay Breshears presents a systematic approach to the design and implementation of concurrent software systems. In particular, it presents a methodology for determining whether a single-threaded algorithm can be converted into an algorithm that makes use of concurrency and provides steps for making that transformation if so. This techniques in this book will be supplemented by information contained in the Magee and Kramer book cited below; in addition, we will be reviewing the support for concurrency in a number of programming languages including C, C++, Java, Python, Ruby, Scala, Go and Clojure.

concurrency

In addition, I will also be presenting material from the following book:

Magee and Kramer's book "Concurrency: State Models & Java Programming" is in its second edition and presents a model-based approach to designing and implementing multi-threaded systems. It shows students the utility of software models and how such models can be implemented. Finally, it provides software that allows us to construct, analyze, and visualize models of concurrent behavior for multi-threaded systems. Students will get a chance to use this software to iteratively construct software models of concurrent systems as well as to model the concurrent behavior of the systems they construct for their semester projects.

Note: You do not have to obtain a copy of this book.

© Kenneth M. Anderson, 2010.