Department of Computer Science and Software Engineering

Program Coordinator: Dr. Qi Yang
Office: 213 Ullrich
Phone: 608.342.1418

The MS program in COMPUTER SCIENCE is no longer taking applications.

Statement of Purpose

The purpose of the Master of Science in Computer Science (MSCS) is to provide a high-quality, advanced education in computer science.

Program Objectives

Graduates will:

  1. demonstrate advanced knowledge and skills in computer science;
  2. apply fundamental theory and practical methods to construct software systems;
  3. interact affectively within international and diverse teams; and
  4. engage in and recognize the importance of life-long learning.

Student Learning Outcomes

Graduates will achieve the following learning outcomes:

  1. Foundation: Graduates will have a solid foundation in computer science with advanced knowledge in one or more areas.
  2. Practice: Graduates will have demonstrated their ability to apply their knowledge to practical problems on projects.
  3. Presentation: Graduates will be capable of effective written and oral communication particularly with respect to preparing, publishing, and presenting technical material to diverse audiences.
  4. Growth: Graduates will exhibit skills for adapting to new environments and technologies, adapting to cultural differences, and embracing lifelong learning.


The Master of Science in Computer Science provides advanced study in computer science. The program offers various courses that cover both the fundamental theory and the fast advancing technologies in computing. The program is application oriented and students will be ready to go to industry after completing the program, although they can still proceed to Ph.D. programs if they chose so.


Those seeking admission to the program must have earned a bachelor’s degree in computer science, software engineering, informatics or a closely related field from a regionally or nationally accredited institution. In particular, all students must have had courses in introductory programming and data structures and, in addition, coursework covering at least four of the following topics:

  • Computer architecture
  • Database design
  • Discrete mathematics
  • Programming languages
  • Operating systems
  • Networking
  • Software engineering

Applicants from other fields may be required to take undergraduate courses to address deficiencies. Substantial industry experience may be accepted in lieu of coursework in the above areas on a case-by-case basis.

In addition, students must meet the other admission requirements for all master’s programs at UW-Platteville.


The program is designed to take three or four semesters of full-time study.  All students will complete 30-36 credits, with at least 21 of those credits from courses at the 7000 level.  Graduate students must maintain a minimum 3.00 grade point average.  Students can take all classes on campus with an option of one online class each semester.  Students can also go to our partner university in Germany as exchange students for one or two semesters.

There are three options for the MSCS program depending upon whether the student writes a thesis or a seminar paper.

Option Thesis Seminar Paper Courses Only
Total Credits 30 30 36
Foundations 18 to 24 credits, with at least 9 credits from Group A and 9 credits from Group B 21 to 27 credits, with at least 12 credits from Group A and 9 credits from Group B 30 to 36 credits, with at least 15 credits from Group A and 15 credits from Group B
Electives 0 to 6 credits 0 to 6 credits 0 to 6 credits
Additional 6 credits of COMPUTER 7990 Thesis Research 3 credits of COMPUTER 7920 Seminar Paper Research Not applicable
Written Comprehensive Examination No Yes Yes

Group A

Courses with a significant mathematical component or which cover a traditional theoretical concept.

Course Title Credits
COMPUTER 5030Artificial Intelligence3
COMPUTER 5430Object-Oriented Analysis and Design3
COMPUTER 5520Programming Language Structures3
COMPUTER 5920Computer Graphics3
COMPUTER 7360Advanced Operating Systems3
COMPUTER 7380Advanced Database Management Systems3
COMPUTER 7460Computer Security3
COMPUTER 7630Compiler Construction3
COMPUTER 7820Advanced Algorithms3

Group B

Applied courses.

Course Title Credits
COMPUTER 5730Software Quality3
COMPUTER 5860Software Maintenance and Reengineering3
COMPUTER 5870Web Protocols, Technologies and Applications3
COMPUTER 6130Real-Time Embedded Systems Programming3
COMPUTER 7640Machine Learning3
COMPUTER 7660Computer Vision3
COMPUTER 7720Human-Computer Interaction3

Independent Study AND SPECIAL TOPIC

COMPUTER 6830 Special Topics in Computer Science

COMPUTER 7830 Special Topics in Computer Science

COMPUTER 7980 Independent Study in Computer Science

Project Courses

COMPUTER 7120 Software Project I

COMPUTER 7220 Software Project II


COMPUTER 7920 Seminar Paper Research

COMPUTER 7990 Thesis Research

Foundation Courses

The foundation courses are divided into two groups with Group A including an element of theory and Group B being more applied. Students are required to take courses from both groups.

COMPUTER 6830, COMPUTER 7830COMPUTER 7980 can also count towards the foundations requirement (with a designation in Group A or Group B) upon approval by the department chair or program coordinator.


For the thesis option, each student must organize a thesis committee containing at least three qualified individuals. At least one member of the thesis committee must be a member of the department  and at least one must be outside of the department. For the seminar paper option, each student must have a seminar paper advisor from the department.  For both the seminar and the courses only option, each student must pass a comprehensive written examination.

COMPUTER 5030 Artificial Intelligence 3 Credits

A study of knowledge representation, search techniques, expert systems, predicate calculus, and natural languages. Discussion of the successes and limitations of past and current AI programs. Programming assignments in LISP and Prolog illustrate formal topics. P: COMPUTER 2630 and MATH 2730.
Components: Class
Typically Offered: Spring

COMPUTER 5430 Object-Oriented Analysis and Design 3 Credits

Requirements engineering, analysis, and specification using the object-oriented paradigm. Object-oriented architectural and detailed design. Use of an OOAD modeling language such as UML. Investigation of OOAD patterns. Moderate size, group project. P: SOFTWARE 2730 and COMPUTER 2430.
Components: Class
Typically Offered: Fall

COMPUTER 5520 Programming Language Structures 3 Credits

A study of programming language topics which include data objects, data types, storage management, syntax, BNF descriptions, semantics, lexical analysis and parsing. Examples taken from traditional languages as well as more modern languages. P: COMPUTER 2630, Object-oriented Programming and Data Structures II.
Components: Class

COMPUTER 5730 Software Quality 3 Credits

Study of topics related to producing quality software, including software quality assurance, quality metrics, configuration management, verification and validation, reviews, inspections, audits, and software process improvement models. Individual and team projects. P: COMPUTER 2630 and SOFTWARE 2730.
Components: Class, Laboratory
Typically Offered: Fall

COMPUTER 5860 Software Maintenance and Reengineering 3 Credits

Study of the topics related to maintaining large-scale software systems. Study of software engineering topics such as estimation, software quality assurance, metrics, configuration management, verification and validation, inspections, and personal and team software process as they relate to software maintenance projects. Coverage of traditional analysis and design methods such as structured analysis and design. Two, semester-long, team-based projects: reengineering a small system to be object-oriented and making changes to a moderate-sized existing software project. P: SOFTWARE 3430/COMPUTER 5430 Object-Oriented Analysis and Design, COMPUTER 2630 Object-Oriented Programming and Data Structures II.
Components: Class
Typically Offered: Spring

COMPUTER 5870 Web Protocols, Technologies and Applications 3 Credits

This course will introduce the students to protocols and technologies in Web Applications and Web Services. The Client/Server concept and some advanced database concepts will also be covered. The emphasis of the course will be using tools such as ASP.NET for rapid development of Web Applications and Web Services. P: COMPUTER 3340; C: COMPUTER 3630.
Components: Class
Typically Offered: Fall

COMPUTER 5920 Computer Graphics 3 Credits

An introduction to computer graphics including raster hardware, standard graphics software packages and important algorithms such as window-to-viewport mapping; clipping of lines, characters and polygons; 2D and 3D transformations and hidden line/surface removal. P: COMPUTER 2630 and MATH 3230.
Components: Class

COMPUTER 6130 Real-Time Embedded Systems Programming 3 Credits

An exploration of programming techniques and constructs used to develop reliable software systems capable of responding in real time to environmental changes. An overview of the platforms, tools, and processes used in developing software for embedded systems. Hands-on lab projects experimenting with real-time embedded systems programming details. P: COMPUTER 2630 and SOFTWARE 3430 and (ELECTENG 3780 or COMPUTER 3230).
Components: Class
Typically Offered: Spring

COMPUTER 6830 Special Topics in Computer Science 1-3 Credits

The subject matter and instructor for each instance of this class will be listed in the class schedule. Students should check with the instructor for details.
Components: Class
Typically Offered: Fall

COMPUTER 7120 Software Project I 2 Credits

Participation in a semester-long, group software development group project, typically at the student's home university. Software engineering techniques and principles will be applied in the development of the project. P: COMPUTER 2630 and SOFTWARE 2730.
Components: Class
Typically Offered: Spring

COMPUTER 7220 Software Project II 2 Credits

Participation in a semester-long, software development group project. This course is only open to JIM-CS students in their "abroad" semester. Application of software engineering techniques and principles to the development of the project. P: COMPUTER 2630 and SOFTWARE 2730.
Components: Class
Typically Offered: Fall

COMPUTER 7360 Advanced Operating Systems 3 Credits

This course will cover advanced OS topics, which include concurrent processing, inter-process communication, process synchronization, deadlocks, introduction to queueing theory and operational analysis, topics in distributed systems and algorithms, check pointing, recovery, multiprocessor operating systems
Components: Class

COMPUTER 7380 Advanced Database Management Systems 3 Credits

Overview of Database Systems, Relational Model, Relational Algebra, Relational Calculus and SQL. Study of Database Applications Development, including modeling and designing database systems, and the implementation of Database-Backed Internet applications. Cover advanced Database topics such as Storage and Indexing, Query Evaluation, Transaction Management, Concurrency Control and Crash Recovery.
Components: Class

COMPUTER 7460 Computer Security 3 Credits

Introduction to the concepts, theory, and application of Computer Security. Topics include cryptography, digital signatures, authentication and identification schemes, viruses, worms, firewalls, and electronic commerce. P: COMPUTER 3830.
Components: Class

COMPUTER 7630 Compiler Construction 3 Credits

Study of the theory and design techniques used in compiler construction, including lexical analysis, parsing, grammars, semantic analysis, code generation, and optimization. P: COMPUTER 3520.
Components: Class

COMPUTER 7640 Machine Learning 3 Credits

This course is designed to give graduate-level students a thorough foundation in methodologies and technologies needed for conducting research in machine learning and solving real-world problems using machine learning knowledge. The topics include general machine learning concepts and techniques such as expectation-maximization, maximum likelihood estimation, gradient descent as well as specific supervised, unsupervised and reinforcement learning methods such as inductive inference, artificial neural network, support vector machines, clustering, Markov decision processes, etc. Students will have the opportunity to experiment with machine learning techniques and apply them to selected problems in projects.
Components: Class

COMPUTER 7660 Computer Vision 3 Credits

This course introduces the basic concepts in computer vision. It covers the following topics: An introduction to low-level image analysis methods, including image formation, edge detection, feature detection, and image segmentation; Image transformations (e.g., warping, morphing, and mosaics) for image synthesis; Methods for reconstructing three-dimensional scene information using techniques such as depth from stereo, structure from motion, and shape from shading; Algorithms on motion and video analysis; and three-dimensional object recognition algorithms.
Components: Class

COMPUTER 7720 Human-Computer Interaction 3 Credits

Human-Computer Interaction is the study of how people interact with computers. This course is an overview with a blend of theory and practice pertaining to the study of interaction with information systems. The course covers background relating to user-centered approaches in the design and evaluation of information systems applications. Areas to be addressed include the user interface and software design strategies, user experience levels, interaction styles, usability engineering, web site usability, and collaborative systems technology. Students will perform formal interface evaluations and usability tests applied to current information systems technology.
Components: Class

COMPUTER 7820 Advanced Algorithms 3 Credits

This course covers the advanced paradigms for the design and analysis of efficient algorithms, including dynamic programming, optimal greedy algorithms, amortized analysis, parallel algorithms, computational geometry algorithms, NP-hard and NP-complete problems, approximation algorithms, network flow algorithms, and randomized algorithms.
Components: Class

COMPUTER 7830 Special Topics in Computer Science 1-3 Credits

Specific contemporary issues or other issues related to Computer Science will be explored in depth. Topics vary. P: consent of instructor.
Components: Class
Typically Offered: Spring

COMPUTER 7920 Seminar Paper Research 1-3 Credits

The student will be required to carry out a project and write a technical paper in computer science. The student must demonstrate the ability to survey a field of knowledge and assemble, organize, evaluate, interpret, and present evidence in a logical and intelligent manner. P: Completion of at least 15 credits of computer science graduate courses.
Components: Seminar

COMPUTER 7980 Independent Study in Computer Science 1-4 Credits

The amount of graduate credit allowed for independent study may not exceed a total of four credits except with the special permission of the student's advisor and the Dean/Director of the School of Graduate Studies. Approval must be secured before independent study courses are begun. Students registering for independent study must submit at or before registration a description signed by the instructor conducting the independent study of the subject to be covered. Independent study may not be used for collecting information for the seminar paper.
Components: Independent Study
Typically Offered: Fall/Spring

COMPUTER 7990 Thesis Research 3-6 Credits

The thesis may be an outgrowth of a research course (e.g. TEACHING 7000 Research Procedures) or may be developed independently within the program area. The thesis will report the results of original and independent student research on a given problem or topic, by systematic and impartial methods, and will demonstrate the student's ability to use techniques customarily employed in the particular field of investigation. Although a thesis for the master's degree may not always be expected to make a significant contribution to existing knowledge, it should be a scholarly document that is accurate, verifiable, objective, and impartial. In consultation with the program advisor, the student proposes a committee of three faculty members. The committee normally includes the thesis advisor, one additional major department member, and one faculty member from another department. In some instances, a student may prefer a thesis advisor who is different from the program advisor assigned at the time of admission. An approved thesis proposal must be submitted and approved prior to registration. There is a website with useful links to guide the graduate student in grammar, style, evaluating web resources, and formats. (Thesis students will find the Texas A and M link useful for formatting procedures and other technical assistance.) The thesis advisor will provide guidance regarding the site. The site may be accessed through the University's Karrmann Library.
Components: Thesis Research
Typically Offered: Fall/Spring