Computer Engineering for Babies


Book Description

An introduction to computer engineering for babies. Learn basic logic gates with hands on examples of buttons and an output LED.




Computer Engineering


Book Description

Computer Engineering: A DEC View of Hardware Systems Design focuses on the principles, progress, and concepts in the design of hardware systems. The selection first elaborates on the seven views of computer systems, technology progress in logic and memories, and packaging and manufacturing. Concerns cover power supplies, DEC computer packaging generations, general packaging, semiconductor logic technology, memory technology, measuring (and creating) technology progress, structural levels of a computer system, and packaging levels-of -integration. The manuscript then examines transistor circuitry in the Lincoln TX-2, digital modules, PDP-1 and other 18-bit computers, PDP-8 and other 12-bit computers, and structural levels of the PDP-8. The text takes a look at cache memories for PDP-11 family computers, buses, DEC LSI-11, and design decisions for the PDP-11/60 mid-range minicomputer. Topics include reliability and maintainability, price/performance balance, advances in memory technology, synchronization of data transfers, error control strategies, PDP-11/45, PDP-11/20, and cache organization. The selection is a fine reference for practicing computer designers, users, programmers, designers of peripherals and memories, and students of computer engineering and computer science.




Modern Software Engineering


Book Description

Improve Your Creativity, Effectiveness, and Ultimately, Your Code In Modern Software Engineering, continuous delivery pioneer David Farley helps software professionals think about their work more effectively, manage it more successfully, and genuinely improve the quality of their applications, their lives, and the lives of their colleagues. Writing for programmers, managers, and technical leads at all levels of experience, Farley illuminates durable principles at the heart of effective software development. He distills the discipline into two core exercises: learning and exploration and managing complexity. For each, he defines principles that can help you improve everything from your mindset to the quality of your code, and describes approaches proven to promote success. Farley's ideas and techniques cohere into a unified, scientific, and foundational approach to solving practical software development problems within realistic economic constraints. This general, durable, and pervasive approach to software engineering can help you solve problems you haven't encountered yet, using today's technologies and tomorrow's. It offers you deeper insight into what you do every day, helping you create better software, faster, with more pleasure and personal fulfillment. Clarify what you're trying to accomplish Choose your tools based on sensible criteria Organize work and systems to facilitate continuing incremental progress Evaluate your progress toward thriving systems, not just more "legacy code" Gain more value from experimentation and empiricism Stay in control as systems grow more complex Achieve rigor without too much rigidity Learn from history and experience Distinguish "good" new software development ideas from "bad" ones Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.




Design for Electrical and Computer Engineers


Book Description

This book is written for students and teachers engaged in electrical and computer engineering (ECE) design projects, primarily in the senior year. It guides students and faculty through the steps necessary for the successful execution of design projects. The objective of the text is to provide a treatment of the design process in ECE with a sound academic basis that is integrated with practical application. It has a strong guiding vision -- that a solid understanding of the Design Process, Design Tools, and the right mix of Professional Skills are critical for project and career success. This text is unique in providing a comprehensive design treatment for ECE.




Software Engineering at Google


Book Description

Today, software engineers need to know not only how to program effectively but also how to develop proper engineering practices to make their codebase sustainable and healthy. This book emphasizes this difference between programming and software engineering. How can software engineers manage a living codebase that evolves and responds to changing requirements and demands over the length of its life? Based on their experience at Google, software engineers Titus Winters and Hyrum Wright, along with technical writer Tom Manshreck, present a candid and insightful look at how some of the worldâ??s leading practitioners construct and maintain software. This book covers Googleâ??s unique engineering culture, processes, and tools and how these aspects contribute to the effectiveness of an engineering organization. Youâ??ll explore three fundamental principles that software organizations should keep in mind when designing, architecting, writing, and maintaining code: How time affects the sustainability of software and how to make your code resilient over time How scale affects the viability of software practices within an engineering organization What trade-offs a typical engineer needs to make when evaluating design and development decisions




Python Crash Course


Book Description

Python Crash Course is a fast-paced, thorough introduction to Python that will have you writing programs, solving problems, and making things that work in no time. In the first half of the book, you’ll learn about basic programming concepts, such as lists, dictionaries, classes, and loops, and practice writing clean and readable code with exercises for each topic. You’ll also learn how to make your programs interactive and how to test your code safely before adding it to a project. In the second half of the book, you’ll put your new knowledge into practice with three substantial projects: a Space Invaders–inspired arcade game, data visualizations with Python’s super-handy libraries, and a simple web app you can deploy online. As you work through Python Crash Course you’ll learn how to: –Use powerful Python libraries and tools, including matplotlib, NumPy, and Pygal –Make 2D games that respond to keypresses and mouse clicks, and that grow more difficult as the game progresses –Work with data to generate interactive visualizations –Create and customize Web apps and deploy them safely online –Deal with mistakes and errors so you can solve your own programming problems If you’ve been thinking seriously about digging into programming, Python Crash Course will get you up to speed and have you writing real programs fast. Why wait any longer? Start your engines and code! Uses Python 2 and 3




Dictionary of Computer Science, Engineering and Technology


Book Description

A complete lexicon of technical information, the Dictionary of Computer Science, Engineering, and Technology provides workable definitions, practical information, and enhances general computer science and engineering literacy. It spans various disciplines and industry sectors such as: telecommunications, information theory, and software and hardware systems. If you work with, or write about computers, this dictionary is the single most important resource you can put on your shelf. The dictionary addresses all aspects of computing and computer technology from multiple perspectives, including the academic, applied, and professional vantage points. Including more than 8,000 terms, it covers all major topics from artificial intelligence to programming languages, from software engineering to operating systems, and from database management to privacy issues. The definitions provided are detailed rather than concise. Written by an international team of over 80 contributors, this is the most comprehensive and easy-to-read reference of its kind. If you need to know the definition of anything related to computers you will find it in the Dictionary of Computer Science, Engineering, and Technology.




Practical Programming in Tcl and Tk


Book Description

"The bulk of the book is about Tcl scripting and the aspects of C programming to create Tcl extentions is given a lighter treatment."--Author.




Skills of a Successful Software Engineer


Book Description

Skills to grow from a solo coder into a productive member of a software development team, with seasoned advice on everything from refactoring to acing an interview. In Skills of a Successful Software Engineer you will learn: The skills you need to succeed on a software development team Best practices for writing maintainable code Testing and commenting code for others to read and use Refactoring code you didn’t write What to expect from a technical interview process How to be a tech leader Getting around gatekeeping in the tech community Skills of a Successful Software Engineer is a best practices guide for succeeding on a software development team. The book reveals how to optimize both your code and your career, from achieving a good work-life balance to writing the kind of bug-free code delivered by pros. You’ll master essential skills that you might not have learned as a solo coder, including meaningful code commenting, unit testing, and using refactoring to speed up feature delivery. Timeless advice on acing interviews and setting yourself up for leadership will help you throughout your career. Crack open this one-of-a-kind guide, and you’ll soon be working in the professional manner that software managers expect. About the technology Success as a software engineer requires technical knowledge, flexibility, and a lot of persistence. Knowing how to work effectively with other developers can be the difference between a fulfilling career and getting stuck in a life-sucking rut. This brilliant book guides you through the essential skills you need to survive and thrive on a software engineering team. About the book Skills of a Successful Software Engineer presents techniques for working on software projects collaboratively. In it, you’ll build technical skills, such as writing simple code, effective testing, and refactoring, that are essential to creating software on a team. You’ll also explore soft skills like how to keep your knowledge up to date, interacting with your team leader, and even how to get a job you’ll love. What's inside Best practices for writing and documenting maintainable code Testing and refactoring code you didn’t write What to expect in a technical interview How to thrive on a development team About the reader For working and aspiring software engineers. About the author Fernando Doglio has twenty years of experience in the software industry, where he has worked on everything from web development to big data. Table of Contents 1 Becoming a successful software engineer 2 Writing code everyone can read 3 Unit testing: delivering code that works 4 Refactoring existing code (or Refactoring doesn’t mean rewriting code) 5 Tackling the personal side of coding 6 Interviewing for your place on the team 7 Working as part of a team 8 Understanding team leadership




Guide to the Software Engineering Body of Knowledge (Swebok(r))


Book Description

In the Guide to the Software Engineering Body of Knowledge (SWEBOK(R) Guide), the IEEE Computer Society establishes a baseline for the body of knowledge for the field of software engineering, and the work supports the Society's responsibility to promote the advancement of both theory and practice in this field. It should be noted that the Guide does not purport to define the body of knowledge but rather to serve as a compendium and guide to the knowledge that has been developing and evolving over the past four decades. Now in Version 3.0, the Guide's 15 knowledge areas summarize generally accepted topics and list references for detailed information. The editors for Version 3.0 of the SWEBOK(R) Guide are Pierre Bourque (Ecole de technologie superieure (ETS), Universite du Quebec) and Richard E. (Dick) Fairley (Software and Systems Engineering Associates (S2EA)).