Software Design A study of advanced programming and an introduction to data structures. Topics focus on programming skills needed for the design and implementation of standard data structures such as lists, trees, and graphs and their associated algorithms. Also, recursion, analysis of algorithms, and advanced aspects of object-oriented programming. Software Engineering A study of the software development process with emphasis on skills required for completion of large software projects. Topics include design of applications, use of standard application frameworks, designing for the user, testing, and maintenance of software.
Students work in teams to complete a major project.
Design An introduction to techniques for analyzing and modeling systems for implementation as computer programs. Topics include a survey of modeling methodologies for structured and object-oriented systems and case studies of system development. Also, applications of analysis and design methods to database design and design of distributed systems. The fundamentals of computer graphics and their applications in visualizing a variety of scientific phenomena. CMSC 34 Data Structures and Algorithm Analysis Advanced data structures and the time and space efficiency of the algorithms that manipulate such structures.