These pages are maintained by Dr. Chris Taylor, Professor and Vice Chair of the Electrical Engineering and Computer Science Department at MSOE.

Curriculum Information for Computer Science and Software Engineering

Computer Science

Students will learn on the leading edge of this technological revolution, developing skills to solve problems using algorithms, applied mathematics, and artificial intelligence in a hands-on environment working on real problems with faculty who have industry experience.

Software Engineering

Software engineering applies engineering concepts, techniques and methods to the development of software systems. The software engineering program develops engineering professionals with a mastery of software development theory, practice and process. Software engineering is based on computer science in the same way other engineering disciplines are based on physical or life sciences. However, it adds an emphasis on issues of requirements, process, design, measurement, analysis and verification, providing a strong foundation in engineering principles and practice as applied to software development.

First Year Software Sequence

The first year software sequence for computer engineering, computer science, and software engineering students.

CSC1110: Software Development

This course provides an introduction to object-oriented software development using the Java programming language. Students design, document, and implement software solutions based on written problem descriptions. Topics covered include Java program structure, algorithmic problem solving and modularization, I/O statements, control constructs, looping techniques, class libraries, arrays, ArrayLists, abstraction, encapsulation, declaring and implementing abstract data types, interfaces, and inheritance, exception handling, and file I/O. Note: students may receive credit for only one of BUS2730, CSC1110, and CSC1110A. (prereq: none) (3-2-4)

CSC1120: Data Structures and Graphical Interfaces

This course covers graphical user interfaces and event-driven programming as well as the organization of data and the algorithms that act upon them. Various sorting algorithms and data structures are covered. The topics of arrays, linked lists, stacks, queues, trees, sets, and hash tables are introduced. Fundamentals of algorithm performance are also introduced, with an emphasis placed on time complexity analysis. Laboratory activities include implementation of data structures as well as development of GUI applications that apply data structures from standard libraries. Note: students may receive credit for only one of CSC1120 and CSC1120A. (prereq: CSC1110 or CSC1110A) (3-2-4)

Senior Design

Each student team must specify, design, implement, document, and test a substantial software project. Teams meet regularly with their instructor to track technical and project management issues. (prereq: completion of core courses through junior year (a maximum of two may be missing) or approved plan of study to complete the degree by the following Fall Quarter) (2-2-3)