Online courses directory (684)
6.826 provides an introduction to the basic principles of computer systems, with emphasis on the use of rigorous techniques as an aid to understanding and building modern computing systems. Particular attention is paid to concurrent and distributed systems. Topics covered include: specification and verification, concurrent algorithms, synchronization, naming, networking, replication techniques (including distributed cache management), and principles and algorithms for achieving reliability.
This course introduces the basic mathematical and programming principles that underlie much of Computer Science. Students will refine their programming skills as well as learn the basics of creating efficient solutions to common computational problems.
This course provides an introduction to Python and elementary principles of computing, including iteration, recursion, and binary representation of data. Additional topics on cellular automata, encryption, and the limits of computation are also introduced. The goal of this course is to introduce some of the techniques used in computer science to solve complex problems, with or without a computer. The Python modules are used to introduce and illustrate conditionals and iteration; additional topics are provided without using a specific programming language and can be incorporated into classes that do not use Python.
The course serves as an introduction to the theory and practice behind many of today's communications systems. 6.450 forms the first of a two-course sequence on digital communication. The second class, 6.451 Principles of Digital Communication II, is offered in the spring.
Topics covered include: digital communications at the block diagram level, data compression, Lempel-Ziv algorithm, scalar and vector quantization, sampling and aliasing, the Nyquist criterion, PAM and QAM modulation, signal constellations, finite-energy waveform spaces, detection, and modeling and system design for wireless communication.
This course is the second of a two-term sequence with 6.450. The focus is on coding techniques for approaching the Shannon limit of additive white Gaussian noise (AWGN) channels, their performance analysis, and design principles. After a review of 6.450 and the Shannon limit for AWGN channels, the course begins by discussing small signal constellations, performance analysis and coding gain, and hard-decision and soft-decision decoding. It continues with binary linear block codes, Reed-Muller codes, finite fields, Reed-Solomon and BCH codes, binary linear convolutional codes, and the Viterbi algorithm.
More advanced topics include trellis representations of binary linear block codes and trellis-based decoding; codes on graphs; the sum-product and min-sum algorithms; the BCJR algorithm; turbo codes, LDPC codes and RA codes; and performance of LDPC codes with iterative decoding. Finally, the course addresses coding for the bandwidth-limited regime, including lattice codes, trellis-coded modulation, multilevel coding and shaping. If time permits, it covers equalization of linear Gaussian channels.
This course studies basic optimization and the principles of optimal control. It considers deterministic and stochastic problems for both discrete and continuous systems. The course covers solution methods including numerical search algorithms, model predictive control, dynamic programming, variational calculus, and approaches based on Pontryagin's maximum principle, and it includes many examples and applications of the theory.
Learn how to write composable software that stays responsive at all times by being elastic under load and resilient in the presence of failures. Model systems after human organizations or inter-human communication.
This course is an introduction to the design, analysis, and fundamental limits of wireless transmission systems. Topics to be covered include: wireless channel and system models; fading and diversity; resource management and power control; multiple-antenna and MIMO systems; space-time codes and decoding algorithms; multiple-access techniques and multiuser detection; broadcast codes and precoding; cellular and ad-hoc network topologies; OFDM and ultrawideband systems; and architectural issues.
In this class, you will learn the basics of the PGM representation and how to construct them, using both human knowledge and machine learning techniques.
Welcome to 6.041/6.431, a subject on the modeling and analysis of random phenomena and processes, including the basics of statistical inference. Nowadays, there is broad consensus that the ability to think probabilistically is a fundamental component of scientific literacy. For example:
- The concept of statistical significance (to be touched upon at the end of this course) is considered by the Financial Times as one of "The Ten Things Everyone Should Know About Science".
- A recent Scientific American article argues that statistical literacy is crucial in making health-related decisions.
- Finally, an article in the New York Times identifies statistical data analysis as an upcoming profession, valuable everywhere, from Google and Netflix to the Office of Management and Budget.
The aim of this class is to introduce the relevant models, skills, and tools, by combining mathematics with conceptual understanding and intuition.
Basic concepts of computer programming are introduced, starting with the notion of an algorithm. Emphasis is on developing the ability to write programs to solve practical computational problems.
Topics include:
- Algorithms
- Elements of C/C++ programming languages
- Basic data types
- Sequential and conditional execution
- Iterative solutions
- Arrays, matrices and their applications
- Functions
- Sorting and searching
- Elements of string processing
- Introduction to pointers
- Basics of Software Engineering
- Structures
- File Processing
Learners will read and understand many sample programs, and will have to write several on their own. This course deals with basic programming, and sets the foundation for solid programming practices for beginners.
This course is part of the Fundamentals of Computer Science XSeries Program:
In this course----the third in a trans-institution sequence of MOOCs on Mobile Cloud Computing with Android--we will learn how to connect Android mobile devices to cloud computing and data storage resources, essentially turning a device into an extension of powerful cloud-based services on popular cloud computing platforms, such as Google App Engine and Amazon EC2.
Wildly popular due to its interactive multimedia capabilities, Java programming leads the list of Internet development skills in current commercial demand. This course is recommended for people who wish to become familiar with the principles of Java Programming. Through the use of hands-on exercises, students will explore the Java language fundamentals as well as basic concepts of object-oriented programming. At the end of this course, students will be able to:
This class will give you an introduction to the fundamentals of programming languages. Key concepts include how to specify and process valid strings, sentences and program structures.
Investigate the basic concepts behind programming languages, with an emphasis on the techniques and benefits of functional programming. Use the programming languages ML, Racket, and Ruby to learn how the pieces of a language fit together to create more than the sum of the parts. Gain new software skills and the concepts needed to learn new languages on your own.
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.
Introduction to the design and implementation of applications for handheld systems, such as smartphones and tablets, running the Android Platform.
The topics in this course cover all the essential concepts from the Project Management Institute (PMI)'s book 'A Guide to the Project Management Body of Knowledge (PMBOK) Guide, Fourth Edition'. The course teaches topics ranging from beginner-thru-advanced level Project Management concepts. In the course students will learn about: projects versus operations, choosing a team, scheduling, budgeting, controlling cost, measuring and controlling project performance, and much more. Students who are preparing for the PMI Certification (PMP or CAPM) can use this course to help fulfill the training requirement. If you already have your PMP certification, you can also use this toward your CCRs (Continuing Certification Requirements). It will count as 20 hours of Project Planning and 15 hours of Project Controlling.
Introduction to programming and computer science. Introduction to Programs Data Types and Variables. Binary Numbers. Python Lists. For Loops in Python. While Loops in Python. Fun with Strings. Writing a Simple Factorial Program. (Python 2). Stepping Through the Factorial Program. Flowchart for the Factorial Program. Python 3 Not Backwards Compatible with Python 2. Defining a Factorial Function. Diagramming What Happens with a Function Call. Recursive Factorial Function. Comparing Iterative and Recursive Factorial Functions. Exercise - Write a Fibonacci Function. Iterative Fibonacci Function Example. Stepping Through Iterative Fibonacci Function. Recursive Fibonacci Example. Stepping Through Recursive Fibonacci Function. Exercise - Write a Sorting Function. Insertion Sort Algorithm. Insertion Sort in Python. Stepping Through Insertion Sort Function. Simpler Insertion Sort Function. Introduction to Programs Data Types and Variables. Binary Numbers. Python Lists. For Loops in Python. While Loops in Python. Fun with Strings. Writing a Simple Factorial Program. (Python 2). Stepping Through the Factorial Program. Flowchart for the Factorial Program. Python 3 Not Backwards Compatible with Python 2. Defining a Factorial Function. Diagramming What Happens with a Function Call. Recursive Factorial Function. Comparing Iterative and Recursive Factorial Functions. Exercise - Write a Fibonacci Function. Iterative Fibonacci Function Example. Stepping Through Iterative Fibonacci Function. Recursive Fibonacci Example. Stepping Through Recursive Fibonacci Function. Exercise - Write a Sorting Function. Insertion Sort Algorithm. Insertion Sort in Python. Stepping Through Insertion Sort Function. Simpler Insertion Sort Function.
In this subject, we consider two basic topics in cellular biophysics, posed here as questions:
- Which molecules are transported across cellular membranes, and what are the mechanisms of transport? How do cells maintain their compositions, volume, and membrane potential?
- How are potentials generated across the membranes of cells? What do these potentials do?
Although the questions posed are fundamentally biological questions, the methods for answering these questions are inherently multidisciplinary. As we will see throughout the course, the role of mathematical models is to express concepts precisely enough that precise conclusions can be drawn. In connection with all the topics covered, we will consider both theory and experiment. For the student, the educational value of examining the interplay between theory and experiment transcends the value of the specific knowledge gained in the subject matter.
This course is jointly offered through four departments, available to both undergraduates and graduates.
Trusted paper writing service WriteMyPaper.Today will write the papers of any difficulty.