Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 1 | # Introduction |
| 2 | |
Jason Buberel | 6c3bd9e | 2015-08-23 11:04:43 -0700 | [diff] [blame] | 3 | Go is a great language for CS majors. This page presents some university courses that use Go. For a list of free and commercial Go training classes, see [the Learn wiki](Learn). |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 4 | |
| 5 | # Language |
| 6 | |
| 7 | * University of Helsinki, Department of Computer Science used to have a course named Introduction to Go, taught by K. Bäckman: http://www.cs.helsinki.fi/courses/582336 in Spring 2010. |
Jason Buberel | 6c3bd9e | 2015-08-23 11:04:43 -0700 | [diff] [blame] | 8 | * University of Sofia "St. Kliment Ohridski", Faculty of Mathematics and Informatics has elective course named "Programming with Go", taught by K. Vladimiroff: http://fmi.golang.bg (bulgarian) and their [[public lectures](https://github.com/fmi/go-lectures)] - (also in bulgarian) |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 9 | * Free University of Berlin (Germany) had a course [Introduction to Go Programming](http://w3.inf.fu-berlin.de/lehre/WS12/go/) in Spring 2013. |
Daniel Geers | bbaa93e | 2015-03-22 21:36:16 +0100 | [diff] [blame] | 10 | * J.W. Goethe University (Frankfurt/Main, Germany) had a course [Introduction to Go Programming](http://www.sepl.informatik.uni-frankfurt.de/2014-ws/b-ps2/index.de.html) in Spring 2015 (in german) |
Adel Qalieh | 638dae3 | 2017-02-07 07:24:00 -0500 | [diff] [blame] | 11 | * University of Pennsylvania had a course on [Go Programming](https://www.seas.upenn.edu/~cis193/) in Spring 2017. |
William Kennedy | 83a2e10 | 2017-07-04 14:26:39 -0400 | [diff] [blame] | 12 | * SUNY Potsdam (Potsdam, NY) "Selected languages course with Go", taught by Dr. Brian C. Ladd (Associate Professor of Computer Science). First class in Spring 2017 |
Giulio Carlo | 1502a32 | 2018-11-22 15:42:39 +0000 | [diff] [blame] | 13 | * University of Milan has a course named "Computer Programming" taught by Paolo Boldi: http://boldi.di.unimi.it/Corsi/Inf2018/ |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 14 | |
Kiswono Prayogo | 4028011 | 2016-11-15 15:22:25 +0700 | [diff] [blame] | 15 | # Programming Concepts |
| 16 | |
| 17 | * President University (Cikarang, West Java, Indonesia) had a course [Programming Concepts](http://president.ac.id/study/undergraduate/school-of-computer-science/information-technology) for every junior students (using C, Go and Javascript). |
| 18 | |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 19 | # Web |
| 20 | |
| 21 | * CS 4830: Science and Engineering of the WWW taught by Ryanne Dolan at University of Missouri: http://4830.ryannedolan.info/ |
Jesse Jafa | af50b68 | 2017-08-17 17:28:23 +0300 | [diff] [blame] | 22 | * CSCI 130: Web Programming taught by [Todd McLeod](https://www.udemy.com/user/toddmcleod/) at California State University Fresno |
| 23 | * CSCI 194: Adv. Web Programming taught by [Todd McLeod](https://www.udemy.com/user/toddmcleod/) at California State University Fresno |
Todd McLeod | 84cee5f | 2016-12-05 16:03:15 -0800 | [diff] [blame] | 24 | * CIT 90: Data Drive Websites taught by [Todd McLeod](https://www.udemy.com/user/toddmcleod/) at Fresno City College |
| 25 | * CIT 94: Server Side Scripting taught by [Todd McLeod](https://www.udemy.com/user/toddmcleod/) at Fresno City College |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 26 | |
| 27 | # Concurrency |
| 28 | |
Stefan Nilsson | 9e75ac6 | 2018-01-26 20:37:39 +0100 | [diff] [blame] | 29 | * Go is being used at the end of a yearlong freshman computer science class at KTH: http://yourbasic.org/golang/concurrent-programming/ |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 30 | |
| 31 | * Go, Concurrent and Systems Programming from Rochester Institute of Technology: http://www.cs.rit.edu/~ats/go-2011-2/index.xml |
| 32 | |
| 33 | * Free University of Berlin (Germany) had a course on [Concurrent Programming](http://w3.inf.fu-berlin.de/lehre/SS13/alp4/) with Go as a reference language in 2013. |
| 34 | |
| 35 | * University of Duisburg-Essen (Germany) had a lecture about Go and CSP within their course on [Concurrent systems modelling](http://www.ti.inf.uni-due.de/teaching/ss2014/mod_ns/) in summer 2014. [[Slides](http://www.ti.inf.uni-due.de/fileadmin/public/teaching/mod_ns/folien/SS2014/google-go-2x2.pdf)] |
| 36 | |
Hein Meling | 86900cf | 2015-08-14 19:20:19 -0400 | [diff] [blame] | 37 | * University of Stavanger, Norway. We use Go to teach concurrency principles in DAT320 Operating Systems. http://www.uis.no/studies/study-courses/?code=DAT320_1&parentcat=9835 |
| 38 | |
Bjørn Fjukstad | 5794ab4 | 2016-09-20 20:40:46 -0400 | [diff] [blame] | 39 | * University of Tromsø, Norway. [Concurrent and Data-Intensive Programming (INF-2200)](https://uit-inf-2202-f16.github.io/). |
| 40 | |
me | c72027a | 2017-11-07 18:44:10 -0800 | [diff] [blame] | 41 | * University of Victoria (Canada) used Go in the section on Concurrency as a part of [Programming Languages (CSC 330)](https://heat.csc.uvic.ca/coview/course/2017091/CSC330) |
| 42 | |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 43 | # Distributed Computing |
| 44 | |
RalphCorderoy | 217c48b | 2016-09-20 17:21:18 +0100 | [diff] [blame] | 45 | * Distributed Computer Systems (CS 138) at Brown: http://cs.brown.edu/courses/cs138/s16/syllabus.html |
| 46 | |
Mike Freedman | 12c4a99 | 2016-09-19 21:38:06 -0400 | [diff] [blame] | 47 | * Distributed Systems course (COS 418) at Princeton: https://www.cs.princeton.edu/courses/archive/fall16/cos418/ |
| 48 | |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 49 | * Distributed Systems course (15-440) at CMU: http://www.cs.cmu.edu/~dga/15-440/F12/index.html (see also http://da-data.blogspot.se/2013/02/teaching-distributed-systems-in-go.html) |
| 50 | |
| 51 | * 6.824 Distributed Systems at MIT is using Go in its labs: http://pdos.csail.mit.edu/6.824/. |
| 52 | |
Andrew Gerrand | 5bc444d | 2014-12-10 11:35:11 +1100 | [diff] [blame] | 53 | * CSE 223B, Spring 2014: Distributed Computing and Systems at UC San Diego http://cseweb.ucsd.edu/classes/sp14/cse223B-a/index.html |
| 54 | |
| 55 | * Dixie State University teaches Go in an introductory course to programming languages and later on in distributed systems. |
| 56 | |
| 57 | * CS 352, Computer Organization and Design, at the University of Wisconsin, Eau Claire: http://cs.uwec.edu/~buipj/teaching/cs.352.f13/lab_01_high_performance_computing.html |
| 58 | |
| 59 | * KTH Stockholm uses Go to teach concurrency: http://www.nada.kth.se/~snilsson/concurrency/ |
| 60 | |
Framework Training | 9bf680e | 2015-06-10 13:45:45 +0100 | [diff] [blame] | 61 | * Norwegian University of Science and Technology: TTK4145 Real-Time Programming http://www.itk.ntnu.no/fag/TTK4145/information/ |
| 62 | |
Hein Meling | 86900cf | 2015-08-14 19:20:19 -0400 | [diff] [blame] | 63 | * University of Stavanger, Norway. We use Go to build a replicated state machine based on Paxos in DAT520 Distributed Systems. http://www.uis.no/studies/study-courses/?code=DAT520_1&parentcat=9835 |
aregm | eba9f21 | 2016-02-28 22:28:52 +0300 | [diff] [blame] | 64 | |
Nick Feamster | bab17c1 | 2016-09-19 21:23:10 -0400 | [diff] [blame] | 65 | * Moscow State University, Russia. Go is used in graduate course on "Selected Topics in Distributed Systems Engineering" |
| 66 | |
LimEJET | 0637a4a | 2016-09-20 12:12:37 +0200 | [diff] [blame] | 67 | * D7024E - Mobile and Distributed Computing Systems at Luleå University of Technology. Go is used to implement the DHT algorithm Chord and create a data replication system. http://www.ltu.se/edu/course/D70/D7024E/D7024E-Mobila-och-distribuerade-datorsystem-1.67844?l=en&kursView=kursplan |
| 68 | |
Bjørn Fjukstad | 5794ab4 | 2016-09-20 20:40:46 -0400 | [diff] [blame] | 69 | * University of Tromsø, Norway. [Distributed Systems Fundamentals (INF-3200)](https://uit.no/education/courses/course?p_document_id=291961) and [Advanced Distributed Systems (INF-3203)](https://uit.no/education/courses/course?p_document_id=292883). |
| 70 | |
Nick Feamster | bab17c1 | 2016-09-19 21:23:10 -0400 | [diff] [blame] | 71 | # Networking |
| 72 | |
Phil Hatcher | cd6507f | 2016-09-20 12:16:22 -0400 | [diff] [blame] | 73 | * Computer Networking (COS 461) at Princeton: http://www.cs.princeton.edu/courses/archive/spring16/cos461/ (See Assignment 1 https://github.com/PrincetonUniversity/COS461-Spring2016/tree/master/notebook/assignment1 and Assignment 4 http://www.cs.princeton.edu/courses/archive/spring16/cos461/assignments/. |
| 74 | |
| 75 | # Compiler Design |
| 76 | |
| 77 | * Compiler Design (CS712/CS812) at the University of New Hampshire: http://www.cs.unh.edu/~cs712/. In Fall 2016 we are compiling a subset of Go to LLVM code. |
Francisco J Ballesteros | b2a75d0 | 2016-09-20 19:18:58 +0200 | [diff] [blame] | 78 | |
Francisco J Ballesteros | 6185424 | 2016-09-20 19:19:50 +0200 | [diff] [blame] | 79 | * Introduction to Compilers (6197, Spanish) at Rey Juan Carlos University of Madrid: http://lsub.org/comp. Students write a compiler in Go that implements a language for drawing graphics. |
Francisco J Ballesteros | b2a75d0 | 2016-09-20 19:18:58 +0200 | [diff] [blame] | 80 | |
Joshua Liebow-Feeser | 5566fb7 | 2016-09-20 17:09:07 -0700 | [diff] [blame] | 81 | # Security |
| 82 | |
| 83 | * [Computer Systems Security](https://cs.brown.edu/courses/cs166/) (CS166) At Brown University. In particular, the final [Dropbox Project](https://cs.brown.edu/courses/cs166/files/assignments/dropbox.pdf). |