All of Programming, by Andrew Hilton and Anne Bracy, provides a platform for instructors to design courses which properly place their focus on the core fundamentals of programming, or to let a motivated student learn these skills independently. A student who masters the material in this book will not just be a competent C programmer, but also a competent programmer.

The book is exclusively an ebook from
Google Play. It has approximately 700 pages of text and 7.5 hours of embedded videos, so we strongly urge you to read it on an application that supports video viewing (for example, Adobe Reader).

The title is a tongue-in-cheek nod to Larry Wasserman’s
All of Statistics.

Intel Corporation (2005-2009)

I worked on a variety of research topics as a member of the Microarchitecture Research Lab at Intel, including: hardware support for thread synchronization, power-performance efficiency of current and future Intel designs, emulated SoC prototypes, statistical tools for design space exploration, and media workload characterization and optimization.

One of the best things about my job was working with talented interns. I had the pleasure of mentoring five interns: Samantika Subramaniam, Henry Wong, Bogdan Romanescu, Ioana Burcea, and Sung-Boem Park. Intern projects included software coherence protocols, the design of a heterogeneous (tightly coupled CPU/GPU) CMP, the estimation and use of load criticality, cache insertion and replacement policies, and bug localization in post-silicon validation.

Sung-Boem Park, Anne Bracy, Hong Wang, Subhasish Mitra.
BLoG: Post-Silicon Bug Localization in Processors using Bug Localization Graphs. Proceedings of 47th Design Automation Conference (DAC), June 2010.
Bogdan F. Romanescu, Alvin R. Lebeck, Daniel J. Sorin, Anne Bracy. UNified Instruction/Translation/Data (UNITD) Coherence: One Protocol to Rule Them All. Proceedings of 16th International Symposium on High Performance Computer Architecture (HPCA), January, 2010.
Samantika Subramaniam, Anne Bracy, Hong Wang, Gabriel H. Loh. Criticality-Based Optimizations for Ef´Čücient Load Processing. Proceedings of 15th International Symposium on High Performance Computer Architecture (HPCA), Feburary, 2009.
Henry Wong, Anne Bracy, Ethan Schuchman, Tor M. Aamodt, Jamison D. Collins, Perry H. Wang, Gautham Chinya, Ankur Khandelwal Groen, Hong Jiang, Hong Wang. Pangaea: A Tightly-Coupled IA32 Heterogeneous Chip Multiprocessor. Proceedings of 17th International Conference on Parallel Architectures and Compilations Techniques (PACT), October 2008.
Anne Bracy, Kshitij Doshi, and Quinn Jacobson. Disintermediated Active Communication. Computer Architecture Letters (CAL), Volume 5, 2006.

University of Pennsylvania (2001-2008)

My dissertation describes and evaluates a mini-graph architecture. Mini-graph processing is a novel form of instruction fusion--the grouping of multiple operations into a single processing unit--that increases the instruction-per-cycle (IPC) throughput of dynamically scheduled superscalar processors in an efficient way. Mini-graph processing improves IPC by amplifying the capacities and bandwidths of structures and stages that perform instruction bookkeeping and inter-operation register communication. A superscalar processor enhanced with mini-graphs can match the performance otherwise achieved with a wider, deeper superscalar processor.

My doctoral advisor was
Amir Roth and the chair of my dissertation committee was Milo Martin.

Anne Weinberger Bracy.
Mini-Graph Processing. Dissertation, University of Pennsylvania, December 2008.
Anne Bracy and Amir Roth. Encoding Mini-Graphs with Handle-Prefix Outlining. CIS Technical Report MS-CIS-08-27 (PENN), Aug. 2008.
Anne Bracy and Amir Roth. Serialization-Aware Mini-Graphs: Performance with Fewer Resources. Proceedings of the 39th International Symposium on Microarchitecture (MICRO), Dec. 11-13, 2006.
Anne Bracy and Amir Roth. Dataflow Mini-Graphs: Amplifying Superscalar Capacity and Bandwidth. Proceedings of the 37th International Symposium on Microarchitecture (MICRO), December 2004.
Vlad Petric, Anne Bracy, and Amir Roth. Three Extensions To Register Integration. Proceedings of the 35th International Symposium on Microarchitecture (MICRO), Nov. 20-22, 2002

Stanford University (-2001)

As an undergraduate and masters student, I was interested in diagrammatic reasoning and natural language processing. Twice, I worked at the Center for the Study of Language and Information. First, I was a member of the Hyperproof Lab (with David Barker-Plummer and John Etchemendy), developing educational software to teach logic. Next, I was a member of the Semantics Lab (with Oliver Lemon and Stanley Peters), creating a multi-modal dialogue system.
Oliver Lemon, Anne Bracy, Alexander Gruenstein, and Stanley Peters. An Information State Approach in a Multi-modal Dialogue System for Human-Robot Conversation. Chapter in Perspectives on Dialogue in the New Millennium, eds. Kuhnlein, Reiser, Zeevat, 2003.
Oliver Lemon, Anne Bracy, Alexander Gruenstein, and Stanley Peters.
Information States in a Multi-modal Dialogue System for Human-Robot Conversation. Proceedings of 5th International Workshop on Formal Semantics and Pragmatics of Dialogue (Bi-Dialog), 2001.
Oliver Lemon, Anne Bracy, Alexander Gruenstein, and Stanley Peters. A Multi-Modal Dialogue System for Human-Robot Conversation, Proceedings of North American Chapter of the Association for Computational Linguistics (NAACL) 2001.
Oliver Lemon, Anne Bracy, Alexander Gruenstein, and Stanley Peters. The WITAS Multi-Modal Dialogue System I., Proceedings of European Conference on Speech Communication and Technology (EuroSpeech) 2001.