6.270 is a hands-on, learn-by-doing class, in which participants design and build …
6.270 is a hands-on, learn-by-doing class, in which participants design and build a robot that will play in a competition at the end of January. The goal for the students is to design a machine that will be able to navigate its way around the playing surface, recognize other opponents, and manipulate game objects. Unlike the machines in Introduction to Design (2.70), 6.270 robots are totally autonomous, so once a round begins, there is no human intervention. The goal of 6.270 is to teach students about robotic design by giving them the hardware, software, and information they need to design, build, and debug their own robot.
Study of an area of current interest in theoretical computer science. Topic …
Study of an area of current interest in theoretical computer science. Topic varies from term to term. This course is a study of Behavior of Algorithms and covers an area of current interest in theoretical computer science. The topics vary from term to term. During this term, we discuss rigorous approaches to explaining the typical performance of algorithms with a focus on the following approaches: smoothed analysis, condition numbers/parametric analysis, and subclassing inputs.
This interdisciplinary course provides a hands-on approach to students in the topics …
This interdisciplinary course provides a hands-on approach to students in the topics of bioinformatics and proteomics. Lectures and labs cover sequence analysis, microarray expression analysis, Bayesian methods, control theory, scale-free networks, and biotechnology applications. Designed for those with a computational and/or engineering background, it will include current real-world examples, actual implementations, and engineering design issues. Where applicable, engineering issues from signal processing, network theory, machine learning, robotics and other domains will be expounded upon.
Blender 3D: Noob to Pro is a product of shared effort by …
Blender 3D: Noob to Pro is a product of shared effort by numerous team members and anonymous editors. Its purpose is to teach people how to create three-dimensional computer graphics using Blender, a free software application. This book is intended to be used in conjunction with other on-line resources that complement it.
Students learn about the similarities between the human brain and its engineering …
Students learn about the similarities between the human brain and its engineering counterpart, the computer. Since students work with computers routinely, this comparison strengthens their understanding of both how the brain works and how it parallels that of a computer. Students are also introduced to the "stimulus-sensor-coordinator-effector-response" framework for understanding human and robot actions.
This video module presents an introduction to cryptography - the method of …
This video module presents an introduction to cryptography - the method of sending messages in such a way that only the intended recipients can understand them. In this very interactive lesson, students will build three different devices for cryptography and will learn how to encrypt and decrypt messages. There are no prerequisites for this lesson, and it has intentionally been designed in a way that can be adapted to many audiences. It is fully appropriate in a high school level math or computer science class where the teacher can use it to motivate probability/statistics or programming exercises. nteractive lesson, students will learn to build the cryptography devices and will learn how to send and ''crack'' secret messages.
This course will serve as a two-week aggressively gentle introduction to programming …
This course will serve as a two-week aggressively gentle introduction to programming for those students who lack background in the field. Specifically targeted at students with little or no programming experience, the course seeks to reach students who intend to take 6.001 in the Spring Term and feel they would struggle because they lack the necessary background. The main focus of the subject will be acquiring programming experience: instruction in programming fundamentals coupled with lots of practice problems. Lots of programming required, but lots of support provided.
Although C# is derived from the C programming language, it introduces some …
Although C# is derived from the C programming language, it introduces some unique and powerful features, such as delegates (which can be viewed as type-safe function pointers) and lambda expressions which introduce elements of functional programming languages, as well as a simpler single class inheritance model (than C++) and, for those of you with experience in "C-like" languages, a very familiar syntax that may help beginners become proficient faster than its predecessors. Similar to Java, it is object-oriented, comes with an extensive class library, and supports exception handling, multiple types of polymorphism, and separation of interfaces from implementations. Those features, combined with its powerful development tools, multi-platform support, and generics, make C# a good choice for many types of software development projects: rapid application development projects, projects implemented by individuals or large or small teams, Internet applications, and projects with strict reliability requirements. Testing frameworks such as NUnit make C# amenable to test-driven development and thus a good language for use with Extreme Programming (XP). Its strong typing helps to prevent many programming errors that are common in weakly typed languages.
The student will learn the mechanics of editing and compiling a simple …
The student will learn the mechanics of editing and compiling a simple program written in C++ beginning with a discussion of the essential elements of C++ programming: variables, loops, expressions, functions, and string class. Next, the student will cover the basics of object-oriented programming: classes, inheritance, templates, exceptions, and file manipulation. The student will then review function and class templates and the classes that perform output and input of characters to/from files. This course will also cover the topics of namespaces, exception handling, and preprocessor directives. In the last part of the course, the student will learn some slightly more sophisticated programming techniques that deal with data structures such as linked lists and binary trees. Upon successful completion of this course, students will be able to: Compile and execute code written in C++ language; Work with the elementary data types and conditional and iteration structures; Define and use functions, pointers, arrays, struct, unions, and enumerations; Write C++ using principles of object-oriented programming; Write templates and manipulate the files; Code and use namespaces, exceptions, and preprocessor instructions; Write a code that represents linked lists and binary trees; Translate simple word problems into C++ language. (Computer Science 107)
C is the most commonly used programming language for writing operating systems. …
C is the most commonly used programming language for writing operating systems. The first operating system written in C is Unix. Later operating systems like GNU/Linux were all written in C. Not only is C the language of operating systems, it is the precursor and inspiration for almost all of the most popular high-level languages available today. In fact, Perl, PHP, Python and Ruby are all written in C. By way of analogy, let's say that you were going to be learning Spanish, Italian, French, or Portuguese. Do you think knowing Latin would be helpful? Just as Latin was the basis of all of those languages, knowing C will enable you to understand and appreciate an entire family of programming languages built upon the traditions of C. Knowledge of C enables freedom.
This book is a guide to Cascading Style Sheets (CSS), a technique …
This book is a guide to Cascading Style Sheets (CSS), a technique widely used in web pages including Wikipedia to describe their visual style and appearance. CSS can take HTML to new places creatively and functionally. Once you learn how to style mark-up, you can additionally learn JavaScript functions that make dynamic web pages.
This course introduces the compilation process, presenting foundational topics on formal languages …
This course introduces the compilation process, presenting foundational topics on formal languages and outline each of the essential compiler steps: scanning, parsing, translation and semantic analysis, code generation, and optimization. Upon successful completion of this course, the student will be able to: describe the compilation process and explain the function of the components that comprise the structure of a compiler; apply concepts of formal languages and finite-state machines to the translation of computer languages; identify the compiler techniques, methods, and tools that are applicable to other software applications; describe the challenges and state-of-the-practice of compiler theory and practice. This free course may be completed online at any time. (Computer Science 304)
This course is offered to graduates and is a project-oriented course to …
This course is offered to graduates and is a project-oriented course to teach new methodologies for designing multi-million-gate CMOS VLSI chips using high-level synthesis tools in conjunction with standard commercial EDA tools. The emphasis is on modular and robust designs, reusable modules, correctness by construction, architectural exploration, and meeting the area, timing, and power constraints within standard cell and FPGA frameworks.
Physics, modeling, application, and technology of compound semiconductors (primarily III-Vs) in electronic, …
Physics, modeling, application, and technology of compound semiconductors (primarily III-Vs) in electronic, optoelectronic, and photonic devices and integrated circuits. Topics: properties, preparation, and processing of compound semiconductors; theory and practice of heterojunctions, quantum structures, and pseudomorphic strained layers; metal-semiconductor field effect transistors (MESFETs); heterojunction field effect transistors (HFETs) and bipolar transistors (HBTs); and optoelectronic devices.
Theory for programmers. Introduction to programming and computability theory based on a …
Theory for programmers. Introduction to programming and computability theory based on a term-rewriting, "substitution" model of computation by Scheme programs with side-effects. Computation as algebraic manipulation: provable and valid inequalities for multivariate polynomials. Scheme evaluation as algebraic manipulation and term rewriting theory. Paradoxes from self-application and introduction to formal programming semantics. Undecidability of the Halting Problem for Scheme. Properties of recursively enumerable sets, leading to Incompleteness Theorems for Scheme equivalences. Introduction to logic for program specification and verification. Hilbert's Tenth Problem. Alternate years. 6.844 is a graduate introduction to programming theory, logic of programming, and computability, with the programming language Scheme used to crystallize computability constructions and as an object of study itself. Topics covered include: programming and computability theory based on a term-rewriting, "substitution" model of computation by Scheme programs with side-effects; computation as algebraic manipulation: Scheme evaluation as algebraic manipulation and term rewriting theory; paradoxes from self-application and introduction to formal programming semantics; undecidability of the Halting Problem for Scheme; properties of recursively enumerable sets, leading to Incompleteness Theorems for Scheme equivalences; logic for program specification and verification; and Hilbert's Tenth Problem.
" 6.004 offers an introduction to the engineering of digital systems. Starting …
" 6.004 offers an introduction to the engineering of digital systems. Starting with MOS transistors, the course develops a series of building blocks ŰÓ logic gates, combinational and sequential circuits, finite-state machines, computers and finally complete systems. Both hardware and software mechanisms are explored through a series of design examples. 6.004 is required material for any EECS undergraduate who wants to understand (and ultimately design) digital systems. A good grasp of the material is essential for later courses in digital design, computer architecture and systems. The problem sets and lab exercises are intended to give students "hands-on" experience in designing digital systems; each student completes a gate-level design for a reduced instruction set computer (RISC) processor during the semester."
This course is an introduction to computational theories of human cognition. Drawing …
This course is an introduction to computational theories of human cognition. Drawing on formal models from classic and contemporary artificial intelligence, students will explore fundamental issues in human knowledge representation, inductive learning and reasoning. What are the forms that our knowledge of the world takes? What are the inductive principles that allow us to acquire new knowledge from the interaction of prior knowledge with observed data? What kinds of data must be available to human learners, and what kinds of innate knowledge (if any) must they have?
Introduces design as a computational enterprise in which rules are developed to …
Introduces design as a computational enterprise in which rules are developed to compose and describe architectural and other designs. The class covers topics such as shapes, shape arithmetic, symmetry, spatial relations, shape computations, and shape grammars. It focuses on the application of shape grammars in creative design, and teaches shape grammar fundamentals through in-class, hands-on exercises with abstract shape grammars. The class discusses issues related to practical applications of shape grammars.
Why has it been easier to develop a vaccine to eliminate polio …
Why has it been easier to develop a vaccine to eliminate polio than to control influenza or AIDS? Has there been natural selection for a 'language gene'? Why are there no animals with wheels? When does 'maximizing fitness' lead to evolutionary extinction? How are sex and parasites related? Why don't snakes eat grass? Why don't we have eyes in the back of our heads? How does modern genomics illustrate and challenge the field? This course analyzes evolution from a computational, modeling, and engineering perspective. The course has extensive hands-on laboratory exercises in model-building and analyzing evolutionary data.
Study and discussion of computational approaches and algorithms for contemporary problems in …
Study and discussion of computational approaches and algorithms for contemporary problems in functional genomics. Topics include DNA chip design, experimental data normalization, expression data representation standards, proteomics, gene clustering, self-organizing maps, Boolean networks, statistical graph models, Bayesian network models, continuous dynamic models, statistical metrics for model validation, model elaboration, experiment planning, and the computational complexity of functional genomics problems.
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.