Object-oriented design of software in a modern high-level language, using software library packages. Introduction to elementary data structures and complexity of algorithms. Three lecture hours a week for one semester. May not be counted toward a degree in computer science. Prerequisite: Computer Science 303E, 305J, 312, or 312H with a grade of at least C-.