All resources in this collection have been identified by keyword Computer Science. If there are resources that should be included, please add this keyword to resources. We hope you find it valuable.
This is a fast-paced introductory course to the C++ programming language. It …
This is a fast-paced introductory course to the C++ programming language. It is intended for those with little programming background, though prior programming experience will make it easier, and those with previous experience will still learn C++-specific constructs and concepts. This course is offered 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.
Developed by the NYCDOE CS education team, the Introduction to Computational Media …
Developed by the NYCDOE CS education team, the Introduction to Computational Media is a yearlong (108 hours) creative computing course for high schools using the open source Javascript library p5.js. By understanding how code can be a medium for creative expression, students will learn the fundamentals of computer science while designing and prototyping interactive projects that run on a browser. Additionally, students will learn how HTML/CSS elements can interact with p5.js to fully take advantage of developing content for a browser. This course has been implemented in NYC schools via CS4All’s Software Engineering Program (SEP), revised by classroom teachers with guidance from the Processing Foundation, and aligns with the CS4All Blueprint for CS education that emphasizes a hands-on CS approach called creative computing. Watch this video and view this fact sheet for more information.
This course presents the fundamentals of object-oriented software design and development, computational …
This course presents the fundamentals of object-oriented software design and development, computational methods and sensing for engineering, and scientific and managerial applications. It cover topics, including design of classes, inheritance, graphical user interfaces, numerical methods, streams, threads, sensors, and data structures. Students use Java programming language to complete weekly software assignments. How is 1.00 different from other intro programming courses offered at MIT? 1.00 is a first course in programming. It assumes no prior experience, and it focuses on the use of computation to solve problems in engineering, science and management. The audience for 1.00 is non-computer science majors. 1.00 does not focus on writing compilers or parsers or computing tools where the computer is the system; it focuses on engineering problems where the computer is part of the system, or is used to model a physical or logical system. 1.00 teaches the Java programming language, and it focuses on the design and development of object-oriented software for technical problems. 1.00 is taught in an active learning style. Lecture segments alternating with laboratory exercises are used in every class to allow students to put concepts into practice immediately; this teaching style generates questions and feedback, and allows the teaching staff and students to interact when concepts are first introduced to ensure that core ideas are understood. Like many MIT classes, 1.00 has weekly assignments, which are programs based on actual engineering, science or management applications. The weekly assignments build on the class material from the previous week, and require students to put the concepts taught in the small in-class labs into a larger program that uses multiple elements of Java together.
This course aims to give students the tools and training to recognize …
This course aims to give students the tools and training to recognize convex optimization problems that arise in scientific and engineering applications, presenting the basic theory, and concentrating on modeling aspects and results that are useful in applications. Topics include convex sets, convex functions, optimization problems, least-squares, linear and quadratic programs, semidefinite programming, optimality conditions, and duality theory. Applications to signal processing, control, machine learning, finance, digital and analog circuit design, computational geometry, statistics, and mechanical engineering are presented. Students complete hands-on exercises using high-level numerical software. Acknowledgements The course materials were developed jointly by Prof. Stephen Boyd (Stanford), who was a visiting professor at MIT when this course was taught, and Prof. Lieven Vanderberghe (UCLA).
An introduction to several fundamental ideas in electrical engineering and computer science, …
An introduction to several fundamental ideas in electrical engineering and computer science, using digital communication systems as the vehicle. The three parts of the course - bits, signals, and packets - cover three corresponding layers of abstraction that form the basis of communication systems like the Internet. The course teaches ideas that are useful in other parts of EECS: abstraction, probabilistic analysis, superposition, time and frequency-domain representations, system design principles and trade-offs, and centralized and distributed algorithms. The course emphasizes connections between theoretical concepts and practice using programming tasks and some experiments with real-world communication channels.
This course is an introductory subject in the field of electric power …
This course is an introductory subject in the field of electric power systems and electrical to mechanical energy conversion. Electric power has become increasingly important as a way of transmitting and transforming energy in industrial, military and transportation uses. Electric power systems are also at the heart of alternative energy systems, including wind and solar electric, geothermal and small scale hydroelectric generation.
Our primary goal is for you to learn to appreciate and use …
Our primary goal is for you to learn to appreciate and use the fundamental design principles of modularity and abstraction in a variety of contexts from electrical engineering and computer science.
Students will learn about the basics of machine learning and create their …
Students will learn about the basics of machine learning and create their own apps that implement these concepts through image classification. The students will take photos with their mobile devices and the apps will identify objects within those photos. Each classification comes with a confidence level, a value of how confident the app is with its classification. Students will use MIT App Inventor’s machine learning extension called the LookExtension when creating this app.
This Introduction to Machine Learning includes tutorial lessons as well as suggestions for student explorations and project work. The unit also includes supplementary teaching materials: lesson plans, slides, unit outlines, assessments and mappings against the Computer Science Teachers of America (CSTA) computing standards.
This course is an introduction to linear optimization and its extensions emphasizing …
This course is an introduction to linear optimization and its extensions emphasizing the underlying mathematical structures, geometrical ideas, algorithms and solutions of practical problems. The topics covered include: formulations, the geometry of linear optimization, duality theory, the simplex method, sensitivity analysis, robust optimization, large scale optimization network flows, solving problems with an exponential number of constraints and the ellipsoid method, interior point methods, semidefinite optimization, solving real world problems problems with computer software, discrete optimization formulations and algorithms.
This subject provides an introduction to modeling and simulation, covering continuum methods, …
This subject provides an introduction to modeling and simulation, covering continuum methods, atomistic and molecular simulation, and quantum mechanics. Hands-on training is provided in the fundamentals and applications of these methods to key engineering problems. The lectures provide exposure to areas of application based on the scientific exploitation of the power of computation. We use web based applets for simulations, thus extensive programming skills are not required.
Developed by the NYCDOE CS education team, the Introduction to Physical Computing …
Developed by the NYCDOE CS education team, the Introduction to Physical Computing course is a 54-hour long introductory computer science course that guides students to explore fundamental CS concepts through tinkering with the micro:bit, a simple programmable computer device. Each unit of the course guides students through the learning process with three practices: analyzing computer applications around them based on a given issue; prototyping a project that reflects the result of the analysis plus their interest; and communicating about their projects, including the functionality of a project, a project development process, influence from other projects and their contribution to a project when working in a group. The curriculum and support sessions assist educators in discovering the most effective way of facilitating this course for their own classroom, while helping them to become comfortable with the main tool, the micro:bit.
" This course is an introduction to software engineering, using the Java™ …
" This course is an introduction to software engineering, using the Java™ programming language. It covers concepts useful to 6.005. Students will learn the fundamentals of Java. The focus is on developing high quality, working software that solves real problems. The course is designed for students with some programming experience, but if you have none and are motivated you will do fine. Students who have taken 6.005 should not take this course. Each class is composed of one hour of lecture and one hour of assisted lab work. This course is offered 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."
In this lesson, students will begin exploring and creating on Scratch. They …
In this lesson, students will begin exploring and creating on Scratch. They learn how to log in, learn about the interface, and explore on their own. Students will reflect on what they discovered while exploring and how they might wish to create using Scratch. The overall aim is for students to get a taste for Scratch that sparks their interest and curiosity, so they start to imagine what they might create.
The aim of this video lesson is to teach students about the …
The aim of this video lesson is to teach students about the different topologies of computer networks and how they function. The approach that is used is highly correlated with common knowledge about weddings and the local Malay culture associated with weddings. Students should be able to relate the act of delivering food to a large crowd of people to the basic principles of network topologies and the method of data transfer within each type of topology. The lesson will begin in a classroom with students working in small groups, answering assigned questions. Teaching aids such as color cards will be used. One student from each group will be appointed as the wedding event manager, and she/he will have to discuss and act out with group members in order to answer more challenging questions. At the end of the lesson, students will be asked to come up with their own version of a hybrid computer network topology. The lesson concept taught here not only educates students on computer topologies, but also introduces students to an important cultural perspective of Malaysia. Above all, this video is designed to assist students with their study of Computer Literacy in schools. The lesson will take up to 60 minutes to complete. Materials needed include: 10 red cards representing waitresses; 10 green cards representing waiters; 10 blue cards representing tables in the hall; a sketch book; and classroom tables and chairs.
The aim of this video lesson is to teach students about the …
The aim of this video lesson is to teach students about the different topologies of computer networks and how they function. The approach that is used is highly correlated with common knowledge about weddings and the local Malay culture associated with weddings. Students should be able to relate the act of delivering food to a large crowd of people to the basic principles of network topologies and the method of data transfer within each type of topology. The lesson will begin in a classroom with students working in small groups, answering assigned questions. Teaching aids such as color cards will be used. One student from each group will be appointed as the wedding event manager, and she/he will have to discuss and act out with group members in order to answer more challenging questions. At the end of the lesson, students will be asked to come up with their own version of a hybrid computer network topology. The lesson concept taught here not only educates students on computer topologies, but also introduces students to an important cultural perspective of Malaysia. Above all, this video is designed to assist students with their study of Computer Literacy in schools. The lesson will take up to 60 minutes to complete. Materials needed include: 10 red cards representing waitresses; 10 green cards representing waiters; 10 blue cards representing tables in the hall; a sketch book; and classroom tables and chairs.
This lesson is an extension of Mystery Science Force Olympics Mystery 3. …
This lesson is an extension of Mystery Science Force Olympics Mystery 3. In this extension, students will create a wrecking ball using the Lego WeDo 2.0 kit and program it to knock down a wall. Students will experiment with different variables (like speed, distance and string length) to answer the question: "How can you knock down a wall?" (credit Mystery Science Mystery 3 guiding question). This activity should be done over multiple days (viewing mystery, building the robot and programing and experimenting). Building instructions for the wrecking ball arm are attached as picture steps.
This is an engaging project for students who have never programmed before. …
This is an engaging project for students who have never programmed before. Students create a musical light show by designing and programming their own Arduino-based circuit. They will problem-solve timing, frequency, color, circuit design and the language of Arduino-based programming to create custom made light-up electronic music boxes. This project was developed by Allen Distinguished Educators Tracey Winey and Dawn DuPriest.
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.