" This course is an introduction to software engineering, using the Java™ …
" This course is an introduction to software engineering, using the Java™ programming language. It covers concepts useful to 6.005. Students will learn the fundamentals of Java. The focus is on developing high quality, working software that solves real problems. The course is designed for students with some programming experience, but if you have none and are motivated you will do fine. Students who have taken 6.005 should not take this course. Each class is composed of one hour of lecture and one hour of assisted lab work. This course is offered during the Independent Activities Period (IAP), which is a special 4-week term at MIT that runs from the first week of January until the end of the month."
This is a laboratory manual covering embedded controllers, appropriate for students in …
This is a laboratory manual covering embedded controllers, appropriate for students in an Electrical Engineering Technology program (AAS or BS). It begins with an explanation of the C programming language and uses the Arduino platform for embedded programming. Exercises range from simple switch sensing to a direct digital synthesis waveform generator.
This lab manual is intended for an introductory programming course for Electrical …
This lab manual is intended for an introductory programming course for Electrical Engineering and/or Technology students at the AAS and/or BS level. It begins with an introduction to the Multisim (tm) simulation software and progresses to programming using the Python language. Most programming assignments are based on electrical applications.
Deriving a symbolic description of the environment from an image. Understanding physics …
Deriving a symbolic description of the environment from an image. Understanding physics of image formation. Image analysis as an inversion problem. Binary image processing and filtering of images as preprocessing steps. Recovering shape, lightness, orientation, and motion. Using constraints to reduce the ambiguity. Photometric stereo and extended Gaussian sphere. Applications to robotics; intelligent interaction of machines with their environment. Machine Vision provides an intensive introduction to the process of generating a symbolic description of an environment from an image. Lectures describe the physics of image formation, motion vision, and recovering shapes from shading. Binary image processing and filtering are presented as preprocessing steps. Further topics include photogrammetry, object representation alignment, analog VLSI and computational vision. Applications to robotics and intelligent machine interaction are discussed.
This course covers elementary discrete mathematics for computer science and engineering. It …
This course covers elementary discrete mathematics for computer science and engineering. It emphasizes mathematical definitions and proofs as well as applicable methods. Topics include formal logic notation, proof methods; induction, well-ordering; sets, relations; elementary graph theory; integer congruences; asymptotic notation and growth of functions; permutations and combinations, counting principles; discrete probability. Further selected topics may also be covered, such as recursive definition and structural induction; state machines and invariants; recurrences; generating functions.
The focus of the course is on medical science and practice in …
The focus of the course is on medical science and practice in the age of automation and the genome, both present and future. It includes an analysis of the computational needs of clinical medicine, a review systems and approaches that have been used to support those needs, and an examination of new technologies.
Presents the main concepts of decision analysis, artificial intelligence, and predictive model …
Presents the main concepts of decision analysis, artificial intelligence, and predictive model construction and evaluation in the specific context of medical applications. Emphasizes the advantages and disadvantages of using these methods in real-world systems and provides hands-on experience. Technical focus on decision analysis, knowledge-based systems (qualitative and quantitative), learning systems (including logistic regression, classification trees, neural networks), and techniques to evaluate the performance of such systems. Students produce a final project using the methods learned in the subject, based on actual clinical data. (Required for students in the Master's Program in Medical Informatics, but open to other graduate students and advanced undergraduates.)
Languages and compilers to exploit multithreaded parallelism. Implicit parallel programming using functional …
Languages and compilers to exploit multithreaded parallelism. Implicit parallel programming using functional languages and their extensions. Higher-order functions, non-strictness, and polymorphism. Explicit parallel programming and nondeterminism. The lambda calculus and its variants. Term rewriting and operational semantics. Compiling multithreaded code for symmetric multiprocessors and clusters. Static analysis and compiler optimizations.
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.
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.
The course presents an overview of the history and structure of modern …
The course presents an overview of the history and structure of modern operating systems, analyzing in detail each of the major components of an operating system, and exploring more advanced topics in the field, such as security concerns. Upon successful completion of this course, the student will be able to: explain what an operating system does and how it is used; identify the various components of a computer system and how they interact with an operating system; describe the differences between a 32-bit and 64-bit operating system; explain the different types of operating systems and the major ones in use today; discuss the importance and use of threads and processes in an operating system; describe concurrency; explain the difference between a thread and a process; discuss context switching and how it is used in an operating system; describe synchronization; explain a race condition; discuss interprocess communication; describe how semaphores can be used in an operating system; discuss three of the classic synchronization problems; explain the alternatives to semaphores; discuss CPU scheduling and its relevance to operating systems; explain the general goals of CPU scheduling; describe the differences between pre-emptive and non-preemptive scheduling; discuss four CPU scheduling algorithms; explain what deadlock is in relation to operating systems; discuss deadlock prevention, avoidance, and their differences; describe deadlock detection and recovery; explain the memory hierarchy; discuss how the operating system interacts with memory; describe how virtual memory works; discuss three algorithms for dynamic memory allocation; explain methods of memory access; describe paging and page replacement algorithms; describe a file system and its purpose; discuss various file allocation methods; explain disk allocation and associated algorithms; discuss types of security threats; describe the various types of malware; explain basic security techniques; explain basic networking principles; discuss protocols and how they are used; explain reference models, particularly TCP/IP and OSI. (Computer Science 401)
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.
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.
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.
Principles of functional, imperative, and logic programming languages. Meta-circular interpreters, semantics (operational …
Principles of functional, imperative, and logic programming languages. Meta-circular interpreters, semantics (operational and denotational), type systems (polymorphism, inference, and abstract types), object oriented programming, modules, and multiprocessing. Case studies of contemporary programming languages. Programming experience and background in language implementation required. From the course home page: The course involves substantial programming assignments and problem sets as well as a significant amount of reading. The course uses the SCHEME+ programming language for all of its assignments.
This class builds a bridge between the recreational world of algorithmic puzzles …
This class builds a bridge between the recreational world of algorithmic puzzles (puzzles that can be solved by algorithms) and the pragmatic world of computer programming, teaching students to program while solving puzzles. Python syntax and semantics required to understand the code are explained as needed for each puzzle.
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.