Golang Programming (Golang程式設計)
- Time: Monday 14:10-17:00
- Classroom: TC-301
- Objective:
Go, also known as Golang, is the concise and efficient programming
language designed by Google for creating high-performance,
cross-platform applications. Go combines strong static types with simple
syntax and a comprehensive standard library to increase programmer
productivity, while still supporting features such as
concurrent/parallel programming. This course explains how to get the
most from Golang, starting from the basics and building up to the most
advanced and sophisticated features. You will learn how Golang builds on a simple and consistent type system to create a comprehensive and productive development experience that produces fast and robust applications that run across platforms.
- Students: 0
- Software:
- FortiClient
VPN for Windows 10
- PuTTY 0.78
- Textbook:
- References:
-
Alan A. A. Donovan, Brian W. Kernighan,
"The
Go Programming Language", Addison-Wesley Professional; 1st edition
(October 26, 2015). (400 pages)
- Mihalis Tsoukalos,
"Mastering
Go: Harness the power of Go to build professional utilities and
concurrent servers and services, Packt Publishing, 3rd Edition,
August 31, 2021. (682 pages)
ISBN:978-1801079310
- Alex Guerrieri,
"Hands-On
System Programming with Go",
Packt Publishing, July 2019. (458 pages)
- Grading criteria
- Participation (10%)
- Exercise (20%)
- Oral Presentation (30%)
- Midterm Exam (20%)
- Term Project (20%)
Syllabus
- Variables and Operations, Data Types and Conversions
Flow Control
Arrays, Slices, and Maps
- Functions
Defining Structs, Methods, and Interfaces
Packages
- Type and Interface Composition.
- Goroutine and Channels
Error Handling
Using the Go Standard Library
- String Processing and Regular Expression
Formatting and Scanning Strings
- Math Functions and Data Sorting
Dates, Times, and Durations
- Reading and Writing Data
Working with JSON Data
Working with Files
- Using HTML and Text Templates
- Creating HTTP Servers/Clients
- Working with Databases
- Using Reflection
- Unit Testing, Benchmarking, and Logging
Applying Go
- Creating a Web Platform
- Middleware, Templates, and Handlers
- Actions, Sessions, and Authorization
- Term Project Presentation
Slides