Atif M. Memon is an Associate Professor at the Department of Computer Science, University of Maryland, where he founded and heads the Event Driven Software Lab (EDSL). Researchers at the EDSL study issues of design, development, quality assurance, and maintenance of such software applications. He designed and developed the model-based GUI testing software GUITAR, which operates on Android, iPhone, Java Swing, .NET, Java SWT, UNO, MS Windows, and web systems, and leverages a resource cloud for test automation. He has published over 90 research articles on the topic of event driven systems, software testing, and software engineering. He is the founder of the International Workshop on TESTing Techniques & Experimentation Benchmarks for Event-Driven Software (TESTBEDS). He also helped develop the workshop on Experimental Evaluation of Software and Systems in Computer Science (EVALUATE).
He is the Serial Editor of Advances in Computers, published by Elsevier. This series, since its first volume in 1960 and now the oldest series still being published, covers new developments in computer technology. He is an elected member of the Steering Committee of the International Conference on Software Testing, Verification and Validation ICST, the largest conference on software testing. He serves on various editorial boards, including that of the Journal of Software Testing, Verification, and Reliability. He has served on numerous National Science Foundation panels and program committees, including ICSE, FSE, ICST, WWW, ASE, ICSM, and WCRE. He is currently serving on a National Academy of Sciences panel as an expert in the area of Computer Science and Information Technology, for the Pakistan-U.S. Science and Technology Cooperative Program, sponsored by United States Agency for International Development (USAID).
He has a joint appointment in the University's Institute for Advanced Computer Studies (UMIACS). He received his Ph.D. from the University of Pittsburgh in Computer Science in 2001, and started at the University of Maryland soon thereafter. In 2007 he was a visiting scholar at the Institute of Software at the Chinese Academy of Sciences, and a visiting researcher at Tata Research Development and Design Centre.
Topics include:The pros and cons of braced initialization, noexcept specifications, perfect forwarding, and smart pointer make functionsThe relationships among std::move, std::forward, rvalue references, and universal referencesTechniques for writing clear, correct, effective lambda expressionsHow std::atomic differs from volatile, how each should be used, and how they relate to C++'s concurrency APIHow best practices in "old" C++ programming (i.e., C++98) require revision for software development in modern C++
Effective Modern C++ follows the proven guideline-based, example-driven format of Scott Meyers' earlier books, but covers entirely new material.
"After I learned the C++ basics, I then learned how to use C++ in production code from Meyer's series of Effective C++ books. Effective Modern C++ is the most important how-to book for advice on key guidelines, styles, and idioms to use modern C++ effectively and well. Don't own it yet? Buy this one. Now".
-- Herb Sutter, Chair of ISO C++ Standards Committee and C++ Software Architect at Microsoft
Prolific hacker and author Simon Monk also teaches basic principles to help you use new technologies with Raspberry Pi as its ecosystem continues to develop. This cookbook is ideal for programmers and hobbyists familiar with the Pi through resources, including Getting Started with Raspberry Pi (O’Reilly). Python and other code examples from the book are available on GitHub.Set up your Raspberry Pi and connect to a networkWork with its Linux-based operating systemProgram Raspberry Pi with PythonGive your Pi "eyes" with computer visionControl hardware through the GPIO connectorUse Raspberry Pi to run different types of motorsWork with switches, keypads, and other digital inputsUse sensors to measure temperature, light, and distanceConnect to IoT devices in various waysCreate dynamic projects with Arduino
Inside, you’ll learn about:Interaction design and physical computing The Arduino hardware and software development environment Basics of electricity and electronics Prototyping on a solderless breadboard Drawing a schematic diagram
Getting started with Arduino is a snap. To use the introductory examples in this guide, all you need an Arduino Uno or earlier model, along with USB A-B cable and an LED. The easy-to-use Arduino development environment is free to download.
Join hundreds of thousands of hobbyists who have discovered this incredible (and educational) platform. Written by the co-founder of the Arduino project, Getting Started with Arduino gets you in on all the fun!
You don’t need to have mastered Arduino or programming to get started. Updated for the Arduino 1.0 release, the recipes in this second edition include practical examples and guidance to help you begin, expand, and enhance your projects right away—whether you’re an artist, designer, hobbyist, student, or engineer.Get up to speed on the Arduino board and essential software concepts quicklyLearn basic techniques for reading digital and analog signalsUse Arduino with a variety of popular input devices and sensorsDrive visual displays, generate sound, and control several types of motorsInteract with devices that use remote controls, including TVs and appliancesLearn techniques for handling time delays and time measurementApply advanced coding and memory handling techniques
The book provides contributors with a medium in which they can explore their subjects in greater depth and breadth than journal articles typically allow.
The articles included in this book will become standard references, with lasting value in this rapidly expanding field.Presents detailed coverage of recent innovations in computer hardware, software, theory, design, and applicationsIncludes in-depth surveys and tutorials on new computer technology pertaining to computing: combinatorial testing, constraint-based testing, and black-box testingWritten by well-known authors and researchers in the fieldIncludes extensive bibliographies with most chaptersPresents volumes devoted to single themes or subfields of computer science