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,
ArrayList
s, 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, CSC1010, 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 CSC1020, CSC1120, and CSC1120A. (prereq: CSC1110 or CSC1110A) (3-2-4)
CSC1020: Data Structures, I/O, and Graphical Interfaces
This course covers interfaces, exceptions, file input/output, 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 CSC1020, CSC1120, and CSC1120A. (prereq: CSC1010, CSC1110, or CSC1110A) (4-2-5)
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)