| CMPS 108 | COBOL Programming | 3 credits | | (Prerequisite: Previous use of a computer) An introduction to ANSI standard COBOL. Traditional business applications will be emphasized. Topics include internal data representation, data editing, calculations, one-level tables, search, sort and reporting.
|
| | CMPS 134 | Computer Science I | 3 credits | | An introduction to programming concepts and methodology using an appropriate programming language. The course emphasizes a structured programming approach. Topics include problem analysis, modularization, top-down design, and the elements of a programming language.
|
|
| CMPS 144 | Computer Science II | 4 credits | | (Prerequisite: CMPS 134 and MATH 142) This course emphasizes object-oriented software development, addressing both software engineering and programming. Topics include modularization, abstraction, encapsulation/information hiding, software reuse, software testing, classic data abstractions (e.g., lists, trees) and algorithms (e.g., sorting, searching), recursion, program correctness, and basic algorithm analysis.
|
| | CMPS 202 | Web Development | 3 credits | | (Prerequisites: one of CMPS 102, 104 or C/IL 102 or equivalent) A course for non-computer science majors that will cover fundamental aspects of the development of personal, professional and business resources using web-development tools. Topics include creating web pages, using basic HTML; advanced HTML concepts; frames; JavaScript to enhance web pages; forms; CGI (common gateway interface); Java classes. Emphasis will be placed on client-side development although server-side issues will also be covered. May not be used by Computer Science or Computer Information Systems students as part of the major. This is a technical course for students who do not necessarily have a technical background.
|
|
| CMPS 240 | Data Structures | 3 credits | | (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, and trade-offs frequently encountered by software developers are discussed.
|
| | CMPS 250 | Machine Organization and Assembly Language Programming | 3 credits | | (Prerequisite: CMPS 144) An introduction to machine organization and architecture. Among the topics discussed will be machine organization, assembler programming, the representation of data, the assembler, input-output routines and the use of macros.
|
|
| CMPS 260 | Theoretical Foundations of Computer Science | 3 credits | | (Prerequisite: CMPS 240) An examination of the fundamental models and concepts of computation - automata, formal languages, and grammars - and how they are related. Church-Turing thesis; recursive and recursively renumerable sets; unsolvable problems; complexity of algorithms; Chomsky hierarchy.
|
| | CMPS 330 | Information Systems | 3 credits | | (Prerequisite: CMPS 102/104, C/IL 102, or CMPS 134) Introduction to concepts and practices of information processing. Computerized system requirements and techniques in providing appropriate decision-making information to management.
|
|
| CMPS 331 | Systems Analysis and Design | 3 credits | | (Prerequisite: CMPS 330) A study of the system-development methodology and the role played by the systems analyst in developing user-accepted information systems.
|
| | CMPS 340 | File Processing | 4 credits | | (Prerequisites: CMPS 144 required; CMPS 240 recommended.) File-structures concepts and file processing applications using COBOL as a programming language. Topics include file maintenance and storage management; file searching, sorting, and merging; cosequential processing; index structures; B-trees; hash tables; indexed sequential files; database concepts.
|
|
| CMPS 341 | Database Systems | 3 credits | | (Prerequisites: CMPS 340 required; CMPS 240 recommended) An introduction to database management systems, DBMS, with an emphasis on relational database design and applications. The primary software used is ORACLE DBMS.
|
| | CMPS 344 | Programming Languages | 3 credits | | (Prerequisite: CMPS 240) A study of programming languages from both the theoretical and practical perspectives. The evolution of languages is reviewed in order to know the design considerations of the past and recognize those of the present. A survey of major and developing paradigms and languages is undertaken which includes use of specific languages to broaden the student's experience. Implementation is studied through an introduction to compiling and interpretation.
|
|
| CMPS 350 | Computer Architecture | 3 credits | | (Prerequisite: CMPS 250) A study of the logical structure of computer-system organization including a survey of logic and design with an emphasis on functional components. Topics include instruction sets, hard-wired and micro-programmed control-unit designs, memory systems (caches and virtual memory), I/O systems (interrupts, DMA, and channels). Overview and examples of alternative and advanced computer architectures (pipeline, array processors, multiprocessors).
|
| | CMPS 352 | Operating Systems | 3 credits | | (Prerequisites: CMPS 240 and CMPS 250) The analysis and design of computer systems, including operating-system design, memory management, scheduling, and the implementation of multiprogramming.
|
|
| CMPS 354 | Data Communications and Networks | 3 credits | | (Prerequisite: CMPS 352) A study of data communication and networking concepts, including distributed-system architectures, electronic interfaces, data-transmission, data link protocols, terminal networks, computer communication, public-data networks, and local-area networks.
|
| | CMPS 356 | Web Programming | 3 credits | | (Prerequisite: CMPS 240 and HTML experience to the level where the students are capable of developing their own web page) This course covers all aspects of programming on the world wide web. This includes the presentation of HTML, Java, JavaScript and CGI. Topic include advanced HTML (maps, forms, etc.) client-server programming basics as they relate to the web, Java machine concepts, Java/JavaScript similarities and differences, server side programming, GIF animations, web programming resourc
|
|
| CMPS 360 | Analysis of Algorithms | 3 credits | | (Prerequisite: CMPS 240) A survey of methods for designing and analyzing algorithms. Classic algorithms from graph theory, combinatorics and text processing are examined, as are traditional design strategies such as divide-and-conquer, backtracking and dynamic programming. Other topics include NP-completeness and parallel algorithms.
|
| | CMPS 362 | Numerical Analysis | 3 credits | | (Prerequisites: CMPS 134 and MATH 222) A survey of numerical methods for solving equations, integration, differentiation, interpolation, differential equations, and linear algebra, and the analysis of error.
|
|
| CMPS 364 | Theory of Computation | 3 credits | | (Prerequisite: CMPS 260) The development of a theoretical notion of computability and its relationship to Turing computability and recursive functions; the study of the relationships between automata, formal languages and grammars.
|
| | CMPS 370 | Computer Graphics | 3 credits | | (Prerequisite: CMPS 240) An introduction to the hardware, software and techniques used to generate graphical representations by computer. Two- and three-dimensional concepts and algorithms are studied with corresponding use of popular standard packages (GKS, PHIGS, etc.) to generate images. Advanced topics such as animation and the various aspects of realistic rendering are introduced.
|
|
| CMPS 372 | Artificial Intelligence | 3 credits | | (Prerequisite: CMPS 240) Problem solving using expert systems, heuristic programming techniques, tree speed-up techniques, and learning mechanisms.
|
| | CMPS 374 | Fundamentals of Software Engineering | 3 credits | | (Prerequisite: CMPS 240) An introduction to the concepts of Software Engineering. Stress is placed upon formal models for the design and development of high-quality software. Topics include: project planning, requirements analysis, system design, program design, program implementation, program testing, system testing, system delivery, and maintenance. A group project will be included.
|
|
| CMPS 384 | Special Topics | 3 credits each | | (Departmental permission required) Topics and prerequisites will be announced prior to preregistration.
|
| | CMPS 393 | Computer Research | 3 credits | | (Departmental permission required) A research project carried out by a student under the direction of a faculty member in the department. The results will be prepared in a form suitable for publication. Reader fee.
|
|
| CMPS 440 | Compiler Design | 3 credits | | (Prerequisite: CMPS 344) Study of techniques and problems involved in constructing compilers. Lexical analysis, syntax analysis, semantic analysis, symbol-table management, code generat
|
| | CMPS 481 | Computer Internship | 3 credits | | (Departmental permission required) An intensive job experience in computing which carries academic credit. Prior approval is required and an information booklet is available from the department. Reader fee.
|
|
| CMPS 490 | (W) Computer Projects | 3 credits | | (Seniors only. Departmental permission required) In this course students prepare and present individual computer projects to be evaluated by the instructor and their fellow students.
|
| | CMPS 311 | Computer Networks and Security | 3 credits | | (Prerequisite: CMPS 136 or CMPS 144) An introduction to intranets and wide-area networking including operating systems fundamentals, hardware considerations, deployment and administration of networks, security issues, intrusion detection/protection, firewalls, VPNs, and encryption. Cannot be used to satisfy the requirements of either the Computer Science or the Computer Information Systems major. Cannot be taken by a student who has credit for CMPS 354.
|
|
|