This degree program provides the practical knowledge and experience needed to specify, design, develop, and maintain today's software systems. The program prepares students for either a career in software engineering or for advanced study in the field.
The degree requirements are made up of ten 3-credit courses, including a required Grand Challenges course in which the student explores a computing topic under the guidance of a faculty advisor.
Please review the prerequisites to this program prior to applying. Follow the application guidelines when applying.
Required Courses for the M.S. Degree in Software Engineering:
- CSC 8000 Foundations of Algorithms and Data Structures
- CSC 8400 Computer Systems
- CSC 8490 Database Systems
- CSC 8540 Software Engineering
- CSC 8541 Requirements Engineering
- CSC 8542 Software Design and Evolution
- CSC 9025 Grand Challenges of Computing
Plus three elective courses approved for the Software Engineering M.S. degree.
Note that the electives include the thesis course (CSC 9030), which is designed to extend the independent study work into a full master's thesis. This is an attractive option for students considering further graduate education.
Students may choose to participate in the practicum track that adds a 1-credit course (CSC 8990) to the requirements. This track requires work experience in a related field.
This school offers programs in:
Applicants to the Master’s program in Computing Science must hold a bachelor's degree from an institution accredited by one of the regional accrediting agencies, with an undergraduate GPA of at least 3.0. In addition, they must meet the following undergraduate prerequisites:
Students entering the graduate program are required to have proficiency in a modern computer programming language such as Java, C++, C#, or C. Familiarity with the object paradigm is highly recommended. Programming proficiency must include the following:
- Fundamental data structures, such as arrays, lists, stacks, queues, and trees
- Elementary iterative and recursive algorithms, including searching and sorting techniques
Undergraduate work in computer organization or computer architecture and operating systems is also required. The relevant topics include the following:
- Information representation
- CPU organization, operation, instruction sets, scheduling
- Memory organization, memory management
- File systems
- Concurrency, processes, threads
An undergraduate course in discrete structures (sometimes called discrete mathematics) is necessary for many aspects of computing. Additional requirements include calculus plus probability and statistics.
Options for Meeting the Prerequisites. The prerequisites may be completed at any accredited college or university, including community colleges. Villanova offers the required prerequisite undergraduate courses that may be taken through the part-time studies program if not already enrolled at Villanova.