Posed with a paradigmatic engineering problem, students consider and explore mathematical algorithms …
Posed with a paradigmatic engineering problem, students consider and explore mathematical algorithms and/or geometric concepts to devise possible solutions. The problem: How should a robotic vacuum move in order to best clean a floor of unknown shape and dimensions? They grapple with what could be a complex problem by brainstorming ideas, presenting the best idea for a solution and analyzing all presented solutions, and then are introduced to an elegant solution. Rather than elaborately calculating the most efficient route and keeping track of which tiles the robot has visited, a random number generator determines which direction the robot will take when it hits a barrier. Students are able to visually confirm how an unfamiliar programming concept (a random number generator) can make for a simple and efficient program that causes an NXT robot (that is suitably equipped) to clean a bare floor. Then students think of other uses for random numbers.
This course will explore the state of the art in common sense …
This course will explore the state of the art in common sense knowledge, and class projects will design and build interfaces that can exploit this knowledge to make more usable and helpful interfaces. This year’s theme will be about how common sense knowledge differs in different languages and cultures, and how machine understanding of this knowledge can help increase communication between people, and between people and machines.
6.844 is a graduate introduction to programming theory, logic of programming, and …
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.
This is a step-by-step introduction to the music programming language SuperCollider. It …
This is a step-by-step introduction to the music programming language SuperCollider. It is aimed at students with little to no background in programming. Knowledge of basic music theory may be occasionally useful, but it is not required. This book encourages students to actively explore sound and musical structure through computer programming. Music and arts students interested in sound will find the tools to deepen their knowledge of digital music making. The book may also serve as a fun, music-oriented introduction to basic programming to a general audience of college students. SuperCollider is a free, open source software, and it runs on Linux, Windows, and Macintosh computers.
This is an open-source and open access book on how to do …
This is an open-source and open access book on how to do Data Science using Julia. The book describes the basics of the Julia programming language DataFrames.jl for data manipulation and Makie.jl for data visualization.
You will learn to:
- Read CSV and Excel data into Julia - Process data in Julia, that is, learn how to answer data questions - Filter and subset data - Handle missing data - Join multiple data sources together - Group and summarize data - Export data out of Julia to CSV and Excel files - Plot data with different Makie.jl backends - Save visualizations in several formats such as PNG or PDF - Use different plotting functions to make diverse data visualizations - Customize visualizations with attributes - Use and create new plotting themes - Add LaTeX elements to plots - Manipulate color and palettes - Create complex figure layouts
Students compare different types of code: symbolic code, pseudocode, block-based code, and …
Students compare different types of code: symbolic code, pseudocode, block-based code, and text-based code. Students write code to instruct their classmates to assemble stacks of cups in various configurations. First, they write symbolic code and then move on to pseudocode. Students are challenged to write loops in pseudocode, and if there is time, they are further challenged to write named functions. Loops and block-based code will be used in the unit’s final project, and the movement of the cups is similar to how “sprite” objects will move in the programs they will write.
6.821 teaches the principles of functional, imperative, and logic programming languages. Topics …
6.821 teaches the principles of functional, imperative, and logic programming languages. Topics covered include: meta-circular interpreters, semantics (operational and denotational), type systems (polymorphism, inference, and abstract types), object oriented programming, modules, and multiprocessing. 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.
Students learn basic concepts of robotic logic and programming by working with …
Students learn basic concepts of robotic logic and programming by working with Boe-Bot robotsâa simple programmable robotic platform designed to illustrate basic robotic concepts. Under the guidance of the instructor and a provided lab manual, student groups build simple circuits and write codes to make their robots perform a variety of tasks, including obstacle and light detection, line following and other motion routines. Eight sub-activities focus on different sensors, including physical sensors, phototransistors and infrared headlights. Students test their newly acquired skills in the final activity, in which they program their robots to navigate an obstacle course.
The basic objective of Unified Engineering is to give a solid understanding …
The basic objective of Unified Engineering is to give a solid understanding of the fundamental disciplines of aerospace engineering, as well as their interrelationships and applications. These disciplines are Materials and Structures (M); Computers and Programming (C); Fluid Mechanics (F); Thermodynamics (T); Propulsion (P); and Signals and Systems (S). In choosing to teach these subjects in a unified manner, the instructors seek to explain the common intellectual threads in these disciplines, as well as their combined application to solve engineering Systems Problems (SP). Throughout the year, the instructors emphasize the connections among the disciplines.
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.