P or C: 240. Fall, Spring. The primary objective of the course is to teach students advanced programming skills and concepts. Introduction to the principles of software engineering: problem specification and program design with emphasis on object-oriented programming, programming style, debugging, and documentation. A significant software development project is required.