With its emphasis on project-based practice, Real World Python will take you from playing with syntax to writing complete programs in no time. You'll conduct experiments, explore statistical concepts, and solve novel problems that have frustrated geniuses throughout history, like detecting distant exoplanets, as you continue to build your Python skills.
Chapters begin with a clearly defined project goal and a discussion of ways to attack the problem, followed by a mission designed to make you think like a programmer. You'll direct a Coast Guard search-and-rescue effort, plot and execute a NASA flight to the moon, protect access to a secure lab using facial recognition, and more. Along the way you'll learn how to: Use libraries like matplotlib, NumPy, Bokeh, pandas, Requests, Beautiful Soup, and turtle; Work with Natural Language Processing and computer vision modules like NLTK and OpenCV; Write a program to detect and track objects moving across a starfield; Scrape speeches from the ...
The world runs on code written in the C programming language, yet most schools begin the curriculum with Python or Java. Effective C bridges this gap and brings C into the modern era - covering the modern C17 Standard as well as potential C2x features. With the aid of this instant classic, you'll soon be writing professional, portable, and secure C programs to power robust systems and solve real-world problems.
Robert C. Seacord introduces C and the C Standard Library while addressing best practices, common errors, and open debates in the C community. Developed together with other C Standards committee experts, Effective C will teach you how to debug, test, and analyze C programs. You'll benefit from Seacord's concise explanations of C language constructs and behaviors, and from his 40 years of coding experience.
You'll learn: How to identify and handle undefined behavior in a C program; The range and representations of integers and floating-point values; How dynamic memory alloc ...
Web Security for Developers
The world has changed. Today, every time you make a site live, you're opening it up to attack.
A first-time developer can easily be discouraged by the difficulties involved with properly securing a website. But have hope: an army of security researchers is out there discovering, documenting, and fixing security flaws. Thankfully, the tools you'll need to secure your site are freely available and generally easy to use.
Web Security for Developers will teach you how your websites are vulnerable to attack and how to protect them. Each chapter breaks down a major security vulnerability and explores a real-world attack, coupled with plenty of code to show you both the vulnerability and the fix.
Practical Vulnerability Management
Bugs: they're everywhere. Software, firmware, hardware - they all have them. Bugs even live in the cloud. And when one of these bugs is leveraged to wreak havoc or steal sensitive information, a company's prized technology assets suddenly become serious liabilities.
Fortunately, exploitable security weaknesses are entirely preventable; you just have to find them before the bad guys do. Practical Vulnerability Management will help you achieve this goal on a budget, with a proactive process for detecting bugs and squashing the threat they pose.
The book starts by introducing the practice of vulnerability management, its tools and components, and detailing the ways it improves an enterprise's overall security posture. Then it's time to get your hands dirty! As the content shifts from conceptual to practical, you're guided through creating a vulnerability-management system from the ground up, using open-source software.
Along the way, you'll learn how to: Generate accurate and usa ...
The Ghidra Book
The result of more than a decade of research and development within the NSA, the Ghidra platform was developed to address some of the agency's most challenging reverse-engineering problems. With the open-source release of this formerly restricted tool suite, one of the world's most capable disassemblers and intuitive decompilers is now in the hands of cybersecurity defenders everywhere - and The Ghidra Book is the one and only guide you need to master it.
In addition to discussing RE techniques useful in analyzing software and malware of all kinds, the book thoroughly introduces Ghidra's components, features, and unique capacity for group collaboration. You'll learn how to: Navigate a disassembly; Use Ghidra's built-in decompiler to expedite analysis; Analyze obfuscated binaries; Extend Ghidra to recognize new data types; Build new Ghidra analyzers and loaders; Add support for new processors and instruction sets; Script Ghidra tasks to automate workflows; Set up and use a collaborat ...
Write Great Code: Volume 3
The field of software engineering may value team productivity over individual growth, but legendary computer scientist Randall Hyde wants to make promising programmers into masters of their craft. To that end, Engineering Software - the latest volume in Hyde's highly regarded Write Great Code series - offers his signature in-depth coverage of everything from development methodologies and strategic productivity to object-oriented design requirements and system documentation.
You'll learn: Why following the software craftsmanship model can lead you to do your best work; How to utilize traceability to enforce consistency within your documentation; The steps for creating your own UML requirements with use-case analysis; How to leverage the IEEE documentation standards to create better software.
This advanced apprenticeship in the skills, attitudes, and ethics of quality software development reveals the right way to apply engineering principles to programming. Hyde will teach you the ...
Write Great Code: Volume 2, 2nd Edition
Today's programming languages offer productivity and portability, but also make it easy to write sloppy code that isn't optimized for a compiler. Thinking Low-Level, Writing High-Level will teach you to craft source code that results in good machine code once it's run through a compiler.
You'll learn: How to analyze the output of a compiler to verify that your code generates good machine code; The types of machine code statements that compilers generate for common control structures, so you can choose the best statements when writing HLL code; Enough assembly language to read compiler output; How compilers convert various constant and variable objects into machine data.
With an understanding of how compilers work, you'll be able to write source code that they can translate into elegant machine code. ...
Write Great Code: Volume 1, 2nd Edition
This, the first volume in Randall Hyde's Write Great Code series, dives into machine organization without the extra overhead of learning assembly language programming. Written for high-level language programmers, Understanding the Machine fills in the low-level details of machine organization that are often left out of computer science and engineering courses.
Learn: How the machine represents numbers, strings, and high-level data structures, so you'll know the inherent cost of using them; How to organize your data, so the machine can access it efficiently; How the CPU operates, so you can write code that works the way the machine does; How I/O devices operate, so you can maximize your application's performance when accessing those devices; How to best use the memory hierarchy to produce the fastest possible programs.
Great code is efficient code. But before you can write truly efficient code, you must understand how computer systems execute programs and how abstractions in prog ...
Coding in the Classroom
Computer science opens more doors for today's youth than any other discipline - which is why Coding in the Classroom is your key to unlocking students' future potential. Author Ryan Somma untangles the current state of CS education standards; describes the cognitive, academic, and professional benefits of learning CS; and provides numerous strategies to promote computational thinking and get kids coding!
Whether you're a teacher, an after-school coach, or a parent seeking accessible ways to boost your kid's computer savvy, Coding in the Classroom is here to help. With quick-start programming strategies, scaffolded exercises for every grade level, and ideas for designing CS events that promote student achievement, this book is a rock-solid roadmap to CS integration from a wide variety of on-ramps.
You'll learn: tips and resources for teaching programming concepts via in-class activities and games, without a computer; development environments that make coding and sharing web apps a ...
High-Tech LEGO Projects
High Tech LEGO hijacks the MINDSTORMS EV3 revolution, showing you how to build creative technical inventions with practical applications. You'll learn to build a dynamic array of working devices for outdoor research, home security, spycraft, and more.
Among the book's 16 fascinating projects you'll find a motion-activated animal cam, a Morse code transmitter, a laser security fence, a motion-sensing radar detector, an automated insect trapper, and a heat-seeking infrared cannon. Welcome to a whole new world of building!
Every project brings together science, mechanics, electronics, optics, and software to create complex instruments for studying and measuring the world around you, all while maintaining the playfulness of LEGO. Each easy-to-follow model combines illustrated instructions with step-by-step guidance on the engineering methods at play. ...
Python One-Liners will teach you how to read and write "one-liners": concise statements of useful functionality packed into a single line of code. You'll learn how to systematically unpack and understand any line of Python code, and write eloquent, powerfully compressed Python like an expert.
The book's five chapters cover tips and tricks, regular expressions, machine learning, core data science topics, and useful algorithms. Detailed explanations of one-liners introduce key computer science concepts and boost your coding and analytical skills.
You'll learn about advanced Python features such as list comprehension, slicing, lambda functions, regular expressions, map and reduce functions, and slice assignments.
You'll also learn how to: Leverage data structures to solve real-world problems, like using Boolean indexing to find cities with above-average pollution; Use NumPy basics such as array, shape, axis, type, broadcasting, advanced indexing, slicing, sorting, searching, aggr ...