Online courses directory (224)
Cryptography is essentially the science of writing in secret code. In data and telecommunications, cryptography has specific security requirements, such as authentication, privacy or confidentiality, integrity, and non-repudiation. To meet these security requirements, we employ secret key (or symmetric) cryptography, public-key (or asymmetric) cryptography, and hash functions. In the first part of the course, we will review a number of different ciphers that were used before World War II. These ciphers would be easily broken nowadays, since cryptography has advanced quickly over the past couple of decades with the advent of modern computers. We will cover block cipher algorithms and describe the advanced encryption standard for a symmetric-key encryption adopted by the U.S. government. We will also learn about the important MD5 and SHA-1 hash functions as well as the message authentication code. This course will focus on public key cryptography, which is best exemplified by the RSA algorithm (na…
Please note that the verified certificate option is not currently open for this course. Please enroll in the audit track and you will be emailed when the verified certificate option is open for enrollment.
Businesses, consumers, and societies leave behind massive amounts of data as a by-product of their activities. Leading-edge companies in every industry are using analytics to replace intuition and guesswork in their decision-making. As a result, managers are collecting and analyzing enormous data sets to discover new patterns and insights and running controlled experiments to test hypotheses.
This course, part of the Analytics: Essential Tools and Methods MicroMasters program, prepares you to understand data and business analytics and become a leader in these areas in business organizations.
It covers the methodologies, algorithms, issues, and challenges related to analyzing business data. It will illustrate the processes of analytics by allowing you to apply business analytics algorithms and methodologies to real-world business datasets from finance, marketing, and operations. The use of real-world examples and cases places business analytics techniques in context and teaches you how to avoid the common pitfalls, emphasizing theimportance of applying proper business analytics techniques.
In addition to cases, this course features hands-on experiences with data collection, analysis, and visualization using Python programs and analytics software such as SAS.
This course includes a significant analytics project.
6.263J / 16.37J focuses on the fundamentals of data communication networks. One goal is to give some insight into the rationale of why networks are structured the way they are today and to understand the issues facing the designers of next-generation data networks. Much of the course focuses on network algorithms and their performance. Students are expected to have a strong mathematical background and an understanding of probability theory. Topics discussed include: layered network architecture, Link Layer protocols, high-speed packet switching, queueing theory, Local Area Networks, and Wide Area Networking issues, including routing and flow control.
Data that has relevance for managerial decisions is accumulating at an incredible rate due to a host of technological advances. Electronic data capture has become inexpensive and ubiquitous as a by-product of innovations such as the internet, e-commerce, electronic banking, point-of-sale devices, bar-code readers, and intelligent machines. Such data is often stored in data warehouses and data marts specifically intended for management decision support. Data mining is a rapidly growing field that is concerned with developing techniques to assist managers to make intelligent use of these repositories. A number of successful applications have been reported in areas such as credit rating, fraud detection, database marketing, customer relationship management, and stock market investments. The field of data mining has evolved from the disciplines of statistics and artificial intelligence.
This course will examine methods that have emerged from both fields and proven to be of value in recognizing patterns and making predictions from an applications perspective. We will survey applications and provide an opportunity for hands-on experimentation with algorithms for data mining using easy-to- use software and cases.
Data structures play a central role in computer science and are the cornerstones of efficient algorithms. Knowledge in this area has been at the kernel of related curriculums. This course aims at exploring the principles and methods in the design and implementation of various data structures and providing students with main tools and skills for algorithm design and performance analysis. Topics covered by this course range from fundamental data structures to recent research results.
This course is presented in Mandarin.
In what language will this course be offered?
Will the text of the lectures be available?
Yes. All of our lectures will have transcripts synced to the videos.
Do I need to watch the lectures live?
No. You can watch the lectures at your leisure.
Will certificates be awarded?
Yes. Online learners who achieve a passing grade in a course can earn a certificate of mastery. These certificates will indicate you have successfully completed the course, but will not include a specific grade. Certificates will be issued by edX under the name of DelftX, designating the institution from which the course originated.
Can I contact the Instructor or Teaching Assistants?
Yes, but not directly. The discussion forums are the appropriate venue for questions about the course. The instructors will monitor the discussion forums and try to respond to the most important questions; in many cases response from other students and peers will be adequate and faster.
Is this course related to a campus course at Tsinghua?
Yes. This course corresponds to the campus courses 00240074 (elective for undergraduates of all majors) and 30240184 (required for CS undergraduates), both named Data Structures.
What is the textbook of the course?
Junhui DENG, Data Structures in C++, Sep. 2013, 3rd edn., Tsinghua University Press, ISBN: 7-302-33064-6. (in Chinese)
What is the grading breakdown?
60% - 12 problem sets
40% - 4 programming assignments
This is an intermediate algorithms course with an emphasis on teaching techniques for the design and analysis of efficient algorithms, emphasizing methods of application. Topics include divide-and-conquer, randomization, dynamic programming, greedy algorithms, incremental improvement, complexity, and cryptography.
Techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics include sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; greedy algorithms; amortized analysis; graph algorithms; and shortest paths. Advanced topics may include network flow, computational geometry, number-theoretic algorithms, polynomial and matrix calculations, caching, and parallel computing.
We will present the state of the art energy minimization algorithms that are used to perform inference in modern artificial vision models: that is, efficient methods for obtaining the most likely interpretation of a given visual input. We will also cover the popular max-margin framework for estimating the model parameters using inference.
Distributed algorithms are algorithms designed to run on multiple processors, without tight centralized control. In general, they are harder to design and harder to understand than single-processor sequential algorithms. Distributed algorithms are used in many practical systems, ranging from large computer networks to multiprocessor shared-memory systems. They also have a rich theory, which forms the subject matter for this course.
The core of the material will consist of basic distributed algorithms and impossibility results, as covered in Prof. Lynch's book Distributed Algorithms. This will be supplemented by some updated material on topics such as self-stabilization, wait-free computability, and failure detectors, and some new material on scalable shared-memory concurrent programming.
Machine learning aims to extract knowledge from data, relying on fundamental concepts in computer science, statistics, probability and optimization. Learning algorithms enable a wide range of applications, from everyday tasks such as product recommendations and spam filtering to bleeding edge applications like self-driving cars and personalized medicine. In the age of ‘big data’, with datasets rapidly growing in size and complexity and cloud computing becoming more pervasive, machine learning techniques are fast becoming a core component of large-scale data processing pipelines.
This statistics and data analysis course introduces the underlying statistical and algorithmic principles required to develop scalable real-world machine learning pipelines. We present an integrated view of data processing by highlighting the various components of these pipelines, including exploratory data analysis, feature extraction, supervised learning, and model evaluation. You will gain hands-on experience applying these principles using Spark, a cluster computing system well-suited for large-scale machine learning tasks, and its packages spark.ml and spark.mllib. You will implement distributed algorithms for fundamental statistical models (linear regression, logistic regression, principal component analysis) while tackling key problems from domains such as online advertising and cognitive neuroscience.
Gene sequences and the rest of the genome play an important role in determining how an organism functions normally and reacts when situations change. DNA sequences can also be used to determine relationships between organisms and form the underpinnings of the Tree of Life.
Since DNA sequences play such an important role in any organism it should not be surprising that any changes to a sequence could lead to alterations in behavior or response. For example, a small number of specific changes in DNA sequence have been shown to lead to tumor development in mammals or the production of enzymes with altered properties.
One of the jobs of a bioinformatician is to help determine where these changes are in a DNA sequence and sort out in that context what effects may result, which is usually done by aligning the sequences in question.
In this course, part of the Bioinformatics MicroMasters program, you will learn about the theory and algorithms behind DNA alignments, practice doing alignments manually, and then perform more complicated alignments using web and software based approaches.
This course introduces students to iterative decoding algorithms and the codes to which they are applied, including Turbo Codes, Low-Density Parity-Check Codes, and Serially-Concatenated Codes. The course will begin with an introduction to the fundamental problems of Coding Theory and their mathematical formulations. This will be followed by a study of Belief Propagation--the probabilistic heuristic which underlies iterative decoding algorithms. Belief Propagation will then be applied to the decoding of Turbo, LDPC, and Serially-Concatenated codes. The technical portion of the course will conclude with a study of tools for explaining and predicting the behavior of iterative decoding algorithms, including EXIT charts and Density Evolution.
This course introduces the theory of error-correcting codes to computer scientists. This theory, dating back to the works of Shannon and Hamming from the late 40's, overflows with theorems, techniques, and notions of interest to theoretical computer scientists. The course will focus on results of asymptotic and algorithmic significance. Principal topics include:
- Construction and existence results for error-correcting codes.
- Limitations on the combinatorial performance of error-correcting codes.
- Decoding algorithms.
- Applications in computer science.