Topics

Software Engineering


  • pair programming
  • extreme programming
  • agile programming
  • SCRUM
  • UML (Gliffy, yUML)
  • refactoring
  • unit testing (unittest, JUnit)
  • acceptance testing
  • source control (Git, GitHub)
  • issue tracking (GitHub)
  • wikis (GitHub)
  • documentation (pydoc, Javadoc)
  • technical reports

Database Design


  • normalization
  • create, drop, and insert
  • select, project, and join

Web Development


  • Google App Engine
  • XML (BeautifulSoup, ElementTree)
  • Google's data store
  • Django templates

Programming in Python, Java, and Haskell


  • assertions, exceptions
  • built-in and user-defined types
  • stack and heap
  • garbage collection
  • regular expressions
  • classes
  • static and non-static data and methods
  • inheritance
  • refinement and replacement overriding
  • run-time polymorphism
  • static and dynamic binding
  • virtual function tables
  • abstract methods, abstract classes, and interfaces
  • multiple inheritance
  • reflection
  • built-in and user-defined containers
  • iterators and iterator objects
  • generators
  • generic functions
  • higher-order functions
  • function objects, lambdas, and binders

Design Patterns


  • singleton
  • decorator
  • factory method
  • abstract factory
  • builder
  • prototype