Networks

LAN Messenger

“tessenger” is my unsw networks assignment: a multi-client chat server in raw c — server.c (583 lines) and client.c (253), no libraries beyond pthreads and the bsd socket api (Kernighan, Brian W. and Ritchie, Dennis M., 1988). it does authentication with timed lockout, private and group messaging, presence, audit logs, and a udp side channel for peer-to-peer file transfer. this page walks the architecture, weaves in the socket theory the assignment was designed to teach, and then does something the assignment never required: an honest concurrency audit of my own submission, with the bugs demonstrated live. 𐃏

Read more >

Advanced Algorithms

The content here-in has been influenced by Mung Chiang’s Networked Life and Introduction to Algorithms by CLRS.

Read more >

What every computer science major should know

Here are my distillations of Matt’s seminal blog post: What CS Majors Ought to Know.

I have removed the imperative matter, and left the declarative material; marking off that which I have completed.

  • What should every student know to get a good job?

  • What should every student know to maintain lifelong employment?

  • What should every student know to enter graduate school?

  • What should every student know to benefit society?

Portfolio versus resume

  • Every computer science major should build a portfolio.
  • Contributions to open source should be linked and documented.

Technical communication

Specific recommendations

  • Master a presentation tool.