Prerequisite Courses That are Offered at the University
Master of Science in Software Engineering
May 2002

If you are admitted to the Master of Science in Software Engineering Graduate program without a formal background in computer science, you may be asked to take some prerequisites in addition to graduate courses. On the admission letter you receive from Dean of the graduate school you can find the prerequisites prescribed for you in the form of subject followed by a number. Here is a copy of the catalog description of those courses.


MATH 142 Discrete Structures

(Prerequisite: none) A study of symbolic logic, sets, combinatorics, mathematical induction, recursion, graph theory, and trees. Intended for Mathematics, Computer Science, and Computer Information Systems majors, but open to other qualified students.


CMPS 134 Computer Science I

(Prerequisite: none) An introduction to programming concepts and methodology using an appropriate object oriented programming language (currently Java). Topics include problem analysis, abstraction, modularization, the development and use algorithms, reuse, and the use of programming constructs including data types, classes, control structures, and methods.


CMPS 144 Computer Science II

(Prerequisite: CMPS 134 and Math 142) A sequel to CMPS 134, this course emphasizes object-oriented software development, addressing both software engineering and programming. Topics relevant to this former include modularization, abstraction, encapsulation/information hiding, software reuse, and software testing. Topics relevant to the later include classic data abstractions (e.g., lists, trees) and algorithms (e.g., sorting, searching), recursion, program correctness, and basic algorithm analysis.


CMPS 240 Data Structures

(Prerequisite: CMPS 144 ) An examination of the issues of data representation, algorithm structure, and encapsulation as they pertain to the development of object-oriented software. Abstract data types studied include stacks, queues, binary trees, n-ary trees, and graphs. Various representation alternatives are analyzed and compared, trade-offs frequently encountered by software developers are discussed.


CMPS 340 File Processing

(Prerequisite: CMPS 144 required; CMPS240 recommended) File structures concepts and file processing applications using an appropriate programming language (currently COBOL). Topics include file maintenance and storage management; file searching, sorting, and merging; sequential processing, index structures; B-trees; hash tables; indexed sequential files; database concepts.


CMPS 352 Operating Systems

(Prerequisite: CMPS 240 and CMPS250) An introduction to the principles of operating systems. Topics include operating system structure, process management, scheduling and dispatching, process synchronization and interprocess communication, memory management, virtual memory, device management, I/O, an file systems.