Начинаем год правильно. Подборка лучших онлайн курсов в области Computer Science.

Начало нового года - отличное время для того чтобы начать/продолжить изучать что-нибудь! Не буду рассказывать про множество доступных ресурсов, где можно бесплатно пройти тот или иной курс. Надеюсь что вы знаете про их наличие =). Приведу небольшую подборку онлайн курсов, которые мне показались особенно интересными по разным критериям - университету, теме, наличию того или иного вида контента и пр. Выбранные темы будут интересны как специалистам в области Computer Science, так и тем кто просто интересуется этой обширной областью знаний.  Я приведу шесть курсов (все курсы на английском) - три из них на сайте Coursera.org, три - MIT OpenCourseWare

Итак, это курсы с Coursera.org и MIT OpenCourseWare. Первый ресурс использует модель, при которой курсы, как правило, имеют временные рамки. Это подталкивает более активно участвовать в процессе обучения, так как для выполнения тестов, просмотра видеолекций - установлены дедлайны.  Кроме того, все курсы, которые выложены там, адаптированы для онлайн обучения. То есть, в отличие от ресурса MIT, это не записи "офлайн" лекций. На Coursera предусмотрены различные тесты или практические задания, которые нужно выполнять по ходу прохождения курса. В тех курсах Coursera, которые я приведу здесь - предлагается получить свидетельство/сертификат о завершении курса. 

MIT OpenCourseWare предлагает огромное количество курсов, для некоторых есть видеолекции, а для некоторых нет. В тех курсах, которые я привожу, имеются видеолекции. Здесь нет временных рамок, для кого-то это может быть минусом, а для кого-то плюсом. Кроме того, здесь видеолекции -  это записи лекций из университета, что весьма интересно. 

Кодирование матрицы: применение линейной алгебры в компьютерных технологиях

Начало ближайшей сессии курса: 02.02.2015

Learn the concepts and methods of linear algebra, and how to use them to think about computational problems arising in computer science. Coursework includes building on the concepts to write small programs and run them on real data.

When you take a digital photo with your phone or transform the image in Photoshop, when you play a video game or watch a movie with digital effects, when you do a web search or make a phone call, you are using technologies that build upon linear algebra. Linear algebra provides concepts that are crucial to many areas of computer science, including graphics, image processing, cryptography, machine learning, computer vision, optimization, graph algorithms, quantum computation, computational biology, information retrieval and web search. Linear algebra in turn is built on two basic elements, the matrix and the vector.

In this class, you will learn the concepts and methods of linear algebra, and how to use them to think about problems arising in computer science. You will write small programs in the programming language Python to implement basic matrix and vector functionality and algorithms, and use these to process real-world data to achieve such tasks as: two-dimensional graphics transformations, face morphing, face detection, image transformations such as blurring and edge detection, image perspective removal, classification of tumors as malignant or benign, integer factorization, error-correcting codes, and secret-sharing.

Теория игр II: усложнённые приложения




Начало ближайшей сессии курса: 11.01.2015

Popularized by movies such as "A Beautiful Mind", game theory is the mathematical modeling of strategic interaction among rational (and irrational) agents. Over four weeks of lectures, this advanced course considers how to design interactions between agents in order to achieve good social outcomes. Three main topics are covered: social choice theory (i.e., collective decision making), mechanism design, and auctions.

In the first week we consider the problem of aggregating different agents' preferences, discussing voting rules and the challenges faced in collective decision making. We present some of the most important theoretical results in the area: notably, Arrow's Theorem, which proves that there is no "perfect" voting system, and also the Gibbard-Satterthwaite and Muller-Satterthwaite Theorems. We move on to consider the problem of making collective decisions when agents are self interested and can strategically misreport their preferences. We explain "mechanism design" -- a broad framework for designing interactions between self-interested agents -- and give some key theoretical results. Our third week focuses on the problem of designing mechanisms to maximize aggregate happiness across agents, and presents the powerful family of Vickrey-Clarke-Groves mechanisms. The course wraps up with a fourth week that considers the problem of allocating scarce resources among self-interested agents, and that provides an introduction to auction theory.

Алгоритмы, биология и программирование для начинающих

Начало ближайшей сессии курса: 16.02.2015

The sequencing of the human genome fueled a computational revolution in biology. As a result, modern biology produces as many new algorithms as any other fundamental realm of science.

Genome sequencing is just one of hundreds of biological problems that have become inextricable from the computational methods required to solve them. In this course, we will uncover some of the algorithmic ideas that are fundamental to an understanding of modern biology. Computational concepts like dynamic programming and graph theory will help us explore algorithms applied to a wide range of biological topics, from finding regulatory motifs to determining whether the human genome has "fragile" regions. Throughout the process, we will apply bioinformatics algorithms to real genetic data.

Each chapter in the course textbook covers a single biological question and slowly builds the algorithmic knowledge required to address this challenge. Along the way, coding challenges and exercises will be integrated into the text at the exact moment they are needed.

Artificial Intelligence

Начало ближайшей сессии курса: без ограничений

This course introduces students to the basic knowledge representation, problem solving, and learning methods of artificial intelligence. Upon completion of 6.034, students should be able to develop intelligent systems by assembling solutions to concrete computational problems; understand the role of knowledge representation, problem solving, and learning in intelligent-system engineering; and appreciate the role of problem solving, vision, and language in understanding human intelligence from a computational perspective.

Advanced Data Structures

Начало ближайшей сессии курса: без ограничений

Data structures play a central role in modern computer science. You interact with data structures even more often than with algorithms (think Google, your mail server, and even your network routers). In addition, data structures are essential building blocks in obtaining efficient algorithms. This course covers major results and current directions of research in data structure.

The Society of Mind

Начало ближайшей сессии курса: без ограничений

This course is an introduction to the theory that tries to explain how minds are made from collections of simpler processes. It treats such aspects of thinking as vision, language, learning, reasoning, memory, consciousness, ideals, emotions, and personality. It incorporates ideas from psychology, artificial intelligence, and computer science to resolve theoretical issues such as wholes vs. parts, structural vs. functional descriptions, declarative vs. procedural representations, symbolic vs. connectionist models, and logical vs. common-sense theories of learning.


Теги: academic lifehack

comments powered by Disqus