Computer-aided design methodologies for synthesis of multivariable feedback control systems. Performance and …
Computer-aided design methodologies for synthesis of multivariable feedback control systems. Performance and robustness trade-offs. Model-based compensators; Q-parameterization; ill-posed optimization problems; dynamic augmentation; linear-quadratic optimization of controllers; H-infinity controller design; Mu-synthesis; model and compensator simplification; nonlinear effects. Computer-aided (MATLAB) design homework using models of physical processes. This course uses computer-aided design methodologies for synthesis of multivariable feedback control systems. Topics covered include: performance and robustness trade-offs; model-based compensators; Q-parameterization; ill-posed optimization problems; dynamic augmentation; linear-quadratic optimization of controllers; H-infinity controller design; Mu-synthesis; model and compensator simplification; and nonlinear effects. The assignments for the course comprise of computer-aided (MATLABĺ¨) design problems.
Relationship between computer representation of knowledge and the structure of natural language. …
Relationship between computer representation of knowledge and the structure of natural language. Emphasizes development of the analytical skills necessary to judge the computational implications of grammatical formalisms, and uses concrete examples to illustrate particular computational issues. Efficient parsing algorithms for context-free grammars; augmented transition network grammars. Question answering systems. Extensive laboratory work on building natural language processing systems. 6.863 is a laboratory-oriented course on the theory and practice of building computer systems for human language processing, with an emphasis on the linguistic, cognitive, and engineering foundations for understanding their design.
This course is a graduate subject in the theory and practice of …
This course is a graduate subject in the theory and practice of network flows and its extensions. Network flow problems form a subclass of linear programming problems with applications to transportation, logistics, manufacturing, computer science, project management, and finance, as well as a number of other domains. This subject will survey some of the applications of network flows and focus on key special cases of network flow problems including the following: the shortest path problem, the maximum flow problem, the minimum cost flow problem, and the multi-commodity flow problem. We will also consider other extensions of network flow problems.
Students learn the functions of pre-programmed microcontroller units such as the LilyMini …
Students learn the functions of pre-programmed microcontroller units such as the LilyMini ProtoSnap as they use them to create light-up pennants with LED components. Students design their own felt pennants and sew on circuit components using conductive thread. This activity gives students hands-on experience with engineering technologies while making creative pennants with LED lights that can illuminate in three pre-programmed sequences: all on, breathing, and twinkle.
The documentation is missing or obsolete, and the original developers have departed. …
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.
The goal of this project is to free undergraduate computer science students …
The goal of this project is to free undergraduate computer science students from having to pay for an introductory data structures book. I have decided to implement this goal by treating this book like an Open Source software project. The LATEX source, Java source, and build scripts for the book are available to download from the authors website and also, more importantly, on a reliable source code management site.
Offered as an introduction to the field of data structures and algorithms, …
Offered as an introduction to the field of data structures and algorithms, Open Data Structures covers the implementation and analysis of data structures for sequences (lists), queues, priority queues, unordered dictionaries, ordered dictionaries, and graphs. Focusing on a mathematically rigorous approach that is fast, practical, and efficient, Morin clearly and briskly presents instruction along with source code.
Analyzed and implemented in Java, the data structures presented in the book include stacks, queues, deques, and lists implemented as arrays and linked-lists; space-efficient implementations of lists; skip lists; hash tables and hash codes; binary search trees including treaps, scapegoat trees, and red-black trees; integer searching structures including binary tries, x-fast tries, and y-fast tries; heaps, including implicit binary heaps and randomized meldable heaps; graphs, including adjacency matrix and adjacency list representations; and B-trees.
A modern treatment of an essential computer science topic, Open Data Structures is a measured balance between classical topics and state-of-the art structures that will serve the needs of all undergraduate students or self-directed learners.
The Open Logic Text is an open textbook on mathematical logic aimed …
The Open Logic Text is an open textbook on mathematical logic aimed at a non-mathematical audience, intended for advanced logic courses as taught in many philosophy departments. It is open-source: you can download the LaTeX code. It is open: you’re free to change it whichever way you like, and share your changes. It is collaborative: a team of people is working on it, using the GitHub platform, and we welcome contributions and feedback. And it is written with configurability in mind.
This course teaches the fundamentals of engineering operating systems. The following topics …
This course teaches the fundamentals of engineering operating systems. The following topics are studied in detail: virtual memory, kernel and user mode, system calls, threads, context switches, interrupts, interprocess communication, coordination of concurrent activities, and the interface between software and hardware. Most importantly, the interactions between these concepts are examined. The course is divided into two blocks; the first block introduces one operating system, UNIXĺ¨ v6, in detail. The second block of lectures covers important operating systems concepts invented after UNIXĺ¨ v6, which was introduced in 1976.
In this book, you will learn about all three kinds of interaction. …
In this book, you will learn about all three kinds of interaction. In all three cases, interesting software techniques are needed in order to bring the computations into contact, yet keep them sufifciently at arm’s length that they don’t compromise each other’s reliability. The exciting challenge, then, is supporting controlled interaction. This includes support for computations that share a single computer and interact with one another, as your email and word processing programs do. It also includes support for data storage and network communication. This book describes how all these kinds of support are provided both by operating systems and by additional software layered on top of operating systems, which is known as middleware.
This course introduces the principal algorithms for linear, network, discrete, nonlinear, dynamic …
This course introduces the principal algorithms for linear, network, discrete, nonlinear, dynamic optimization and optimal control. Emphasis is on methodology and the underlying mathematical structures. Topics include the simplex method, network flow methods, branch and bound and cutting plane methods for discrete optimization, optimality conditions for nonlinear optimization, interior point methods for convex optimization, Newton's method, heuristic methods, and dynamic programming and optimal control methods.
Increasingly, we are realizing that to make computer systems more intelligent and …
Increasingly, we are realizing that to make computer systems more intelligent and responsive to users, we will have to make them more sensitive to context. Traditional hardware and software design overlooks context because it conceptualizes systems as input-output functions. Systems take input explicitly given to them by a human, act upon that input alone and produce explicit output. But this view is too restrictive. Smart computers, intelligent agent software, and digital devices of the future will also have to operate on data that they observe or gather for themselves. They may have to sense their environment, decide which aspects of a situation are really important, and infer the user's intention from concrete actions. The system's actions may be dependent on time, place, or the history of interaction. In other words, dependent upon context. But what exactly is context? We'll look at perspectives from machine learning, sensors and embedded devices, information visualization, philosophy and psychology. We'll see how each treats the problem of context, and discuss the implications for design of context-sensitive hardware and software. Course requirements will consist of critiques of class readings [about 3 papers/week], and a final project [paper or computer implementation project].
This is an advanced interdisciplinary introduction to applied parallel computing on modern …
This is an advanced interdisciplinary introduction to applied parallel computing on modern supercomputers. It has a hands-on emphasis on understanding the realities and myths of what is possible on the world's fastest machines. We will make prominent use of the Julia Language software project.
This course introduces fundamentals of shared and distributed memory programming, teaches you …
This course introduces fundamentals of shared and distributed memory programming, teaches you how to code using openMP and MPI respectively, and provides hands-on experience of parallel computing geared towards numerical applications.
Pharo is an open-source, elegant and pure object-oriented language that supports truly …
Pharo is an open-source, elegant and pure object-oriented language that supports truly immersive and life programming experience. Pharo offers excellent tools such as hot-debuggers and on the fly code update that change the programming experience. More at http://www.pharo.org. Pharo is a powerful language and IDE that companies use to deliver complex business-effective applications. More at: http://www.pharo.org/success
In Pharo everything is an object, and anything can change at run-time under your fingers. Pharo is written in itself you can explore a complete world. You can feel and talk to objects. But Pharo does not stop there, with Pharo you can improve your object-oriented skills by rediscovering the essence of object-oriented programming. Pharo by Example 50, intended for both students and developers, will guide you gently through the Pharo language and environment by means of a series of examples and exercises. This book is available under the Creative Commons Attribution-ShareAlike 3.0 license.
Students download the software needed to create Arduino programs and make sure …
Students download the software needed to create Arduino programs and make sure their Arduino microcontrollers work correctly. Then, they connect an LED to the Arduino and type up and upload programs to the Arduino board to 1) make the LED blink on and off and 2) make the LED fade (brighten and then dim). Throughout, students reflect on what they've accomplished by answering questions and modifying the original programs and circuits in order to achieve new outcomes. A design challenge gives students a chance to demonstrate their understanding of actuators and Arduinos; they design a functioning system using an Arduino, at least three actuators and either a buzzer or toy motor. For their designs, students sketch, create and turn in a user's manual for the system (text description, commented program, detailed hardware diagram). Numerous worksheets and handouts are provided.
Most books that use MATLAB are aimed at readers who know how …
Most books that use MATLAB are aimed at readers who know how to program. This book is for people who have never programmed before. As a result, the order of presentation is unusual. The book starts with scalar values and works up to vectors and matrices very gradually. This approach is good for beginning programmers, because it is hard to understand composite objects until you understand basic programming semantics.
Fundamental principles of the processes used in the fabrication of silicon monolithic …
Fundamental principles of the processes used in the fabrication of silicon monolithic integrated circuits. Physical models of bulk crystal growth, thermal oxidation, solid-state diffusion, ion implantation, epitaxial deposition, chemical vapor deposition, and physical vapor deposition. Refractory metal silicides, plasma and reactive ion etching, and rapid thermal processing. Process modeling and simulation. Technological limitations on integrated circuit design and fabrication. VLSI fundamentals.
Welcome to 6.041/6.431, a subject on the modeling and analysis of random …
Welcome to 6.041/6.431, a subject on the modeling and analysis of random phenomena and processes, including the basics of statistical inference. Nowadays, there is broad consensus that the ability to think probabilistically is a fundamental component of scientific literacy. For example: The concept of statistical significance (to be touched upon at the end of this course) is considered by the Financial Times as one of "The Ten Things Everyone Should Know About Science". A recent Scientific American article argues that statistical literacy is crucial in making health-related decisions. Finally, an article in the New York Times identifies statistical data analysis as an upcoming profession, valuable everywhere, from Google and Netflix to the Office of Management and Budget. The aim of this class is to introduce the relevant models, skills, and tools, by combining mathematics with conceptual understanding and intuition.
No restrictions on your remixing, redistributing, or making derivative works. Give credit to the author, as required.
Your remixing, redistributing, or making derivatives works comes with some restrictions, including how it is shared.
Your redistributing comes with some restrictions. Do not remix or make derivative works.
Most restrictive license type. Prohibits most uses, sharing, and any changes.
Copyrighted materials, available under Fair Use and the TEACH Act for US-based educators, or other custom arrangements. Go to the resource provider to see their individual restrictions.