fbpx

演算法專業課程

關於此課程

學會像計算機科學家一樣思考。 掌握演算法設計和分析的基礎知識。

演算法是計算機科學的核心,其主題有無數的實際應用和智力深度。 這專業課程是對具有一些程式設計經驗的學習者設計的演算法介紹。 專業課程是嚴謹的,但強調對低階實施和數學細節的全面了解和概念性理解。 在完成這個專業課程後,你將很好地應對你的技術面試,並能跟其他程式設計師和計算機科學家流暢地討論演算法。 Continue reading “演算法專業課程”

資料結構與演算法

關於此課程

精通演算法運作的程式設計技術。 通過程式設計學習演算法,並於軟體工程或資料科學領域的事業不斷精進。

本系列的專業課程涵蓋解決計算機科學應用出現的問題的各種演算法技術。這是一個理論和實踐的結合:你不僅要設計演算法並估計它們的複雜性,且會通過你選擇的程式語言(C、C ++、C#、Haskell、Java、 JavaScript、Python2、Python3、Ruby 和 Scala)實踐以加深對演算法的了解。

這個專業課程是獨一無二的,因為它提供了兩個實戰的專案。進階最短路徑專案在圖表演算法(Algorithms on Graphs) 結束時提供。在這個專案中,你將處理道路網絡分析 ( road network analysis )和社交網絡分析 ( social network analysis )。你將學習如何計算 New York 和 Mountain View 之間最快的路線,比傳統演算法快數千倍,並且接近 Google 地圖中使用的路線。通過基因組 ( Genome Assembly ) 在本專業課程全部完成時達到高潮,你將學習如何從數百萬條短片中組裝基因組,以及演算法是如何促進個性化醫療的最新發展。

製作方  

University of California, San Diego

加州大學聖地亞哥分校 ( UC San Diego ) 是一個學術強國和經濟引擎,被“美國新聞與世界報導”評為十大公立大學之一。加州大學聖地亞哥分校計算機科學與工程系的教師是演算法、生物資訊學 、密碼學、機器學習等計算機科學領域的領軍人物。

Faculty of Computer Science

計算機科學學院( Faculty of Computer Science http://cs.hse.ru/en/ )培訓開發人員和研究人員。該計劃是根據美國和歐洲的大學如史丹佛大學(美國) 和瑞士洛桑聯邦理工學院(EPFL)的經驗創建的。在創建該學院時也考慮到了這一點。 資料分析學院 ( School of Data Analysis ) 是俄羅斯計算機科學領域最強的研究生學院之一。學院中的學習都是基於實踐和專案。

National Research University- High School of Economics(HSE)

國立研究大學( National Research University ) – High School of Economics(HSE)是俄羅斯頂尖的研究型大學之一。 成立於1992年,旨在促進經濟學和相關學科的新的研究和教學,現在提供各種大學課程,包括商業、社會學、文化研究、哲學、政治學、國際關係、法律、亞洲研究、媒體與通訊、資訊技術 ( IT )、數學、工程等等。了解更多www.hse.ru

5 月7 日起 開課

第 1 門課程  演算法工具箱

c1.png

課程概述

本課程涵蓋了在實際應用中經常出現的計算問題的基本演算法技術和想法:排序和搜索 、分而治之、貪心算法、動態規劃。我們將學習很多理論:如何對資料進行排序以及如何幫助搜索; 如何將一個大問題分解並遞歸解決; 當貪婪地進行時是有道理的; 在基因組研究中如何使用動態規劃。 你將練習解決計算問題、設計新的演算法,並有效地實施解決方案(以便運行時間不到一秒)。

更多


第 2 門課程  資料結構

c2

課程概述

一個好的演算法通常與一組好的資料結構一起實現,使演算法能夠有效地操作資料。我們在此課程中討論在各種計算問題中常用的資料結構。你將學習如何使用不同的程式語言實現這些資料結構,並將在我們的程式設計任務中實踐它們。 這將幫助你了解在資料結構的特定內建執行內部發生了什麼,以及期望從中獲得什麼。你還將學習這些資料結構的典型使用案例。

我們將在本課中討論的一些問題的例子如下:

  1. 什麼是調整動態陣列大小的好策略?
  2. 如何在 C ++、Java 和 Python中實踐先後順序的排隊?
  3. 如何實踐哈希表 ( hash table ),使所有操作的平均運行時間平均為 O(1) ?
  4. 什麼是保持二叉樹平衡 ( binary tree balanced )的好策略?

你還將學習如 Dropbox 等服務如何馬上管理上傳的一些大文件,並節省大量的儲存空間!

更多


第 3 門課程  圖的演算法

c3.png

課程概述

如果你曾經使用導航服務來查詢最佳路線並估計到達目的地的時間,那麼你已經使用過圖的演算法。 圖的演算法在現實世界有許多應用,如道路網絡 、計算機網絡和最近的社交網絡等。 如果你想找出最快的上班路徑、連接一組計算機成為 一個網絡最便宜的方法,或有效率地自動找出在 Facebook 的社群和意見領袖,你將需要圖的演算法。

在本課程中,你將首先了解圖是什麼,以及哪些是其最重要的屬性。然後,你將學習幾種周遊(traverse) 圖的方法,以及如何在按照某種順序周遊圖時執行有用的操作。然後,我們將討論最短路徑算法 – 從基礎算法到這些為 Google 地圖和其他導航服務使用的,比基礎快100萬倍的演算法。如果你參加“最快最短路徑產業總整專案” ( Fast Shortest Routes industrial capstone project ),將會應用到這些演算法。我們將用最小生成樹 ( spanning trees : 應用在規畫公路、電話和計算機網路的 ) 來完成並做叢集與概略演算法的應用。

更多


第 4 門課程  字串演算法

c4

課程概述

世界和網際網路充滿了文字訊息。我們使用文本查詢搜索資料,我們閱讀網站、書籍 和電子郵件。從計算機科學的角度來看,這些都是字串。為了理解所有這些資訊並提高搜索效率,搜索引擎使用許多字串演算法。此外,個性化醫療的新興領域使用許多搜索演算法來發現人類基因組中的致病突變。

更多


第 5 門課程   進階的演算法和復雜性

c5.png

課程概述

你現在已經學習了基本演算法,並準備進入更複雜的問題並運用演算法來解決。進階的演算法建立在基本的演算法上,並使用新的想法。 我們將從網路流 ( networks flows ) 開始,在比較典型的應用,例如最佳匹配、尋找不相交的路徑和航班調度,以及像電腦視覺中的圖像分割那種令人驚奇的應用。然後,我們繼續進行線性規劃、優化預算分配、組合優化、找到滿足所有要求的最便宜的飲食等等。接下來,我們討論固有的難以解決的難題,這些難題還沒有找到真正的解決方案(也不太可能被發現)以及如何實際地解決。 我們最後將簡單介紹處理大數據中大量使用的串流演算法 (streaming algorithms) 。這種算法通常被設計成能夠處理巨量的資料但不能儲存起來。

更多


第 6 門課程  基因組裝計劃的挑戰

c6

課程概述

畢業專案

2011年春季,德國成千上萬的人因為食物中毒的嚴重腹瀉引發致命的腎衰竭而住院。這是近來歷史上最致命的疫情爆發的開始,這是由一種神秘的細菌菌株引起的,我們將其稱為大腸桿菌X. 不久,德國官員將這一爆發與 Lübeck 的一家餐館聯繫起來,在這家餐館中,近 20% 的顧客在一週內出現嚴重腹瀉。 在這一點上,生物學家知道他們正面臨一個以前不為人知的病原體,傳統的方法是不夠的 – 生物資訊學家將需要組裝和分析新出現的病原體的基因組。

為了調查暴發變種的菌株進化起源和致病潛力,研究人員開始了眾包研究計劃。他們從一名病人身上釋放細菌 DNA 序列資料,引發了四大洲的生物資訊學家進行的一系列分析。他們甚至使用GitHub 做這專案:https://github.com/ehec-outbreak-crowdsourced/BGI-data-analysis/wiki

2011年的德國爆發是流行病學家與計算生物學家合作制止疫情的早期例子。在此“基因組裝配計劃挑戰” ( Genome Assembly Programming Challenge) 中,你將通過開發一個程式從數百萬大腸桿菌X的基因的重疊子串中,來組裝大腸桿菌X基因組,追蹤生物資訊學家調查疫情爆發的足跡。

更多


 

到官方網站了解本課程與上課

DSAGRMSponsored by Coursera

你可能會有興趣

好課程與好朋友分享,按以下分享鍵與朋友一起學習吧! 

資料結構與演算法分析 – 準備工作面試

本課程的講師從事 web 開發8年。在 Google Play、微軟商店和 Apple Store 都可以找到他開發的應用程式,超過一百萬用戶正在使用他的應用程式。 本課程於9/2017更新,有15000+人參加,教你如何編寫運行速度更快,使用更少儲存空間並為工作面試做好準備。 (本課程以 Java 語言為主,如果你還沒有 Java 基礎,講師將贈送你免費 Java 課程 )

從這 9.5 小時的課程,你會學到

  • 編寫運行速度更快,使用更少儲存空間的程式碼
  • 為工作面試做好準備
  • 了解資料結構以及如何將這些資料結構應用到 Java 程式解決問題
  • 學習演算法分析和實現
  • 學習問題解決策略
  • 學習如何看出程式碼和演算法的複雜性

要求為何

  • 不需要有過程式設計經驗!如果你沒有任何程式設計經驗,我將給你免費的 Java 課程
  • 你將需要以安裝 Microsoft Windows 、 Linux 的電腦或 OS X 的 Mac

課程說明

在本課程中,你將學習如何分析演算法,如排序,搜索和圖形演算法。以及如何將程式碼複雜性從一個 Big-O 級別降低到另一個級別。此外,你將學程式碼不同類型的資料結構。且你將學習如何在每個資料結構查出 Big-O,以及如何在 Java 中應用正確的資料結構解決問題。到最後,你將能夠編寫運行速度更快,使用低儲存空間的程式碼。你還將學習如何使用動態程式設計分析問題。

我們將討論不同演算法的程式複雜性,如排序演算法(Bubble、合併、Heap 和快速排序)),搜尋演算法(二進位制、搜尋、線性搜尋和內插法),圖形算法( 二元樹、DFS、BFS、最近鄰和最短路徑、Dijkstra 演算法和 A * 演算法 ); 以及資料結構,如動態陣列、連結串列 ( Linked List ),、堆疊( Stack )、佇列 (Queue) 和雜湊表 ( Hash-Table )

目標受眾是誰?

  • 有興趣編寫運行速度更快,使用更少儲存空間的程式的人
  • 想要成為軟體工程師或軟體發人員的人

關於講師

Hussein Al Rubaye    軟體工程師與開發者

我是博士生,已是美國羅切斯特理工學院軟體工程碩士,我熱衷教授程式語言,開發行動 、Windows 和 網路應用程式。 我正在研究如何提高程式設計的技能,想找到最好且簡單的學習程式的方法。我從事 web 開發8年。在 Google Play、微軟商店和 Apple Store 都有我的應用程式,超過一百萬用戶正在使用我的應用程式。另外我還有很多在 YouTube 上教授程式語言的課程。 由於我在教學程式設計方面的貢獻,我獲得了微軟 2017年最有價值的專業人士(MVP)。更多請參考我的網站。

英文字幕:有

  • 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To

課程網址  ♥找優惠折扣碼?

Sponsored by Udemy

你可能會有興趣

喜歡我們的分享嗎? 使用以下的社群分享按鈕分享給你的朋友吧!

Powered by WordPress.com.

Up ↑