MASLab (Mobile Autonomous System Laboratory) is a robotics contest. The contest takes …
MASLab (Mobile Autonomous System Laboratory) is a robotics contest. The contest takes place during MIT's Independent Activities Period and participants earn 6 units of P/F credit and 6 Engineering Design Points. Teams of three to four students have less than a month to build and program sophisticated robots which must explore an unknown playing field and perform a series of tasks. MASLab provides a significantly more difficult robotics problem than many other university-level robotics contests. Although students know the general size, shape, and color of the floors and walls, the students do not know the exact layout of the playing field. In addition, MASLab robots are completely autonomous, or in other words, the robots operate, calculate, and plan without human intervention. Finally, MASLab is one of the few robotics contests in the country to use a vision based robotics problem.
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 focuses on Object-Oriented Programming and programming techniques both at the …
This course focuses on Object-Oriented Programming and programming techniques both at the application layer and the transport layer of the TCP/IP protocol stack. Additional concepts covered include text transport (moving text from one computer to another over the network), data transport, object transport, remote function calls, and, finally, class transport. Upon successful completion of this course, the student will be able to: code solutions using the fundamental concepts of object-oriented programming in Java; compare and contrast the usage of the Java APIs for each of the different network protocols with emphasis on the application and transport layers; explain how consistency and reusability are achieved in network processing from input through output; complete a variety of introductory to complex network programming tasks utilizing Java; solve problems that use XML to activate Java; compare and contrast object sharing with Java RMI and SOAP. This free course may be completed online at any time. (Computer Science 407)
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.
Encryption of files and firewalls are just some of the security measures …
Encryption of files and firewalls are just some of the security measures that can be used in security. This unit, which assumes you have a substantial knowledge of computing, helps to explain the intricacies of the continually changing area of network security by studying the main issues involved in achieving a reasonable degree of resilience against attacks.
The Non-Programmers' Tutorial For Python is a tutorial designed to be an …
The Non-Programmers' Tutorial For Python is a tutorial designed to be an introduction to the Python programming language. This guide is for someone with no programming experience.
Inspired by reality-based computing from the natural world, this course covers several …
Inspired by reality-based computing from the natural world, this course covers several unconventional computational methods and theories, such as quantum computation, DNA and molecular computation, genetic algorithms, self-organizing networks, and cellular automata. Note: for this course, it will be quite helpful to have a working knowledge of cellular biology (available from the Saylor FoundationĺÎĺ_ĺĚĺ_s BIO301). Upon successful completion of this course, the student will be able to: describe abstracted finite-memory program, a finite state automaton, and regular language; list and explain the characteristics of universal Turing transducers; describe the computational idea behind the DNA-based computer; explain the differences between bio-electronic, biochemical, and biomechanical computers; describe the functional principles of genetic algorithms and list their limitations; define the cellular automaton and the cellular neural network, and show examples of how they compute; describe how logic gates may be constructed for quantum bits; describe a simple model for a quantum computer based on a classical computer; describe an algorithm which makes use of quantum parallelism. This free course may be completed online at any time. (Computer Science 411)
This course introduces students to the fundamentals of nonlinear optimization theory and …
This course introduces students to the fundamentals of nonlinear optimization theory and methods. Topics include unconstrained and constrained optimization, linear and quadratic programming, Lagrange and conic duality theory, interior-point algorithms and theory, Lagrangian relaxation, generalized programming, and semi-definite programming. Algorithmic methods used in the class include steepest descent, Newton's method, conditional gradient and subgradient optimization, interior-point methods and penalty and barrier methods.
Numerical analysis is the study of the methods used to solve problems …
Numerical analysis is the study of the methods used to solve problems involving continuous variables. It is a highly applied branch of mathematics and computer science, wherein abstract ideas and theories become the quantities describing things we can actually touch and see. Suggested prerequisites for this course are MA211: Linear Algebra, MA221: Differential Equations, and either MA302/CS101: Introduction to Computer Science, or a background in some programming language. Programming ideas will be illustrated in pseudocode and implemented in the open-source high-level computing environment. Upon successful completion of this course, the student will be able to: show how numbers are represented on the computer, and how errors from this representation affect arithmetic; analyze errors and have an understanding of error estimation; be able to use polynomials in several ways to approximate both functions and data, and to match the type of polynomial approximation to a given type of problem; be able to solve equations in one unknown real variable using iterative methods and to understand how long these methods take to converge to a solution; derive formulas to approximate the derivative of a function at a point, and formulas to compute the definite integral of a function of one or more variables; choose and apply any of several modern methods for solving systems of initial value problems based on properties of the problem. This free course may be completed online at any time. (Mathematics 213)
IEEE-standard, iterative and direct linear system solution methods, eigendecomposition and model-order reduction, …
IEEE-standard, iterative and direct linear system solution methods, eigendecomposition and model-order reduction, fast Fourier transforms, multigrid, wavelets and other multiresolution methods, matrix sparsification. Nonlinear root finding (Newton's method). Numerical interpolation and extrapolation. Quadrature.
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.
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)
Principles of operation, algorithms, applications, and limitations of optical detection, storage, processing, …
Principles of operation, algorithms, applications, and limitations of optical detection, storage, processing, transmission and display devices and systems. Topics: review of basic properties of electromagnetic waves; holography; spatial light modulator and display devices; thermal and quantum photodetectors; optical storage media such as disks and 3-D holographic materials; fiberoptic communication systems; optical interconnection device technologies; coherent and incoherent light processors based on Fourier optics, Acousto-optics, and optoelectronic neural networks; role of optics in next-generation computers; applications to image processing, pattern recognition, radar systems and adaptive optics; limitations of optical processors.
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.
The course examines optical and electronic processes in organic molecules and polymers …
The course examines optical and electronic processes in organic molecules and polymers that govern the behavior of practical organic optoelectronic devices. Electronic structure of a single organic molecule is used as a guide to the electronic behavior of organic aggregate structures. Emphasis is placed on the use of organic thin films in active organic devices including organic LEDs, solar cells, photodetectors, transistors, chemical sensors, memory cells, electrochromic devices, as well as xerography and organic non-linear optics. How to reach the ultimate miniaturization limit of molecular electronics and related nanoscale patterning techniques of organic materials will also be discussed. The class encompasses three laboratory sessions during which the students will practice the use of select vacuum and non-vacuum organic deposition techniques by making their own active organic devices.
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."
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.