MS IN COMPUTER SCIENCE
The Villanova Master of Science program in Computer Science (MSCS) trains students to become experts in applied and basic computing through its course offerings in computer systems, theory, languages and algorithms. The program is designed to prepare students for a career as a computing professional, or prepare students go on to pursue a PhD degree. With this degree you can:
- Expand your undergraduate preparation and enhance your career options.
- Acquire formal credentials in computing when a career path has changed focus and requires more preparation.
- Update an old undergraduate degree and bring skills and knowledge up to date with the industry.
- Prepare for a doctoral program.
MSCS PROGRAM DETAILS
MSCS Program Goals
- Demonstrate competency in core concepts of computing.
- Demonstrate competency in advanced concepts or areas of computing.
- Apply computing skills, techniques and tools to solve software problems.
The degree requirements are made up of 10 three-credit courses.
Required Courses
- CSC 8000: Foundations of Algorithms and Data Structures
- CSC 8301: Design and Analysis of Algorithms
- CSC 8310: Linguistics of Programming Languages
- CSC 8400: Computer Systems
- CSC 8510: Theory of Computability
Plus five elective courses approved for the MS in Computer Science degree.
Note that the electives include the thesis course (CSC 9030), which is designed to extend the Grand Challenges course work into a full master's thesis. This option is attractive for students considering further graduate education.
Students may choose to participate in the practicum track that adds a one-credit course (CSC 8990) to the requirements. This track requires work experience in a related field.
Electives for the MS in Computer Science
- CSC 8470: Computer Graphics
- CSC 8490: Database Systems
- CSC 8500: Formal Grammars and Programming Language Theory
- CSC 8505: Compiler Construction
- CSC 8520: Artificial Intelligence
- CSC 8530: Distributed Systems
- CSC 8540: Software Engineering
- CSC 8550: Concepts of Data Communications
- CSC 8560: Computer Networks
- CSC 8570: User/System Interface Design
- CSC 8580: Network Management and Performance
- CSC 8590: Advanced Software Engineering
- CSC 8600: Object-Oriented Design and Programming
- CSC 8610: Multimedia Technology
- CSC 8700: System Programming in UNIX and C
- CSC 8710: Advanced System Programming
- CSC 8720: System Administration Concepts
- CSC 8750: Expert Systems
- CSC 8990: Graduate Computing Practicum
- CSC 9010: Special Topics
- CSC 9025: Grand Challenges of Computing
- CSC 9030: Thesis
Applicants to the Master's program in Computer 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.
Programming Proficiency
Students entering either of our graduate programs are required to have proficiency in a modern computer programming language such as Java, C++ or C. Because of the importance of the object paradigm in modern computing systems, Java, C++ or another object-oriented language 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.
Computing Systems
Undergraduate work in computer organization or computer architecture and operating systems is required. The relevant topics include the following:
- Information representation
- CPU organization, operation, instructions sets, scheduling
- Memory organization, memory management
- File systems
- Concurrency, processes, threads
Mathematical Preparation
An undergraduate course in discrete structures (sometimes called discrete mathematics) is necessary for many aspects of computing. Additional requirements include two semester of 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. Those courses are:
- CSC 1051: Algorithms and Data Structures I
- CSC 1052: Algorithms and Data Structures II
- CSC 1300: Discrete Structures
- CSC 2400: Computing Systems I
International Students need to submit additional application materials:
- Proof Of English Proficiency
- Credentials Evaluation
- Financial Certification
Many graduate students in the Department of Computing Sciences undertake a Grand Challenges (GC) project. Typically this is one of the last courses a student takes, so that it can build upon the material of the other courses. During your GC course you will work independently, with guidance from an advisor, on a topic that you and your advisor have determined.
Advisors and Topics
It is your responsibility to arrange for an advisor and a topic for your GC project. You must have an advisor and topic determined before you register for the course, although changes are permitted later.
Workload
The amount of time required for a successful GC project will vary of course from project to project. You should dedicate at least as much time as that needed for any three-credit course - a rough estimate is a solid 150 hours. Define a good project, work consistently on it, three to eight hours per week, communicate well with your advisor, wrap things up by the end of the semester, and all will be well.
Grading
Your advisor is solely responsible for assigning your grade for the Grand Challenges (GC) course. Your advisor must report those grades to the GC Coordinator no later than the beginning of final exams. Therefore, advisors need time to carefully evaluate the project materials and read the final report, and often insist on having two weeks to do so. However, the specific deadline for getting your materials to your advisor can be worked out between the two of you.
Some general guidelines for GC grading are:
- A: Excellent published or publication-ready work (conference paper ready to submit, poster session, colloquium presentation, technical report posted, website posted for download or interactive online use for software development projects). Significant synthesis of information AND independent discovery. Demonstration of significant learning through exceptionally written report.
- A-: Very good work with the possibility of publication in the near future (same publication outlets as for A). Demonstration of significant learning through well written report.
- B+, B: A solid project, completed with good communication throughout with a well written report demonstrating learning.
- B-: An acceptable project, albeit with some short comings for example late delivery, poor communication or reduced scope.
- C: A disappointing project, sufficient enough for stating that the student has completed the course but lacking in quality.
There are three main problems students have that result in low/failing grades:
- Procrastination
- Not keeping their advisor informed
- Violating academic integrity (see below)
Be careful you do not fall into any of those traps.
Academic Integrity
The integrity of the work you submit for your Grand Challenges project will be held to the highest standards. It is your responsibility to understand what is and what is not acceptable concerning the content of your work and the use of previous work. When in doubt, consult your advisor!
Please visit and study the material on the university's Academic Integrity Gateway. Familiarize yourself with both the Academic Integrity Code and the Academic Integrity Policy.
A Grand Challenges project requires that you integrate and synthesize information from various sources. We don't expect every idea in your work to be your own. But we do require that you give credit where credit is due.
It is important that you and your advisor have a clear understanding of the goals of the project relative to the use of previous work. Sometimes the primary goal of a project is to investigate and report on the work of other people. In other cases, previous work is the springboard from which you launch your own efforts. Discuss this balance carefully with your advisor.
For a Grand Challenges project, academic integrity issues include the following:
- In your final report you must cite any source of information that contributes to the work performed for your project, and you must list the full reference in the bibliography.
- You must identify any words taken directly from previous work as a quotation. This may be accomplished using quotation marks or by indenting the quotation, with the surrounding text clearly indicating that those words are taken from another source. You should minimize your use of direct quotes. In general, you should integrate information into the running flow of your report, expressed in your own words. That synthesis is part of the learning process. Note that even when you express the ideas in your own words, you must cite the original source of the information.
- Any software written as part of your Grand Challenges project must be your own work, or must be clearly identified as someone else's work in both the online documentation of the source code and in the Grand Challenges final report.
Extensions
A GC project is expected to be completed in one semester. These projects, however, sometimes require a second semester. If the situation dictates and your advisor approves, we will grant an extension of your project into the following semester. Students that extend their GC must sign up for CSC 9021.
Please note that extensions are NOT granted because a student procrastinated or was "busy" doing other things. You must demonstrate satisfactory progress to be granted an extension.
RESEARCH IN ACTION:
This Team Is Using Machine Learning to Give Us Medical Results (Much, Much) Faster
The medical imaging process can require painstaking and often tedious work from already overburdened healthcare workers. But what if clinicians didn’t need hours to analyze imagery? What if machine learning could take a preliminary look for them? Villanova master's students in Computer Science students are designing algorithms to improve the efficiency and scope of medical imaging analysis. READ MORE