Student Learning Outcomes
By the end of the program students will be able to…
- Demonstrate the ability to solve programming problems in novel and unstructured areas requiring critical thinking and creativity.
- Understand Object Oriented programming principles, best practices, and conventions.
- Understand common software design patterns, recognizing what they are and when to apply them.
- Analyze and create specifications for a software system, with a demonstrated skill in creation and elicitation of Use Cases and corresponding Use Case realizations as UML sequence and class diagrams.
- Design an appropriate architecture for a software system, including appropriate layering, data access strategies (including access to data stores and other services, like web services), and organization of business entities and business logic.
- Demonstrate ability to develop and manage a plan for steps of analysis, design, implementation, testing, and delivery of a software project, with an understanding of the iterative approach to software development.
- Demonstrate the ability to work with specifications and enterprise web frameworks, and the ability to understand and customize such frameworks. Be able to explain the underlying architecture and identify strengths, weaknesses, and implementation patterns used.
- Knowledge of web application architectures and frameworks, including browser and server technologies, including the ability to design and implement the architectures.
- Demonstrate basic skills from algorithms. These include understanding of asymptotic analysis and its application to worst-case analysis of algorithms; ability to design and implement algorithms to solve a wide range of problems; knowledge of a core set of algorithms and ability to select optimal algorithms and data structures to solve a particular problem; and an understanding of how the discipline handles problems for which feasible solutions are not known.
- Understand E-R modeling, normalization, transaction management and recovery in databases.
- Understand data persistence.
- Understand the design of operating systems.
- Understand the layering approach to network architecture, the primary network services provide by each layer, and the common networking architecture patterns implemented in the internet.
- Use appropriate research methods to discover and learn, on one’s own, new computer frameworks, languages, and technologies.
- Make a clear and systematic technical presentation.
- Exhibit a high degree of professionalism in behavior, expression, and appearance. This includes growth of personality characteristics associated with the development of higher states of consciousness, such as stability, adaptability, purification, and integration.
- Develop and stabilize an ideal daily routine as the basis of maximum success in life.