In this book we aim to introduce you both to the Haskell …
In this book we aim to introduce you both to the Haskell language, from the very basics to advanced features, and to computer programming in general. We urge seasoned programmers to be especially patient with this process. In all likelihood, the languages you are most familiar with differ greatly from Haskell, and habits from those languages might make it more difficult to understand how things work − they are simple, but different. Face learning to see the world through the warped mindset of a functional programmer as an adventure in a brave new world, which will bring you understanding valuable far beyond the boundaries of any language.
This tutorial is a great first-time view and explanation of coding using …
This tutorial is a great first-time view and explanation of coding using javascript drag and drop method. It sets the stage for the though process between connecting events and accomplishing an event. After a 3 minute introduction and demonstration, users are able to get right to it by practicing to code using the drag and drop method.
Python is a fun and extremely easy-to-use programming language that has steadily …
Python is a fun and extremely easy-to-use programming language that has steadily gained in popularity over the last few years. Developed over ten years ago by Guido van Rossum, Python's simple syntax and overall feel is largely derived from ABC, a teaching language that was developed in the 1980's. However, Python was also created to solve real problems and it borrows a wide variety of features from programming languages such as C++, Java, Modula-3, and Scheme. Because of this, one of Python's most remarkable features is its broad appeal to professional software developers, scientists, researchers, artists, and educators. 278 page pdf file.
Broad coverage of technology concepts underlying modern computing and information management. Topics …
Broad coverage of technology concepts underlying modern computing and information management. Topics include computer architecture and operating systems, relational database systems, graphical user interfaces, networks, client/server systems, enterprise applications, cryptography, and the web. Hands-on exposure to internet services, Microsoft Access database management system, and Lotus Notes. Information Technology I helps students understand technical concepts underlying current and future developments in information technology. There will be a special emphasis on networks and distributed computing. Students will also gain some hands-on exposure to powerful, high-level tools for making computers do amazing things, without the need for conventional programming languages. Since 15.564 is an introductory course, no knowledge of how computers work or are programmed is assumed.
This course was offered as a non-credit program during the Independent Activities …
This course was offered as a non-credit program 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. The course, intended for students with no programming experience, provides the foundations of programming in MATLABĺ. Variables, arrays, conditional statements, loops, functions, and plots are explained. At the end of the course, students should be able to use MATLAB in their own work, and be prepared to deepen their MATLAB programming skills and tackle other languages for computing, such as Java, C++, or Python. The course mostly follows the official MATLAB Manual, available from The MathWorks. We will cover material from chapters 2-5. Technical Requirements:Special software is required to use some of the files in this course: .m.
Here's a quick run-down of how we teach coding here: We explain …
Here's a quick run-down of how we teach coding here:
We explain new concepts using a talk-through, which is like a video but more interactive.Then you'll do a step-by-step challenge to practice that concept.Finally, you'll work on a project, where you can get more practice and be more creative with the skills you've learned.
The Little Book of Semaphores is a free (in both senses of …
The Little Book of Semaphores is a free (in both senses of the word) textbook that introduces the principles of synchronization for concurrent programming.In most computer science curricula, synchronization is a module in an Operating Systems class. OS textbooks present a standard set of problems with a standard set of solutions, but most students don't get a good understanding of the material or the ability to solve similar problems.The approach of this book is to identify patterns that are useful for a variety of synchronization problems and then show how they can be assembled into solutions. After each problem, the book offers a hint before showing a solution, giving students a better chance of discovering solutions on their own.The book covers the classical problems, including "Readers-writers," "Producer-consumer", and "Dining Philosophers." In addition, it collects a number of not-so-classical problems, some written by the author and some by other teachers and textbook writers. Readers are invited to create and submit new problems.
These projects are downloadable step-by-step guides, with explanations and color screenshots for …
These projects are downloadable step-by-step guides, with explanations and color screenshots for students to follow. Each project is a stand-alone activity, written to last for a single lesson, and will guide children to create a game or interactive project that demonstrates a real-world use of artificial intelligence and machine learning.
Based on their experience exploring the Mars rover Curiosity and learning about …
Based on their experience exploring the Mars rover Curiosity and learning about what engineers must go through to develop a vehicle like Curiosity, students create Android apps that can control LEGO MINDSTORMS(TM) NXT robots, simulating the difficulties the Curiosity rover could encounter. The activity goal is to teach students programming design and programming skills using MIT's App Inventor software as the vehicle for the learning. The (free to download) App Inventor program enables Android apps to be created using building blocks without having to actually know a programming language. At activity end, students are ready to apply what they learn to write other applications for Android devices.
The aim of the students from the Numeric Photography class at the …
The aim of the students from the Numeric Photography class at the MIT Media Laboratory was to present an exhibition of digital artworks which blend photography and computation, in the context of scene-capture, image-play, and interaction. Equipped with low-end digital cameras, students created weekly software projects to explore aesthetic issues in signal processing and interaction design. The results are more than a hundred Java applets -- many of which are interactive -- that suggest new avenues for image-play on the computer. These weekly exercises led to the final product, an exhibition of the student work.
This class introduces elementary programming concepts including variable types, data structures, and …
This class introduces elementary programming concepts including variable types, data structures, and flow control. After an introduction to linear algebra and probability, it covers numerical methods relevant to mechanical engineering, including approximation (interpolation, least squares and statistical regression), integration, solution of linear and nonlinear equations, ordinary differential equations, and deterministic and probabilistic approaches. Examples are drawn from mechanical engineering disciplines, in particular from robotics, dynamics, and structural analysis. Assignments require MATLAB programming.
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.
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.
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.
Students analyze a cartoon of a Rube Goldberg machine and a Python …
Students analyze a cartoon of a Rube Goldberg machine and a Python programming language script to practice engineering analysis. In both cases, they study the examples to determine how the different systems operate and the function of each component. This exercise in juxtaposition enables students to see the parallels between a more traditional mechanical engineering design and computer programming. Students also gain practice in analyzing two very different systems to fully understand how they work, similar to how engineers analyze systems and determine how they function and how changes to the system might affect the system.
Working in small groups, students complete and run functioning Python codes. They …
Working in small groups, students complete and run functioning Python codes. They begin by determining the missing commands in a sample piece of Python code that doubles all the elements of a given input and sums the resulting values. Then students modify more advanced Python code, which numerically computes the slope of a tangent line by finding the slopes of progressively closer secant lines; to this code they add explanatory comments to describe the function of each line of code. This requires students to understand the logic employed in the Python code. Finally, students make modifications to the code in order to find the slopes of tangents to a variety of functions.
This unit is designed for advanced programming classes. It leads students through …
This unit is designed for advanced programming classes. It leads students through a study of human vision and computer programming simulation. Students apply their previous knowledge of arrays and looping structures to implement a new concept of linked lists and RGB decomposition in order to solve the unit's Grand Challenge: writing a program to simulate peripheral vision by merging two images. This unit connects computer science to engineering by incorporating several science topics (eye anatomy, physics of light and color, mathematics, and science of computers) and guides students through the design process in order to create final simulations.
Pre-made cards that are appropriate for students learning Scratch. Each card breaks …
Pre-made cards that are appropriate for students learning Scratch. Each card breaks down a specific complex action and how to program that action using the Scratch blocks. Found on the ScratchEd website, which provides a huge variety of resources, tutorials and other support to educators teaching programming concepts through Scratch.
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.