Introduction to Computer Graphics is a free, on-line textbook covering the fundamentals …
Introduction to Computer Graphics is a free, on-line textbook covering the fundamentals of computer graphics and computer graphics programming. This book is meant for use as a textbook in a one-semester course that would typically be taken by undergraduate computer science majors in their third or fourth year of college.
Welcome to the website for An Introduction to Computer Networks, a free …
Welcome to the website for An Introduction to Computer Networks, a free and open general-purpose computer-networking textbook, complete with diagrams and exercises. It covers the LAN, internetworking and transport layers, focusing primarily on TCP/IP. Particular attention is paid to congestion; other special topics include queuing, real-time traffic, network management, security and the ns simulator.
The book is suitable as the primary text for an undergraduate or introductory graduate course in computer networking, as a supplemental text for a wide variety of network-related courses, and as a reference work.
This subject is aimed at students with little or no programming experience. …
This subject is aimed at students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems. It also aims to help students, regardless of their major, to feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class will use the Python programming language.
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.
This book was written to introduce students to assembly language programming in …
This book was written to introduce students to assembly language programming in MIPS. As with all assemblylanguage programming texts, it covers basic operators and instructions, subprogram calling, loading andstoring memory, program control, and the conversion of the assembly language program into machine code.
However this book was not written simply as a book on assembly language programming. The larger purposeof this text is to show how concepts in Higher Level Languages (HLL), such as Java or C/C++, arerepresented in assembly. By showing how program constructs from these HLL map into assembly, theconcepts will be easier to understand and use when the programmer implements programs in languages likeJava or C/C++. Concepts such as references and variables, registers, binary and Boolean operations, subprogram execution, memory types (heap, stack, and static), and array processing are covered to clarify thedecisions made when implementing HLL. Program control is presented using a mapping from structuredprograms in pseudo code to help students understand structured programming, and why it exists. Memoryaccess in assembly is presented to high light the difference between references (pointers) and values, and howthese impact HLL.
This book has numerous code examples, and many problems at the end of each chapter, and it is appropriate for a class in Assembly Language, or as a extra resource for a class in Computer Organization.
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.
This book is directed mainly towards beginning programmers, although it might also …
This book is directed mainly towards beginning programmers, although it might also be useful for experienced programmers who want to learn something about Java. It is certainly not meant to provide complete coverage of the Java language.
This course is an introduction to software engineering, using the Java™ programming …
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.
Computers are everywhere in our daily lives. Between the desktop, laptop, phone, …
Computers are everywhere in our daily lives. Between the desktop, laptop, phone, bank, and vehicle, it is difficult to completely get away from computers. It only makes sense to learn a little about how a computer really works.This text provides an introduction to programming and problem solving using the Fortran 95/2003/2008 programming language. This introduction is geared for non-computer science majors. The primary focus is on an introduction to problem solving and algorithm development. As such, many details of the Fortran 95/2003/2008 language are omitted.
This course offers an introduction to the interdisciplinary study of videogames as …
This course offers an introduction to the interdisciplinary study of videogames as texts through an examination of their cultural, educational, and social functions in contemporary settings. Students play and analyze videogames while reading current research and theory from a variety of sources in the sciences, social sciences, humanities, and industry. Assignments focus on game analysis in the context of the theories discussed in class. Class meetings involve regular reading, writing, and presentation exercises. No prior programming experience required. Students taking the graduate version complete additional assignments.
With raised awareness and accessibility laws emerging around the world, understanding what …
With raised awareness and accessibility laws emerging around the world, understanding what inclusive access to the Web means is becoming necessary knowledge for anyone who produces digital content. Much of the current information on Web accessibility requires some technical understanding, and may be difficult to consume for the average person. The instruction here will “interpret” the W3C Web Content Accessibility Guidelines (WCAG 2.1), to make it easier to understand for a general audience. You will have an opportunity to experience barriers firsthand, then experience that content with the barriers removed, developing a practical understanding of web accessibility.
Introduction to the Modeling and Analysis of Complex Systems introduces students to …
Introduction to the Modeling and Analysis of Complex Systems introduces students to mathematical/computational modeling and analysis developed in the emerging interdisciplinary field of Complex Systems Science. Complex systems are systems made of a large number of microscopic components interacting with each other in nontrivial ways. Many real-world systems can be understood as complex systems, where critically important information resides in the relationships between the parts and not necessarily within the parts themselves. This textbook offers an accessible yet technically-oriented introduction to the modeling and analysis of complex systems. The topics covered include: fundamentals of modeling, basics of dynamical systems, discrete-time models, continuous-time models, bifurcations, chaos, cellular automata, continuous field models, static networks, dynamic networks, and agent-based models. Most of these topics are discussed in two chapters, one focusing on computational modeling and the other on mathematical analysis. This unique approach provides a comprehensive view of related concepts and techniques, and allows readers and instructors to flexibly choose relevant materials based on their objectives and needs. Python sample codes are provided for each modeling example.
Students learn about video motion capture technology, becoming familiar with concepts such …
Students learn about video motion capture technology, becoming familiar with concepts such as vector components, magnitudes and directions, position, velocity, and acceleration. They use a (free) classroom data collection and processing tool—the ARK Mirror—to visualize and record 3-D motion. The Augmented Reality Kinematics (ARK) Mirror software collects data via a motion detector. Using an Orbbec Astra Pro 3D camera or Microsoft Kinect (see note below), students can visualize and record a robust set of data and interpret them using statistical and graphical methods. This lesson introduces students to just one possible application of the ARK Mirror software—in the context of a high school physics class. Note: The ARK Mirror is ported to operate on an Orbbec platform. It may also be used with a Microsoft Kinect, although that Microsoft hardware has been discontinued. Refer to the Using ARK Mirror and Microsoft Kinect attachment for how to use the ARK MIrror software with Microsoft Kinect.
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.
We have designed this third edition of Java, Java, Java to be …
We have designed this third edition of Java, Java, Java to be suitable for a typical Introduction to Computer Science (CS1) course or for a slightly more advanced Java as a Second Language course. This edition retains the “objects first” approach to programming and problem solving that was characteristic of the first two editions. Throughout the text we emphasize careful coverage of Java language features, introductory programming concepts, and object-oriented design principles.
This book is Part I of a two-part set that introduces the …
This book is Part I of a two-part set that introduces the Java programminglanguage. The text assumes the student will be using the BlueJ developmentenvironment and provides some introductory BlueJ material. Our experiencehas been that BlueJ is easy to learn and provides a good programmingenvironment for the beginner programmer.
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.