Online courses directory (434)
Creative Programming for Audiovisual Art aims to enhance student skills and experience in the development of software for the creation and manipulation of sounds and images, both in real and non-real time. The course explores the intersection and similarities between sound and image signal processing through the exploration of combined audiovisual approaches. As such it is suitable for those with a strong interest in creative technologies from either an engineering or creative arts background.
We will spend the first few sessions exploring Digital Audio Signal Processing. This will cover synthesis, sequencing, filtering, sample loading and playback, panning and rudimentary analysis. Following this we’ll be looking at audiovisual interaction using video and 3D graphics.
This course will introduce you to the field of computer science and the fundamentals of computer programming. Introduction to Computer Science I is specifically designed for students with no prior programming experience, and taking this course does not require a background in Computer Science. This course will touch upon a variety of fundamental topics within the field of Computer Science and will use Java, a high-level, portable, and well-constructed computer programming language developed by Sun Microsystems (now Oracle), to demonstrate those principles. We will begin with an overview of the course topics as well as a brief history of software development. We will cover basic object-oriented programming terminology and concepts such as objects, classes, inheritance, and polymorphism, as well as the fundamentals of Java, its primitive data types, relational operators, control statements, exception handling, and file input /output. By the end of the course, you should have a strong understanding of the fundam…
This course is a continuation of the first-semester course titled CS101: Introduction to Computer Science I . It will introduce you to a number of more advanced Computer Science topics, laying a strong foundation for future academic study in the discipline. We will begin with a comparison between Java - the programming language utilized last semester - and C++, another popular, industry-standard programming language. We will then discuss the fundamental building blocks of Object-Oriented Programming, reviewing what we learned last semester and familiarizing ourselves with some more advanced programming concepts. The remaining course units will be devoted to various advanced topics, including the Standard Template Library, Exceptions, Recursion, Searching and Sorting, and Template Classes. By the end of the class, you will have a solid understanding of Java and C++ programming, as well as a familiarity with the major issues that programmers routinely address in a professional setting.  http://www.saylor.
D-Lab Health provides a multidisciplinary approach to global health technology design via guest lectures and a major project based on fieldwork. We will explore the current state of global health challenges and learn how to design medical technologies that address those problems. Students may travel to Nicaragua during spring break to work with health professionals, using medical technology design kits to gain field experience for their device challenge. As a final class deliverable, you will create a product design solution to address challenges observed in the field. The resulting designs are prototyped in the summer for continued evaluation and testing.
Other OCW Versions
Knowing how to code is only part of the skills needed to become a professional software developer.
This course, part of the CS Essentials for Software Development Professional Certificate program, will take your skills to the next level by teaching you how to write “good” software that appropriately represents and organizes data, is easy to maintain, and is of high quality.
As the purpose of most computer programs is to manipulate data, sometimes large quantities of it, the manner in which programs represent and organize data can have an enormous effect on the simplicity and efficiency of the code. In this course, you will learn about important core data structures such as arrays, lists, stacks, queues, sets, maps, trees, and graphs, and learn how to evaluate them and reason about their behavior and efficiency.
Most importantly, you will learn how to determine which data structure is the most appropriate for solving the problem at hand, and see how to use the implementations that are part of the Java library.
However, choosing the right data structure is only part of the challenge of developing high quality software: you must also consider the design of the classes that use those data structures. You will learn about software design principles such as modularity, functional independence, and abstraction, and apply those concepts toward writing programs that are easy to understand, easy to modify, and easy to test.
Although it is important to know how to write high quality code, professional software developers often spend a majority of their time maintaining existing code. You will also learn about software refactoring techniques for improving the design of existing code, and see how to improve code efficiency.
This course will use Java but the concepts you learn can be applied to almost all modern programming languages.
In this course you will learn the process of turning ideas into technical solutions. Early learners often need to learn context and the big ideas of a process before diving into the advanced details, and that’s exactly what you’ll get in this course. You’ll build upon your own idea for an app as you learn the process of conducting market research, user-centered design, and front-end web development. By the end of the course, you will have a user-centered design, wireframes and specification for a web app, along with a front-end user interface built with HTML and CSS.
Upon completion of this course, you will be able to:
- Describe how software is used to solve problems
- Define application requirements based on user research
- Design effective products using Human Centered Design
- Employ Visual Studio Code and web browser tools in the development of web pages
- Learn the basics of how the Internet works
- Explore various prototyping techniques following industry standard design principles
- Develop basic HTML and CSS webpages
The laws of nature are expressed as differential equations. Scientists and engineers must know how to model the world in terms of differential equations, and how to solve those equations and interpret the solutions. This course focuses on the equations and techniques most useful in science and engineering.
- Lecture Videos by Professor Arthur Mattuck.
- Course Notes on every topic.
- Practice Problems with Solutions.
- Problem Solving Videos taught by experienced MIT Recitation Instructors.
- Problem Sets to do on your own with Solutions to check your answers against when you're done.
- A selection of Interactive Java® Demonstrations called Mathlets to illustrate key concepts.
- A full set of Exams with Solutions, including practice exams to help you prepare.
Dr. John Lewis
Other OCW Versions
OCW has published multiple versions of this subject.
Software engineering and asset production are the means of digital game development, but the end is an intentional experience. Digital game design is the process of creating, implementing and iteratively refining that experience.