Phu Xuan University Library

Digital library

Textbooks, references and open learning resources.

Basic Engineering Data Collection and Analysis

External

Basic Engineering Data Collection and Analysis

Steve Vardeman; J. Marcus Jobe · Iowa State University · 2001

In Basic Engineering Data Collection and Analysis, Stephen B. Vardeman and J. Marcus Jobe stress the practical over the theoretical. Step by step, students get real engineering data and scenario examples along with chapter-long case studies that illustrate concepts in realistic, thoroughly detailed situations. This approach encourages students to work through the material by carrying out data collection and analysis projects from problem formulation through the preparation of professional technical reports—just as if they were on the job.

CC BY-NC-SAAnalysisEngineering & Technology 0 views
Handbook of Software Engineering Methods

External

Handbook of Software Engineering Methods

Lara Letaw · Oregon State University · 2024

Software engineering can help people create sustainable, extensible programs that solve problems people care about.I won’t tell you how to be a software engineer; you’ll learn that over time by doing it. Instead, this book is about software engineering methods: Ways people achieve specific objectives in software engineering—that can save your project. My hope is that, after reading this book (or parts of it), you’ll feel better equipped for software engineering.

CC BY-NCComputer Science 0 views
Prealgebra via Python Programming: First Steps to Perform Large Scale Computational Tasks in the Sciences and Engineerings

External

Prealgebra via Python Programming: First Steps to Perform Large Scale Computational Tasks in the Sciences and Engineerings

Sergio Rojas · Sergio Rojas · 2018

This book was written for students and instructors who want to learn how to use a computer for other than the most common uses, such as web browsing, document creation, or paying bills online. This book is for anyone who wants to perform computational tasks that they design. In other words, if you wish to learn how to program a computer, this book is for you. Because prealgebra is a subject that practically everyone is supposed to learn in grade school, it provides a platform to introduce basic computer programming concepts. Consequently, this book should also be of interest to students in middle or high school who want to learn how to program, and who are willing to invest the time and effort in learning a programming language that they could continue using throughout their schooling and in their professional life. Similarly, this book could also be of interest to pre-service and in-service mathematics teachers wishing to have at their disposal a complementary tool to assist in fostering understanding, competency, and interest in mathematics among their students. This book can be integrated with the teachers’ curriculum as way to tackle non-traditional math problems using an inexpensive modern computer language. By the end of the book, a reader will have learned enough to be able to write a preliminary, step-by-step one variable equation solver that can be expanded in the future to use with more complex equations. In other words, by the end of the book, you will be able to write code that programs their machines to solve equations. This code is foundational and readers are ecouraged to learn on their own how to build on it to suit their mathematics learning needs.

CC BY-NCComputer ScienceProgramming Languages 0 views
Evidence-based Software Engineering

External

Evidence-based Software Engineering

Derek Jones · Knowledge Software · 2020

This book discusses what is currently known about software engineering, based on an analysis of all the publicly available data. This aim is not as ambitious as it sounds, because there is not a great deal of data publicly available. The intent is to provide material that is useful to professional developers working in industry; until recently researchers in software engineering have been more interested in vanity work, promoted by ego and bluster. The material is organized in two parts, the first covering software engineering and the second the statistics likely to be needed for the analysis of software engineering data.

CC BY-SAComputer ScienceDatabases 0 views
AF

External

A First Course in Electrical and Computer Engineering

Louis Scharf · OpenStax CNX · 2009

This book was written for an experimental freshman course at the University of Colorado. The course is now an elective that the majority of our electrical and computer engineering students take in the second semester of their freshman year, just before their first circuits course. Our department decided to offer this course for several reasons: we wanted to pique student' interest in engineering by acquainting them with engineering teachers early in their university careers and by providing with exposure to the types of problems that electrical and computer engineers are asked to solve; we wanted students entering the electrical and computer engineering programs to be prepared in complex analysis, phasors, and linear algebra, topics that are of fundamental importance in our discipline; we wanted students to have an introduction to a software application tool, such as MATLAB, to complete their preparation for practical and efficient computing in their subsequent courses and in their professional careers; we wanted students to make early contact with advanced topics like vector graphics, filtering, and binary coding so that they would gain a more rounded picture of modern electrical and computer engineering. In order to introduce this course, we had to sacrifice a second semester of Pascal programming. We concluded that the sacrifice was worth making because we found that most of our students were prepared for high-level language computing after just one semester of programming. We believe engineering educators elsewhere are reaching similar conclusions about their own students and curriculums. We hope this book helps create a much needed dialogue about curriculum revision and that it leads to the development of similar introductory courses that encourage students to enter and practice our craft.Students electing to take this course have completed one semester of calculus, computer programming, chemistry, and humanities. Concurrently with this course, students take ph

CC BYComputer ScienceElectrical Engineering 0 views
Object-Oriented Reengineering Patterns

External

Object-Oriented Reengineering Patterns

Serge Demeyer; Stéphane Ducasse; Oscar Nierstrasz · Stéphane Ducasse · 2008

The documentation is missing or obsolete, and the original developers have departed. Your team has limited understanding of the system, and unit tests are missing for many, if not all, of the components. When you fix a bug in one place, another bug pops up somewhere else in the system. Long rebuild times make any change difficult. All of these are signs of software that is close to the breaking point. Many systems can be upgraded or simply thrown away if they no longer serve their purpose. Legacy software, however, is crucial for operations and needs to be continually available and upgraded. How can you reduce the complexity of a legacy system sufficiently so that it can continue to be used and adapted at acceptable cost? Based on the authors' industrial experiences, this book is a guide on how to reverse engineer legacy systems to understand their problems, and then reengineer those systems to meet new demands. Patterns are used to clarify and explain the process of understanding large code bases, hence transforming them to meet new requirements. The key insight is that the right design and organization of your system is not something that can be evident from the initial requirements alone, but rather as a consequence of understanding how these requirements evolve.

CC BY-SAComputer Science 0 views
Process Improvement using Data

External

Process Improvement using Data

Kevin Dunn · Kevin Dunn · 2026

There is no other free, coherent text that covers what engineers and scientists actually do with process data (visualization, regression, designed experiments, process monitoring, and multivariate / latent-variable methods) in one volume. Most textbooks pick one of those topics and go deep. Practitioners need all of them, and need to see how they fit together, because real industrial problems don't respect chapter boundaries. Process Improvement using Data was written to fill that gap, and has been continuously refined in industry-facing classrooms and in industrial practice since 2010. It is suitable for upper-undergraduate or introductory-graduate courses, and for self-study by working engineers and data scientists with a basic statistics background.

CC BY-SAEngineering & TechnologyMathematics 0 views
Digital Design: A Datapath and Control

External

Digital Design: A Datapath and Control

Christopher Coulston · Colorado School of Mines · 2024

This text was written for faculty and students wanting a structured approach to the design of complex digital systems. It guides students and faculty through the process by exposing critical skills gradually through the text.

CC BY-NC-SAEngineering & Technology 0 views
Network quality control

External

Network quality control

Peter Teunissen · TU Delft Open · 2024

The aim of computing a geodetic network is to determine the geometry of the configuration of a set of points from spatial observations (e.g. GPS baselines and/or terrestrial measurements). The configuration of points usually consists of newly established points, of which the coordinates still need to be determined, and already existing points, the so-called control points, of which the coordinates are known. Network quality control deals with the qualitative aspects of network design, network adjustment, network validation and network connection. By means of a network adjustment the relative geometry of the new points is determined and integrated into the geometry of the existing control points. Prior to the network adjustment, the geometry of the network is designed on the basis of precision and reliability criteria. The adjustment and validation of the overall geometry can be divided in two phases, the free network phase and the connected network phase. In the free network phase, the known coordinates of the control points do not take part in the adjustment and validation. The possible use of a free network phase is based on the idea that a good geodetic network should be sufficiently precise and reliable in itself, without the need of external control. Moreover, it allows one to validate the quality of the external control. In the connected network phase, the geometry of the free network is integrated into the geometry of the control points. Adjustment and validation in this second phase differs from the free network phase. The adjustment in the second phase is a constrained connection adjustment, since it is often not practical to see the coordinates of the control points change every time a free network is connected to them. For the validation of the connected network however, the unconstrained connected adjustment is used as input. This allows one to take the intrinsic uncertainty of the coordinates of the control points in the connection phase into account. T

CC BYCivil EngineeringEngineering & Technology 0 views
Design for Electrical and Computer Engineers

External

Design for Electrical and Computer Engineers

Christopher Coulston; Ralph Ford · Ralph Ford and Christopher Coulston · 2024

Originally published by McGraw Hill in 2009, Design for Electrical and Computer Engineers is written for students and teachers engaged in electrical and computer engineering 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 is to provide a treatment of the design process with a sound academic basis that is integrated with practical application. The foundation of the book is a strong 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 electrical and computer engineering.

CC BY-NC-SAElectrical EngineeringEngineering & Technology 0 views
Dynamic data processing: Recursive least-squares

External

Dynamic data processing: Recursive least-squares

Peter Teunissen · TU Delft Open · 2024

This book is a follow-up on Adjustment theory. It extends the theory to the case of time-varying parameters with an emphasis on their recursive determination. Least-squares estimation will be the leading principle used. A least-squares solution is said to be recursive when the method of computation enables sequential, rather than batch, processing of the measurement data. The recursive equations enable the updating of parameter estimates for new observations without the need to store all past observations. Methods of recursive least-squares estimation are therefore particularly useful for applications in which the time-varying parameters need to be instantly determined. Important examples of such applications can be found in the fields of real-time kinematic positioning, navigation and guidance, or multivariate time series analysis. The goal of this book is therefore to convey the necessary knowledge to be able to process sequentially collected measurements for the purpose of estimating time-varying parameters. When determining time-varying parameters from sequentially collected measurement data, one can discriminate between three types of estimation problems: filtering, prediction and smoothing. Filtering aims at the determination of current parameter values, while smoothing and prediction aim at the determination of respectively past and future parameter values. The emphasis in this book will be on recursive least-squares filtering. The theory is worked out for the important case of linear(ized) models. The measurement-update and time-update equations of recursive least-squares are discussed in detail. Models with sequentially collected data, but time-invariant parameters are treated first. In this case only the measurement-update equations apply. State-space models for dynamic systems are discussed so as to include time-varying parameters. This includes their linearization and the construction of the state transition matrix. Elements from the theory of random fun

CC BYCivil EngineeringEngineering & Technology 0 views
Microwave and RF Design: Networks

External

Microwave and RF Design: Networks

Michael Steer · North Carolina State University Libraries · 2019

Microwave and RF Design: Networks presents the tools and techniques required to analyze and design microwave and RF circuits. Because of the finite speed of light, microwave circuits must be considered to be spatially distributed and so there is not a single ground. As such metrics that can be used to describe power flow are of most use. The topics covered include scattering parameters, signal flow graphs, and Smith charts. Acquiring expertise in these is the biggest barriers to a successful career in microwave and RF engineering. This book is suitable as both an undergraduate and graduate textbook, as well as a career-long reference book.

CC BY-NCElectrical EngineeringEngineering & Technology 0 views
A Tale of Two Systems

External

A Tale of Two Systems

René Reitsma; Kevin Krueger · Oregon State University · 2017

This is the story of a web-based information system rebuild. The system in question is www.teachengineering.org, a digital library of K-12 engineering curriculum that was built from the ground up with established technology and which for 13 years enjoyed lasting support from its growing user community and its sponsors. These 13 years, however, cover the period during which smart phones and tablets became commonplace, during which the Internet of Things started replacing the Semantic Web, during which NoSQL databases made their way out of the research labs and into everyday development shops, during which we collectively started moving IT functions and services into ‘the cloud,’ and during which computing performance doubled a few times, yet again. During this same period, TeachEngineering’s user base grew from a few hundred to more than 3 million users annually, its collection size quadrupled, it went through several user interface renewals, and significant functionality was added while having an exemplary service record, and it enjoyed continued financial support from its sponsors. In this monograph we provide a side-by-side of this rebuild. We lay out the choices made in the old architecture —we refer to it as TE 1.0— and compare and contrast them with the choices made for TE 2.0. We explain why both the 1.0 and 2.0 choices were made and discuss the advantages and disadvantages associated with them.

CC BY-NC-SAInformation Systems 0 views
Programming with Java

External

Programming with Java

Ashik Bhuiyan; Md Amiruzzaman · The Pennsylvania Alliance for Design of Open Textbooks (PA-ADOPT) · 2025

Programming with Java is a beginner-friendly eTextbook that introduces readers to the fundamentals of Java, one of the most widely used programming languages. It covers key concepts like syntax, data types, control structures, and object-oriented programming, offering clear explanations and practical examples. The chapters build progressively, making the material accessible even to those with little or no programming background. The book also explores important topics such as exception handling, file I/O, and basic data structures, providing a strong foundation for further computer science studies. With interactive exercises and end-of-chapter projects, readers can apply their knowledge through real-world applications. This eTextbook equips students with the skills they need to confidently take on advanced programming challenges and pursue successful careers in software development.

CC BY-NCComputer ScienceEngineering & Technology 0 views
Building User Interfaces for Modern Web Applications: React Programming

External

Building User Interfaces for Modern Web Applications: React Programming

Cheer-Sun Yang · The Pennsylvania Alliance for Design of Open Textbooks (PA-ADOPT) · 2024

Since Facebook released React as an open-source software library for front-end programming in 2013, React has gain popularity quickly. Although there are other frameworks or libraries, React is considered a programmer-friendly JavaScript library using the functional programming approach for the front-end web application development. Teaching and learning React can provide training in Functional Programming, Software Engineering Principles, and the Event-Driven Programming Paradigm. The ultimate goal of this eTextbook is to provide a timely support for teaching the state-of-the-art technology as the React ecosystem evolves. In this eTextbook, the prerequisite concepts about HTML/CSS, JavaScript, and Bootstrap/React-Bootstrap are introduced first, followed by the main React language features. Finally, the Software Engineering Principles are introduced from the design, development, to debugging and maintenance. The main objectives are threefold: (1) provide concepts about JavaScript Programming, (2) introduce the concepts of modularity, functional programming, and (3) teach the concept of reusable User Interface (UI) as the front-end of modern model-view-controller (MVC) web applications. Although learning other technologies in the React ecosystem is imminent, it is the hope that this book paves the groundwork for the future learning and growing in the field of modern UI development.

CC BY-NCComputer ScienceEngineering & Technology 0 views
An Open Guide to Data Structures and Algorithms

External

An Open Guide to Data Structures and Algorithms

Paul Bible; Lucas Moser; Mia Scarlato · PALNI · 2023

This textbook serves as a gentle introduction for undergraduates to theoretical concepts in data structures and algorithms in computer science while providing coverage of practical implementation (coding) issues. The field of computer science (CS) supports a multitude of essential technologies in science, engineering, and communication as a social medium. The varied and interconnected nature of computer technology permeates countless career paths making CS a popular and growing major program. Mastery of the science behind computer science relies on an understanding of the theory of algorithms and data structures. These concepts underlie the fundamental tradeoffs that dictate performance in terms of speed, memory usage, and programming complexity that separate novice programmers from professional practitioners.

CC BYComputer Science 0 views
Think Data Structures: Algorithms and Information Retrieval in Java

External

Think Data Structures: Algorithms and Information Retrieval in Java

Allen Downey · Green Tea Press · 2016

Data structures and algorithms are among the most important inventions of the last 50 years, and they are fundamental tools software engineers need to know. But in my opinion, most of the books on these topics are too theoretical, too big, and too bottom-up: Too theoretical: Mathematical analysis of algorithms is based on simplifying assumptions that limit its usefulness in practice. Many presentations of this topic gloss over the simplifications and focus on the math. In this book I present the most practical subset of this material and eliminate the rest. Too big: Most books on these topics are at least 500 pages, and some are more than 1000. By focusing on the topics I think are most useful for software engineers, I kept this book under 250 pages. Too bottom-up: Many data structures books focus on how data structures work (the implementations), with less about how to use them (the interfaces). In this book, I go “top down”, starting with the interfaces. Readers learn to use the structures in the Java Collections Framework before getting into the details of how they work. Finally, many present this material out of context and without motivation: it’s just one damn data structure after another! I try to alleviate the boredom by organizing the topics around an application—web search—that uses data structures extensively, and is an interesting and important topic in its own right. This application also motivates some topics that are not usually covered in an introductory data structures class, including persistent data structures, with Redis, and streaming algorithms. This book also presents basic aspects of software engineering practice, including version control and unit testing. Each chapter ends with an exercise that allows readers to apply what they have learned. Each exercise includes automated tests that check the solution. And for most exercises, I present my solution at the beginning of the next chapter. This book is intended for college students in computer

CC BY-NC-SAComputer Science 0 views
How to Think Like a Computer Scientist: C Version

External

How to Think Like a Computer Scientist: C Version

Allen Downey; Thomas Scheffler · Green Tea Press · 1999

The goal of this book is to teach you to think like a computer scientist. I like the way computer scientists think because they combine some of the best features of Mathematics, Engineering, and Natural Science. Like mathematicians, computer scientists use formal languages to denote ideas (specifically computations). Like engineers, they design things, assembling components into systems and evaluating trade offs among alternatives. Like scientists, they observe the behavior of complex systems, form hypotheses, and test predictions.The single most important skill for a computer scientist is problem-solving. By that I mean the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately. As it turns out, the process of learning to program is an excellent opportunity to practice problem-solving skills. That’s why this chapter is called “The way of the program.”

CC BY-NCComputer ScienceProgramming Languages 0 views
How to Think Like a Computer Scientist: C++ Version

External

How to Think Like a Computer Scientist: C++ Version

Allen Downey · Green Tea Press · 2012

The goal of this book is to teach you to think like a computer scientist. I like the way computer scientists think because they combine some of the best features of Mathematics, Engineering, and Natural Science. Like mathematicians,computer scientists use formal languages to denote ideas (specifically computations). Like engineers, they design things, assembling components into systems and evaluating trade offs among alternatives. Like scientists, they observe the behavior of complex systems, form hypotheses, and test predictions.The single most important skill for a computer scientist is problem-solving. By that I mean the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately. As it turns out, the process of learning to program is an excellent opportunity to practice problem-solving skills. That’s why this chapter is called “The way of the program.”

CC BY-NCComputer ScienceProgramming Languages 0 views
Embedded Controllers Using C and Arduino

External

Embedded Controllers Using C and Arduino

James Fiore · dissidents · 2018

This text is designed to introduce and expand upon material related to the C programming language and embedded controllers, and specifically, the Arduino development system and associated Atmel ATmega microcontrollers. It is intended to fit the time constraints of a typical 3 to 4 credit hour course for electrical engineering technology and computer engineering technology programs, although it could also fit the needs of a hardware-oriented course in computer science. As such, the text does not attempt to cover every aspect of the C language, the Arduino system or Atmel AVR microcontrollers. The first section deals with the C language itself. It is assumed that the student is a relative newcomer to the C language but has some experience with another high level language, for example, Python. This means concepts such as conditionals and iteration are already familiar and the student can get up and running fairly quickly. From there, the Arduino development environment is examined. Unlike the myriad Arduino books now available, this text does not simply rely on the Arduino libraries. As convenient as the libraries may be, there are other, sometimes far more efficient, ways of programming the boards. Many of the chapters examine library source code to see “what's under the hood”. This more generic approach means it will be easier for the student to use other processors and development systems instead of being tightly tied to one platform. There is a lab manual for this textbook.

CC BY-NC-SAComputer Science 0 views