SOFTWARE ENGINEERING
Program Requirements
The focus of the Master of Software Engineering (MSE) degree
program is to teach the advanced state-of-the-art technologies
in software development with hands-on experience, and to apply
the knowledge to some challenging real-world problems. The
program will guide the students to acquire both technical skills
and software project management skills that are required to lead
and to carry out software development projects.
Prerequisites
for Admission
The students who wish to gain admission into the MSE program
should have taken courses on the following topics or should have
knowledge in these areas (evidence or supporting materials
required):
1. A
modern programming language such as C++, Java, Eiffel, C#, or
Smalltalk (UW-L equivalents: CS 120, CS 220, and CS
224)
2. Data
structures and algorithms that include abstract data types such
as List, Stack, Queue, Tree and Graph (UW-L
equivalent: CS 340)
3.
Discrete mathematics that includes topics on set theory,
predicate logic, functions and relations (UW-L equivalent: MTH
225)
Students who lack any of these prerequisites must take
additional courses (not counted for credit toward the MSE
program) to meet the prerequisites requirement. A cumulative
grade point average (GPA) of 2.85/4.0 is required in these
courses. This restriction on GPA for the prerequisite courses
has been imposed to ensure that the students have adequate
background in software development. In particular, non-computer
science students may also be admitted into the MSE program (see
the admission requirements below), and hence a thorough
knowledge of the topics covered in the prerequisite courses is
necessary.
Admission Requirements
In addition to the prerequisites identified above, each student
also must satisfy one of the following requirements:
1. The
student must have a bachelor’s degree in software engineering,
computer science, computer engineering or an equivalent major,
with an overall undergraduate grade point average (GPA) of at
least 2.85/4.0 or a GPA of at least 3.0/4.0 in the last half of
all undergraduate work or a GPA of at least 3.0/4.0 for no fewer
than 12 semester credits of graduate study at another accredited
graduate institution.*
2. The
student must have a bachelor’s degree in any other discipline
with an overall GPA of at least 2.85/4.0 or a GPA of at least
3.0/4.0 in the last half of all undergraduate work, and should
at least have two years of working experience in software
development. In this case, the student should provide at least
two references from the work place. The referees should be able
to comment on the knowledge and skills of the student in
software development.
*A dual degree option allows UWL computer science students to
apply for admission to the Master of Software Engineering
program before completion of their undergraduate degree.
Students seeking this option must consult an adviser early in
their academic career to qualify for the dual degree.
More information can be obtained at www.cs.uwlax.edu/mse
Note: Application deadline is May 1 of each year for fall
semester and November 1 for spring semester.
Program Requirements
(36 Credits)
Each student in the program should complete 24 credits of course
work and 12 credits of project work. The course work consists of
five core courses and three elective courses.
| Core Courses: (15 credits) | Credits | |
| CS 546 | Object-Oriented Software Development | 3 |
| CS 741 | Software Engineering Principles | 3 |
| CS 742 | Formal Methods in Software Development | 3 |
| CS 743 | Software Verification and Validation | 3 |
| CS 744 | Management Issues in Software Engineering | 3 |
| Elective Courses: (9 credits) | Credits | |
| CS 502 | Web Application Development | 3 |
| CS 510 | Free and Open Source Software Development | 3 |
| CS 519 | Independent Study | 1-3 |
| CS 521 | Programming Language Concepts | 3 |
| CS 531 | Introduction to Robotics | 3 |
| CS 541 | Operating System Concepts | 3 |
| CS 542 | Structure of Compilers | 3 |
| CS 543 | Topics in Operating Systems | 3 |
| CS 549 | Advances in Software Engineering | 3 |
| CS 551 | User Interface Design | 3 |
| CS 552 | Artificial Intelligence and Pattern Recognition | 3 |
| CS 553 | Introduction to the Theory of Computation | 3 |
| CS 554 | Digital Image Processing | 3 |
| CS 555 | Fundamentals of Information Security | 3 |
| CS 556 | Secure Software Development | 3 |
| CS 564 | Advanced Database Management Systems | 3 |
| CS 570 | Parallel and Distributed Computing | 3 |
| CS 571 | Data Communications | 3 |
| CS 750 | Topics in Software Engineering | 1-3 |
| CS 751 | Seminar in Software Engineering | 1-3 |
| CS 752 | Independent Study | 1-3 |
| Capstone Project Work: (12 credits) | Credits | |
| CS 798 | Software Development Project | 1-6 |
CS 798 is a 12-credit course involving a major software
development project and requires the development of software for
a particular application. Upon registering for this course, a
student should choose a problem, analyze its feasibility in
terms of time limits and resources, develop the requirements
document and design (architectural and detailed) document,
implement the design and demonstrate the product with
appropriate test cases. A project proposal must be submitted to
the Project Evaluation Committee (PEC) in the computer science
department for approval before starting the project. This
proposal should include the goals, project plan, time schedule,
resource requirements and other details pertinent to the
project. A student can register for the project course at any
time after completing at least 3 courses and continue to work on
the project thereafter. Depending on the work done in each term,
the student will be given appropriate number of credits per term
as outlined in the project proposal. The project adviser (a
member of the PEC) is responsible for checking the work
proposed/done in each term and giving the appropriate number of
credits.
At the completion of the project, the student should submit a
written project report that satisfies the requirements stated in
A Guide for Writing a Software Development Project Report
(available from the computer science department). This report
will be evaluated by PEC. After PEC has read the report,
(normally within a month after submission), an oral examination
will be conducted. Members of PEC and the project
supervisors/advisers (stated below) will serve as the examiners
for this oral examination. The student will be given a pass/fail
grade for the course at the end of the oral examination.
The project will address a real-world problem and hence will
be selected from anywhere outside the computer science
department. The purpose of this project work is to apply the
knowledge gained in the course work to a real-world problem.
Project sponsors may be from other departments (academic and
administrative) in the university or from industries. A faculty
member in the computer science department and a supervisor in
the unit from where the problem is chosen (another department or
industry) will jointly supervise/guide the student. In the event
of not being able to find a suitable project outside the
computer science department, the student may seek a project
given by one of the faculty members in the department. The same
faculty will supervise/guide the student. The latter option
provides an opportunity for students to conduct research in
software engineering.