Programa Especializado - Estructuras de datos y algoritmos

Comenzó el mar. 20

Programa Especializado - Estructuras de datos y algoritmos

Master Algorithmic Programming Techniques

Learn algorithms through programming and advance your software engineering or data science career

Sobre este Programa Especializado

The Specialization covers algorithmic techniques for solving problems arising in computer science applications. It is a mix of theory and practice: you will not only design algorithms and estimate their complexity, but you will get a deeper understanding of algorithms by implementing them in the programming language of your choice (C, C++, C#, Haskell, Java, JavaScript, Python2, Python3, Ruby, and Scala). This Specialization is unique, because it offers two real-world projects. Advanced Shortest Paths project is offered in the end of the Algorithms on Graphs course. In this project, you'll deal with road network analysis and social network analysis. You'll learn how to compute the fastest route between New York and Mountain View thousands of times faster than classic algorithms and close to those used in Google Maps. Through Genome Assembly culminating project at the end of the Specialization, you'll learn how to assemble genomes from millions of short pieces and how algorithms fuel recent developments in personalized medicine.

Creada por:

Socios de la industria:

courses
6 courses

Sigue el orden sugerido o elige el tuyo.

projects
Proyectos

Diseñado para ayudarte a practicar y aplicar las habilidades que aprendiste.

certificates
Certificados

Resalta tus nuevas habilidades en tu currículum o LinkedIn.

Cursos
Intermediate Specialization.
Some related experience required.
  1. CURSO 1

    Caja de herramientas algoritmicas

    Sesión actual: mar. 20 — may. 1.
    Dedicación
    5 semanas de estudio, 4-8 horas/semana
    Subtítulos
    English

    Acerca del Curso

    El curso aborda las técnicas algorítmicas e ideas básicas para problemas computacionales que frecuentemente surgen en aplicaciones prácticas: ordenamiento y búsqueda, divide y vencerás, algoritmos voraces, programación dinámica. Aprenderemos mucha teoría: cómo ordenar datos y cómo eso ayuda en búsquedas; cómo segmentar un problema grande en partes y resolverlas en forma recursiva; cuánto tiene sentido proceder en forma voraz; de qué manera la programación dinámica es usada en estudios genómicos. Practicarás resolviendo problemas comutacionales, diseñando nuevos algoritmos e implementando soluciones eficientemente (de manera tal que puedan ejecutarse en menos de un segundo).
  2. CURSO 2

    Data Structures

    Sesión actual: mar. 20 — may. 8.
    Dedicación
    4 weeks of study, 5-10 hours/week
    Subtítulos
    English

    Acerca del Curso

    A good algorithm usually comes together with a set of good data structures that allow the algorithm to manipulate the data efficiently. In this course, we consider the common data structures that are used in various computational problems. You will learn how these data structures are implemented in different programming languages and will practice implementing them in our programming assignments. This will help you to understand what is going on inside a particular built-in implementation of a data structure and what to expect from it. You will also learn typical use cases for these data structures. A few examples of questions that we are going to cover in this class are the following: 1. What is a good strategy of resizing a dynamic array? 2. How priority queues are implemented in C++, Java, and Python? 3. How to implement a hash table so that the amortized running time of all operations is O(1) on average? 4. What are good strategies to keep a binary tree balanced? You will also learn how services like Dropbox manage to upload some large files instantly and to save a lot of storage space!
  3. CURSO 3

    Algorithms on Graphs

    Sesión actual: mar. 20 — may. 8.
    Dedicación
    5 weeks of study, 3-4 hours/week
    Subtítulos
    English

    Acerca del Curso

    If you have ever used a navigation service to find optimal route and estimate time to destination, you've used algorithms on graphs. Graphs arise in various real-world situations as there are road networks, computer networks and, most recently, social networks! If you're looking for the fastest time to get to work, cheapest way to connect set of computers into a network or efficient algorithm to automatically find communities and opinion leaders in Facebook, you're going to work with graphs and algorithms on graphs. In this course, you will first learn what a graph is and what are some of the most important properties. Then you'll learn several ways to traverse graphs and how you can do useful things while traversing the graph in some order. We will then talk about shortest paths algorithms — from the basic ones to those which open door for 1000000 times faster algorithms used in Google Maps and other navigational services. You will use these algorithms if you choose to work on our Fast Shortest Routes industrial capstone project. We will finish with minimum spanning trees which are used to plan road, telephone and computer networks and also find applications in clustering and approximate algorithms.
  4. CURSO 4

    Algorithms on Strings

    Sesión actual: mar. 20 — abr. 24.
    Dedicación
    4 weeks of study, 4-8 hours/week
    Subtítulos
    English

    Acerca del Curso

    World and internet is full of textual information. We search for information using textual queries, we read websites, books, e-mails. All those are strings from the point of view of computer science. To make sense of all that information and make search efficient, search engines use many string algorithms. Moreover, the emerging field of personalized medicine uses many search algorithms to find disease-causing mutations in the human genome.
  5. CURSO 5

    Advanced Algorithms and Complexity

    Sesión actual: mar. 20 — may. 1.
    Dedicación
    4 weeks of study, 4-8 hours/week
    Subtítulos
    English

    Acerca del Curso

    You've learned the basic algorithms now and are ready to step into the area of more complex problems and algorithms to solve them. Advanced algorithms build upon basic ones and use new ideas. We will start with networks flows which are used in more typical applications such as optimal matchings, finding disjoint paths and flight scheduling as well as more surprising ones like image segmentation in computer vision. We then proceed to linear programming with applications in optimizing budget allocation, portfolio optimization, finding the cheapest diet satisfying all requirements and many others. Next we discuss inherently hard problems for which no exact good solutions are known (and not likely to be found) and how to solve them in practice. We finish with a soft introduction to streaming algorithms that are heavily used in Big Data processing. Such algorithms are usually designed to be able to process huge datasets without being able even to store a dataset.
  6. CURSO 6

    Genome Assembly Programming Challenge

    Próxima sesión: may. 1 — may. 29.
    Subtítulos
    English

    Sobre el Proyecto Final

    In Spring 2011, thousands of people in Germany were hospitalized with a deadly disease that started as food poisoning with bloody diarrhea and often led to kidney failure. It was the beginning of the deadliest outbreak in recent history, caused by a mysterious bacterial strain that we will refer to as E. coli X. Soon, German officials linked the outbreak to a restaurant in Lübeck, where nearly 20% of the patrons had developed bloody diarrhea in a single week. At this point, biologists knew that they were facing a previously unknown pathogen and that traditional methods would not suffice – computational biologists would be needed to assemble and analyze the genome of the newly emerged pathogen. To investigate the evolutionary origin and pathogenic potential of the outbreak strain, researchers started a crowdsourced research program. They released bacterial DNA sequencing data from one of a patient, which elicited a burst of analyses carried out by computational biologists on four continents. They even used GitHub for the project: https://github.com/ehec-outbreak-crowdsourced/BGI-data-analysis/wiki The 2011 German outbreak represented an early example of epidemiologists collaborating with computational biologists to stop an outbreak. In this Genome Assembly Programming Challenge, you will follow in the footsteps of the bioinformaticians investigating the outbreak by developing a program to assemble the genome of the E. coli X from millions of overlapping substrings of the E.coli X genome.

Creadores

  • Universidad de California en San Diego

    UC San Diego is an academic powerhouse and economic engine, recognized as one of the top 10 public universities by U.S. News and World Report. Faculty at the Computer Science and Engineering Department at UCSD are among the leaders in the field of algorithms, bioinformatics, cryptography, machine learning, and many other areas of computer science.

    UC San Diego is an academic powerhouse and economic engine, recognized as one of the top 10 public universities by U.S. News and World Report. Innovation is central to who we are and what we do. Here, students learn that knowledge isn't just acquired in the classroom—life is their laboratory.

  • Alta Escuela de Economía

    Faculty of Computer Science (http://cs.hse.ru/en/) trains developers and researchers. The programme has been created based on the experience of leading American and European universities, such as Stanford University (U.S.) and EPFL (Switzerland). Also taken into consideration when creating the faculty was the School of Data Analysis, which is one of the strongest postgraduate schools in the field of computer science in Russia. In the faculty, learning is based on practice and projects.

    National Research University - Higher School of Economics (HSE) is one of the top research universities in Russia. Established in 1992 to promote new research and teaching in economics and related disciplines, it now offers programs at all levels of university education across an extraordinary range of fields of study including business, sociology, cultural studies, philosophy, political science, international relations, law, Asian studies, media and communications, IT, mathematics, engineering, and more. Learn more on www.hse.ru

  • Daniel M Kane

    Daniel M Kane

    Assistant Professor
  • Pavel  Pevzner

    Pavel Pevzner

    Professor
  • Michael Levin

    Michael Levin

    Lecturer
  • Neil Rhodes

    Neil Rhodes

    Adjunct Faculty
  • Alexander S. Kulikov

    Alexander S. Kulikov

    Visiting Professor

FAQs

More questions? Visit the Learner Help Center.