ÄÌÌÇÖ±²¥

MS IN SOFTWARE ÄÌÌÇÖ±²¥

A software engineering professors demonstrates the ÄÌÌÇÖ±²¥ CAVE, and immersive virtual reality technology facility

The ÄÌÌÇÖ±²¥ Master of Science in Software Engineering (MSSE) 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 MS in Software Engineering is designed to address the increased interest in advanced computing education specifically directed to the ability to specify, design, develop and maintain software systems. This degree program:

  • Prepares students for a career in software engineering or for advanced study in the field.
  • Is frequently viewed by industry as a minimum requirement for leadership in the field of software engineering.
  • Provides practical and theoretical knowledge and experience.
  • Includes courses on software design and evolution, database systems, user/system interface design and others.

MSSE PROGRAM DETAILS

MSSE Program Goals

  • Demonstrate competency in key areas of software engineering.
  • Communicate specialized technical information effectively by written or oral means.
  • 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 8400: Computer Systems
  • CSC 8490: Database Systems
  • CSC 8540: Software Engineering
  • CSC 8541: Requirements Engineering
  • CSC 8542: Software Design and Evolution

Plus four elective courses approved for the MS in Software Engineering 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 Software Engineering

  • CSC 8301: Design and Analysis of Algorithms 
  • CSC 8310: Linguistics of Programming Languages 
  • CSC 8470: Computer Graphics 
  • CSC 8520: Artificial Intelligence 
  • CSC 8530: Distributed Systems 
  • CSC 8560: Computer Networks 
  • CSC 8570: User/System Interface Design 
  • CSC 8600: Object-Oriented Design and Programming 
  • CSC 8990: Graduate Computing Practicum 
  • CSC 9010: Special Topics 
  • CSC 9025: Grand Challenges of Computing 
  • CSC 9030: Thesis 
  • ECE 8471: Software Reliability

Applicants to the Master's program in Software Engineering 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. ÄÌÌÇÖ±²¥ offers the required prerequisite undergraduate courses that may be taken through the part-time studies program if not already enrolled at ÄÌÌÇÖ±²¥. 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:

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 . 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.

     

STUDENT SPOTLIGHT:

Software Engineering Student's Thesis Project Featured in Radio World Cover Story

Cover of Radio World Magazine showing an image of a phone app that finds radio stations

Graduate Software Engineering student Nick Langan '20 CPS is featured in the November issue of Radio World Magazine for his new free mobile app, RadioLand, which allows users to find "listenable" FM radio stations based on their location in North America. The avid radio enthusiast created the app for his master's thesis. Langan's presentation of RadioLand earned him a second-place award at the 2022 ÄÌÌÇÖ±²¥ Three Minute Thesis Competition. Langan is the operations manager at ÄÌÌÇÖ±²¥ University's radio station, 89.1 WXVU. READ MORE

Dept of Computing Sciences
161 Mendel Science Center
ÄÌÌÇÖ±²¥ University
800 Lancaster Avenue
ÄÌÌÇÖ±²¥, PA 19085-1699

Director of Graduate Programs:
Dr. Vijay Gehlot

 

 

DEADLINES

MARCH 1: For admission with funding consideration for the fall

AUGUST 1: For admission without funding for the fall

OCTOBER 1: For admission with funding consideration for the spring

DECEMBER 1: For admission without funding for the spring

MAY 1: For admission without funding for the summer

If you have missed a deadline, please contact Dr. Vijay Gehlot to discuss your options.