Advanced programming tools including model view controller frameworks, database integration, web services, and serialization are used to allow students to develop complex systems. Students are introduced to object oriented application testing, maintenance, and modification.