Full syllabus: http://courses.washington.edu/css490/2015.WinterC/syllabus.html
Tentative schedule: syllabus.html#schedule
Software engineering is about predictably delivering software systems of finite quality, on a finite schedule, for finite cost. Developing software remains a challenging activity, with constant pressure to do it better, faster, and cheaper.
A traditional software engineering course typically discusses requirements gathering, architectural diagrams, estimation, scheduling, process, and project management. In general, it is about the strategy of reliably delivering software in resource-constrained environments, often making tradeoffs, between quality, time, and cost.
This course focuses on the challenges of implementation. We will develop a modest distributed application in the Go programming language using some of the following tactics to manage the complexity of modern large-scale software systems: change management, automated build systems, unit testing, bug tracking, code reviews, logging & logs analysis, debugging, refactoring, automated deployment, monitoring, load testing, and load balancing.
It's all about that code.
[top]A discussion board has been created: https://catalyst.uw.edu/gopost/manage/morrisb9/38655
[top]Submit assignments to the course dropbox: https://catalyst.uw.edu/collectit/dropbox/morrisb9/33892
<seelog>
<outputs formatid="common">
<filter levels="trace,debug,info,warn,error,critical">
<file path="out/timeserver.log" />
</filter>
</outputs>
<formats>
<format id="common" format="%Date%t[%LEVEL]%t%FullPath:%Func:%Line%t%Msg%n" />
</formats>
</seelog>
Lecture notes and supplemental materials will be posted here as instructor time permits and may be incomplete.
#
Lecture #1
|
Lecture #6
|
Lecture #11 (no notes)
|
Lecture #16 |
Lecture #2
|
Lecture #7
|
Lecture #12 (no notes)
|
Lecture #17 |
Lecture #3
|
Lecture #8
|
Lecture #13: President's Day (no notes) | Lecture #18 |
Lecture #4
|
Lecture #9 (no notes)
|
Lecture #14
|
Lecture #19 |
Lecture #5: Martin Luther King Day (no notes) |
Lecture #10
|
Lecture #15 | Lecture #20 |
Go
Programming Language
and
slides
Go
Go
at Google
foo::Foo *myFoo = new foo::(foo::FOO_INIT);
Go
Programming Language Specification
Go
Standard Library
Go
for Gophers
Go
Concurency Patterns
Go
Concurency Patterns
Go
Best Practices
Go
, for Distributed Systems
Go
code
You can learn a lot about software engineering from selected xkcd comics:
Coming soon...