The Tao of Computing, Second Edition


Book Description

Describing both the practical details of interest to students and the high-level concepts and abstractions highlighted by faculty, The Tao of Computing, Second Edition presents a comprehensive introduction to computers and computer technology. This edition updates its popular predecessor with new research exercises and expanded discussion questions. It uses a question-and-answer format to provide thoughtful answers to the many practical questions that students have about computing. Among the questions answered, the book explains: What capabilities computers have in helping people solve problems and what limitations need to be considered Why machines act the way they do What is involved in getting computers to interact with networks The book offers a down-to-earth overview of fundamental computer fluency topics, from the basics of how a computer is organized and an overview of operating systems to a description of how the Internet works. The second edition describes new technological advances including social media applications and RSS feeds.




The Tao of Computing


Book Description

Describing both the practical details of interest to students and the high-level concepts and abstractions highlighted by faculty, The Tao of Computing, Second Edition presents a comprehensive introduction to computers and computer technology. This edition updates its popular predecessor with new research exercises and expanded discussion questions




Object-Orientation, Abstraction, and Data Structures Using Scala, Second Edition


Book Description

Praise for the first edition: "The well-written, comprehensive book...[is] aiming to become a de facto reference for the language and its features and capabilities. The pace is appropriate for beginners; programming concepts are introduced progressively through a range of examples and then used as tools for building applications in various domains, including sophisticated data structures and algorithms...Highly recommended. Students of all levels, faculty, and professionals/practitioners.? —D. Papamichail, University of Miami in CHOICE Magazine ? Mark Lewis’ Introduction to the Art of Programming Using Scala?was the first textbook to use Scala for introductory CS courses. Fully revised and expanded, the new edition of this popular text has been divided into two books. Object-Orientation, Abstraction, and Data Structures Using Scala, Second Edition is intended to be used as a textbook for a second or third semester course in Computer Science. The Scala programming language provides powerful constructs for expressing both object orientation and abstraction. This book provides students with these tools of object orientation to help them structure solutions to larger, more complex problems, and to expand on their knowledge of abstraction so that they can make their code more powerful and flexible. The book also illustrates key concepts through the creation of data structures, showing how data structures can be written, and the strengths and weaknesses of each one. Libraries that provide the functionality needed to do real programming are also explored in the text, including GUIs, multithreading, and networking. The book is filled with end-of-chapter projects and exercises, and the authors have also posted a number of different supplements on the book website. Video lectures for each chapter in the book are also available on YouTube. The videos show construction of code from the ground up and this type of "live coding" is invaluable for learning to program, as it allows students into the mind of a more experienced programmer, where they can see the thought processes associated with the development of the code. About the Authors Mark Lewis is an Associate Professor at Trinity University. He teaches a number of different courses, spanning from first semester introductory courses to advanced seminars. His research interests included simulations and modeling, programming languages, and numerical modeling of rings around planets with nearby moons.? Lisa Lacher is an Assistant Professor at the University of Houston, Clear Lake with over 25 years of professional software development experience. She teaches a number of different courses spanning from first semester introductory courses to graduate level courses. Her research interests include Computer Science Education, Agile Software Development, Human Computer Interaction and Usability Engineering, as well as Measurement and Empirical Software Engineering.




Discovering Computer Science


Book Description

"Havill's problem-driven approach introduces algorithmic concepts in context and motivates students with a wide range of interests and backgrounds." -- Janet Davis , Associate Professor and Microsoft Chair of Computer Science, Whitman College "This book looks really great and takes exactly the approach I think should be used for a CS 1 course. I think it really fills a need in the textbook landscape." -- Marie desJardins, Dean of the College of Organizational, Computational, and Information Sciences, Simmons University "Discovering Computer Science is a refreshing departure from introductory programming texts, offering students a much more sincere introduction to the breadth and complexity of this ever-growing field." -- James Deverick, Senior Lecturer, The College of William and Mary "This unique introduction to the science of computing guides students through broad and universal approaches to problem solving in a variety of contexts and their ultimate implementation as computer programs." -- Daniel Kaplan, DeWitt Wallace Professor, Macalester College Discovering Computer Science: Interdisciplinary Problems, Principles, and Python Programming is a problem-oriented introduction to computational problem solving and programming in Python, appropriate for a first course for computer science majors, a more targeted disciplinary computing course or, at a slower pace, any introductory computer science course for a general audience. Realizing that an organization around language features only resonates with a narrow audience, this textbook instead connects programming to students’ prior interests using a range of authentic problems from the natural and social sciences and the digital humanities. The presentation begins with an introduction to the problem-solving process, contextualizing programming as an essential component. Then, as the book progresses, each chapter guides students through solutions to increasingly complex problems, using a spiral approach to introduce Python language features. The text also places programming in the context of fundamental computer science principles, such as abstraction, efficiency, testing, and algorithmic techniques, offering glimpses of topics that are traditionally put off until later courses. This book contains 30 well-developed independent projects that encourage students to explore questions across disciplinary boundaries, over 750 homework exercises, and 300 integrated reflection questions engage students in problem solving and active reading. The accompanying website — https://www.discoveringcs.net — includes more advanced content, solutions to selected exercises, sample code and data files, and pointers for further exploration.




Information Systems


Book Description

Most information systems textbooks overwhelm business students with overly technical information they may not need in their careers. This textbook takes a new approach to the required information systems course for business majors. For each topic covered, the text highlights key "Take-Aways" that alert students to material they will need to remember during their careers. Sections titled "Where You Fit In" and "Why This Chapter Matters" explain how the topics being covered will impact students on the job. Review questions, discussion questions, and summaries are also included. This second edition is updated to include new technology, along with a new running case study. Key features: Single-mindedly for business students who are not technical specialists Doesn’t try to prepare IS professionals; other courses will do that Stresses the enabling technologies and application areas that matter the most today Based on the author’s real-world experience Up to date regarding technology and tomorrow’s business needs This is the book the author—and, more importantly, his students—wishes he had when he started teaching. Dr. Mallach holds degrees in engineering from Princeton and MIT, and in business from Boston University. He worked in the computer industry for two decades, as Director of Strategic Planning for a major computer firm and as co-founder/CEO of a computer marketing consulting firm. He taught information systems in the University of Massachusetts (Lowell and Dartmouth) business schools for 18 years, then at Rhode Island College following his retirement. He consults in industry and serves as Webmaster for his community, in between hiking and travel with his wife.




Cybersecurity


Book Description

Cybersecurity: A Practical Engineering Approach introduces the implementation of a secure cyber architecture, beginning with the identification of security risks. It then builds solutions to mitigate risks by considering the technological justification of the solutions as well as their efficiency. The process follows an engineering process model. Each module builds on a subset of the risks, discussing the knowledge necessary to approach a solution, followed by the security control architecture design and the implementation. The modular approach allows students to focus on more manageable problems, making the learning process simpler and more attractive.




Teaching Computing


Book Description

Teaching can be intimidating for beginning faculty. Some graduate schools and some computing faculty provide guidance and mentoring, but many do not. Often, a new faculty member is assigned to teach a course, with little guidance, input, or feedback. Teaching Computing: A Practitioner’s Perspective addresses such challenges by providing a solid resource for both new and experienced computing faculty. The book serves as a practical, easy-to-use resource, covering a wide range of topics in a collection of focused down-to-earth chapters. Based on the authors’ extensive teaching experience and his teaching-oriented columns that span 20 years, and informed by computing-education research, the book provides numerous elements that are designed to connect with teaching practitioners, including: A wide range of teaching topics and basic elements of teaching, including tips and techniques Practical tone; the book serves as a down-to-earth practitioners’ guide Short, focused chapters Coherent and convenient organization Mix of general educational perspectives and computing-specific elements Connections between teaching in general and teaching computing Both historical and contemporary perspectives This book presents practical approaches, tips, and techniques that provide a strong starting place for new computing faculty and perspectives for reflection by seasoned faculty wishing to freshen their own teaching.




Introduction to Programming and Problem-Solving Using Scala


Book Description

Praise for the first edition: "The well-written, comprehensive book...[is] aiming to become a de facto reference for the language and its features and capabilities. The pace is appropriate for beginners; programming concepts are introduced progressively through a range of examples and then used as tools for building applications in various domains, including sophisticated data structures and algorithms...Highly recommended. Students of all levels, faculty, and professionals/practitioners.—D. Papamichail, University of Miami in CHOICE Magazine Mark Lewis’ Introduction to the Art of Programming Using Scala was the first textbook to use Scala for introductory CS courses. Fully revised and expanded, the new edition of this popular text has been divided into two books. Introduction to Programming and Problem-Solving Using Scala is designed to be used in first semester college classrooms to teach students beginning programming with Scala. The book focuses on the key topics students need to know in an introductory course, while also highlighting the features that make Scala a great programming language to learn. The book is filled with end-of-chapter projects and exercises, and the authors have also posted a number of different supplements on the book website. Video lectures for each chapter in the book are also available on YouTube. The videos show construction of code from the ground up and this type of "live coding" is invaluable for learning to program, as it allows students into the mind of a more experienced programmer, where they can see the thought processes associated with the development of the code. About the Authors Mark Lewis is a Professor at Trinity University. He teaches a number of different courses, spanning from first semester introductory courses to advanced seminars. His research interests included simulations and modeling, programming languages, and numerical modeling of rings around planets with nearby moons. Lisa Lacher is an Assistant Professor at the University of Houston, Clear Lake with over 25 years of professional software development experience. She teaches a number of different courses spanning from first semester introductory courses to graduate level courses. Her research interests include Computer Science Education, Agile Software Development, Human Computer Interaction and Usability Engineering, as well as Measurement and Empirical Software Engineering.




Explorations in Computing


Book Description

An Active Learning Approach to Teaching the Main Ideas in Computing Explorations in Computing: An Introduction to Computer Science and Python Programming teaches computer science students how to use programming skills to explore fundamental concepts and computational approaches to solving problems. Tbook gives beginning students an introduction to




Computer Systems Architecture


Book Description

Computer Systems Architecture provides IT professionals and students with the necessary understanding of computer hardware. It addresses the ongoing issues related to computer hardware and discusses the solutions supplied by the industry. The book describes trends in computing solutions that led to the current available infrastructures, tracing the initial need for computers to recent concepts such as the Internet of Things. It covers computers’ data representation, explains how computer architecture and its underlying meaning changed over the years, and examines the implementations and performance enhancements of the central processing unit (CPU). It then discusses the organization, hierarchy, and performance considerations of computer memory as applied by the operating system and illustrates how cache memory significantly improves performance. The author proceeds to explore the bus system, algorithms for ensuring data integrity, input and output (I/O) components, methods for performing I/O, various aspects relevant to software engineering, and nonvolatile storage devices, such as hard drives and technologies for enhancing performance and reliability. He also describes virtualization and cloud computing and the emergence of software-based systems’ architectures. Accessible to software engineers and developers as well as students in IT disciplines, this book enhances readers’ understanding of the hardware infrastructure used in software engineering projects. It enables readers to better optimize system usage by focusing on the principles used in hardware systems design and the methods for enhancing performance.