Apply the model-view-controller pattern and event handling fundamentals to create a graphical user interface
Appreciate the collaborative nature of software development by discussing the benefits of peer code reviews
Design and implement large and complex software systems (including concurrent software) through the use of process models (such as waterfall and agile), libraries (both standard and custom), and modern software development tools (such as debuggers, profilers, and revision control systems)
Exercise the client-server model and high-level networking APIs to build a web-based software system
Perform input validation and error handling, as well as employ advanced testing principles and tools to systematically evaluate software
Utilize a modern relational database to define tables/objects, as well as store and retrieve data