CMPS 101 - (Q) Computational Thinking | |
---|---|
Prerequisites: | None |
Corequisites: | None |
Credits: | 3cr |
Course Description: | This course introduces students to the concepts, methods, and principles employed by Computer Scientists in problem solving and solution development. This body of knowledge has been successfully adopted by a wide variety of disciplines enabling significant advances in those disciplines. Students will be introduced to this body of knowledge through the analysis of relevant problems and also learn to apply it through the development of computer programs. |
CMPS 112 - (FYDT, FYOC) Introduction to Computing and Information Technology | |
---|---|
Prerequisites: | None |
Corequisites: | None |
Credits: | 3cr |
Course Description: | This course presents foundational concepts and surveys the past, present and future of computing and information technology with an emphasis on the seminal ideas, concepts, inventions and innovations that fuel the Digital Revolution. The sub-disciplines of computing are identified and discussed relative to each other. This course is designed to foster knowledge and abilities needed for gathering, evaluating and disseminating information with an emphasis on digital technology and oral communication. (Credits may not be earned for both CMPS 112 and IT 112.) |
CMPS 134 - Computer Science I | |
---|---|
Prerequisites: | None |
Corequisites: | CMPS 134L |
Credits: | 3cr |
Course Description: | An introduction to programming concepts and methodology using an object-oriented programming language (currently Java). Topics include problem analysis, abstraction, modularization, the development and use of algorithms, reuse, and the use of programming constructs including data types, classes, control structures, and methods. |
CMPS 134L - Computer Science I Lab | |
---|---|
Prerequisites: | CMPS 134 (with departmental permission) |
Corequisites: | CMPS 134 |
Credits: | 1cr |
Course Description: | Programming-related activities are undertaken that apply essential concepts from CMPS 134, including problem decomposition, modularization, flow of control, scoping, object-orientation, and algorithm development. |
CMPS 136 - Computer Programming II | |
---|---|
Prerequisites: | CMPS 134 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | For non-computing majors who want more object-oriented programming experience. Includes data structures, file processing, graphical user interfaces and event-driven programming. May not be used to satisfy the requirements of CMPS or CIS. May not be taken by a student who has credit for CMPS 144. |
CMPS 144 - Computer Science II | |
---|---|
Prerequisites: | CMPS 134, CMPS 134L, and either MATH 114 or MATH 142 |
Corequisites: | CMPS 144L |
Credits: | 3cr |
Course Description: | 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 144L - Computer Science II Lab | |
---|---|
Prerequisites: | CMPS 134 and CMPS 134L |
Corequisites: | CMPS 144 is required as a co-requisite, or as a prerequisite with departmental permission. |
Credits: | 1cr |
Course Description: | Activities are undertaken that apply programming concepts form CMPS 144, including object-orientation, inheritance, polymorphism, iterators, generics, algorithms involving various container structures (e.g., stacks, queues, lists, trees, graphs), analysis of algorithms, and concurrency. |
CMPS 204 - Computer Forensics | |
---|---|
Prerequisites: | C/IL 102/102L or its equivalent |
Corequisites: | None |
Credits: | 3cr |
Course Description: | An introduction to the field of computer forensics emphasizing the collection and analysis of both persistent and volatile data from computer systems, networks, and storage media in a manner that is admissible in a court of law. May not be used as a major elective for any major in the Computing Sciences Department. |
CMPS 213 - Sophomore Colloquia I | |
---|---|
Prerequisites: | None |
Corequisites: | CMPS 134 |
Credits: | 0.5cr |
Course Description: | CMPS 213 is offered each Fall Semester. Each semester a minimum of five meetings are held where important, emerging, or interesting topics in computing are presented and discussed. The material comes from a variety of sources including, but not limited to, faculty, alumni, invited speakers, students, and professional webinars and videos. |
CMPS 214 - Sophomore Colloquia II | |
---|---|
Prerequisites: | None |
Corequisites: | CMPS 134 |
Credits: | 0.5cr |
Course Description: | CMPS 214 is offered each Spring Semester. Each semester a minimum of five meetings are held where important, emerging, or interesting topics in computing are presented and discussed. The material comes from a variety of sources including, but not limited to, faculty, alumni, invited speakers, students, and professional webinars and videos. |
CMPS 240 - Data Structures and Algorithms | |
---|---|
Prerequisites: | CMPS 144 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | 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 250 - Machine Organization and Assembly Language Programming | |
---|---|
Prerequisites: | CMPS 144 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | An introductory study of the organization and architecture of computers through an exploration of various virtual machines. Programming at the assembly-language level and interfacing with software components (primarily written in C). Topics include representation of data and instructions, computer arithmetic, memory hierarchies, instruction sets, addressing modes, digital logic, microprogramming, pipelining, and parallel processing. |
CMPS 260 - Theoretical Foundations of Computer Science | |
---|---|
Prerequisites: | CMPS 240 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | 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 enumerable sets; unsolvable problems; complexity of algorithms; Chomsky hierarchy. |
CMPS 312 - Web Technology | |
---|---|
Prerequisites: | C/IL 102/102L or equivalent, COMM 329, IT 354 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | This course covers the fundamental aspects of developing and maintaining Web sites. It provides a thorough coverage of the structure and elements of HTML and JavaScript necessary to create commercial-quality Web sites. Brief coverage will also be given to graphic design and multimedia content. Emphasis will be placed on client-side development although server-side issues will be considered. May not be used as part of any major in the Computing Sciences Department. Cannot be taken by a student who has credit for IT 120 or CMPS 356. |
CMPS 313 - Junior Colloquia I | |
---|---|
Prerequisites: | None |
Corequisites: | CMPS 213 |
Credits: | 0.5cr |
Course Description: | CMPS 313 is offered each Fall Semester. Each semester a minimum of five meetings are held where important, emerging, or interesting topics in computing are presented and discussed. The material comes from a variety of sources including, but not limited to, faculty, alumni, invited speakers, students, and professional webinars and videos. |
CMPS 314 - Junior Colloquia II | |
---|---|
Prerequisites: | None |
Corequisites: | CMPS 214 |
Credits: | 0.5cr |
Course Description: | CMPS 314 is offered each Spring Semester. Each semester a minimum of five meetings are held where important, emerging, or interesting topics in computing are presented and discussed. The material comes from a variety of sources including, but not limited to, faculty, alumni, invited speakers, students, and professional webinars and videos. |
CMPS 330 - (W,EPW) Information Systems Analysis | |
---|---|
Prerequisites: | C/IL 102/102L/C/IL 104 or CMPS 134 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | Introduction to concepts and practices of information processing. Computerized system requirements and techniques in providing appropriate decision-making information to management. |
CMPS 331 - Information Systems Development | |
---|---|
Prerequisites: | CMPS 330 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | A study of system-development methodology and the role played by the systems analyst in developing user-accepted information systems. |
CMPS 340 - Introduction to Database | |
---|---|
Prerequisites: | CMPS 144 required, CMPS 240 recommended |
Corequisites: | None |
Credits: | 3cr |
Course Description: | File structures concepts and file processing applications. Topics include file maintenance and storage management; file searching, sorting, and merging; consequential processing; index structures; B-trees; hash tables; indexed sequential files; database concepts. |
CMPS 341 - Database Systems | |
---|---|
Prerequisites: | CMPS 340 required, CMPS 240 recommended |
Corequisites: | None |
Credits: | 3cr |
Course Description: | An introduction to database management systems with an emphasis on relational database design and applications. It uses an appropriate database package such as ORACLE or PostgreSQL. |
CMPS 344 - Programming Languages | |
---|---|
Prerequisites: | CMPS 240 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | A study of programming languages from both the theoretical and practical perspectives. 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 language translation along with a study of run-time models and interfaces with virtual machines. |
CMPS 350 - Computer Architecture | |
---|---|
Prerequisites: | CMPS 250 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | 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 microprogrammed 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 | |
---|---|
Prerequisites: | CMPS 240, CMPS 250 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | 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, and file systems. |
CMPS 354 - Data Communications and Networks | |
---|---|
Prerequisites: | CMPS 352 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | 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 355 - Mobile Application Development | |
---|---|
Prerequisites: | CMPS 352 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | This course deals with the development of software for mobile devices such as smartphones and tablets. Topics include, but are not limited to, graphical user interface design, event-driven software model, resource management, interfacing with sensors, concurrency, database access, and networking. |
CMPS 356 - Web Programming | |
---|---|
Prerequisites: | CMPS 240, HTML experience to the level where the students are capable of developing their own Web page |
Corequisites: | None |
Credits: | 3cr |
Course Description: | This course covers all aspects of programming on the World Wide Web. This includes the presentation of HTML, Java, JavaScript and CGI. Topics 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 resources and environments. (Students may not earn credit for CMPS 356 and IT 356.) |
CMPS 358 - Real-Time Systems | |
---|---|
Prerequisites: | CMPS 352 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | A study of issues related to systems that interface with the physical world and must meet the timing constraints imposed on them. Topics include: real-time hardware architecture, real-time operating systems, invoking and managing threads and processes, interprocess communications and synchronization, manipulating process priority, concurrent programming, exception handling, software safety, reliability, and fault tolerance. |
CMPS 360 - Analysis of Algorithms | |
---|---|
Prerequisites: | CMPS 240 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | 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 | |
---|---|
Prerequisites: | CMPS 134, MATH 222 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | 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 | |
---|---|
Prerequisites: | CMPS 260 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | 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 | |
---|---|
Prerequisites: | CMPS 240 |
Corequisites: | CMPS 250 |
Credits: | 3cr |
Course Description: | An introduction to the hardware, software and techniques used to generate graphical representations by computer. Two and three dimensional concepts, algorithms and architectures are studied. An essential aspect of the course involves the development of programs utilizing appropriate APIs (currently OpenGL is emphasized) as a means of developing expertise. Advanced topics may be pursued as appropriate. |
CMPS 372 - Artificial Intelligence | |
---|---|
Prerequisites: | CMPS 240 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | Problem solving using expert systems, heuristic programming techniques, tree speed-up techniques, and learning mechanisms. |
CMPS 374 - (W,EPW) Fundamentals of Software Engineering | |
---|---|
Prerequisites: | CMPS 240 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | 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 376 - Rapid Prototyping | |
---|---|
Prerequisites: | CMPS 136 or CMPS 144 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | Some common applications using a database with a visual interface (perhaps Web based) can be successfully treated using Rapid Prototyping (a.k.a. Rapid Application Development). This course will cover the synergy of combining a visual language and a relational database employing rigorous design techniques. |
CMPS 384 - Special Topics | |
---|---|
Prerequisites: | As published |
Corequisites: | None |
Credits: | 3cr |
Course Description: | Some recent courses have covered Rapid Prototyping, Real-Time Systems, and Parallel Computing. A syllabus including prerequisites is published prior to the registration period for the course. |
CMPS 393 - Computer Research | |
---|---|
Prerequisites: | Departmental permission |
Corequisites: | None |
Credits: | 3cr |
Course Description: | 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 413 - Senior Colloquia I | |
---|---|
Prerequisites: | None |
Corequisites: | CMPS 313 |
Credits: | 0.5cr |
Course Description: | CMPS 413 is offered each Fall Semester. Each semester a minimum of five meetings are held where important, emerging, or interesting topics in computing are presented and discussed. The material comes from a variety of sources including, but not limited to, faculty, alumni, invited speakers, students, and professional webinars and videos. |
CMPS 414 - Senior Colloquia II | |
---|---|
Prerequisites: | None |
Corequisites: | CMPS 314 |
Credits: | 0.5cr |
Course Description: | CMPS 414 is offered each Spring Semester. Each semester a minimum of five meetings are held where important, emerging, or interesting topics in computing are presented and discussed. The material comes from a variety of sources including, but not limited to, faculty, alumni, invited speakers, students, and professional webinars and videos. |
CMPS 440 - Compiler Design | |
---|---|
Prerequisites: | CMPS 344 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | Study of techniques and problems involved in constructing compilers. Lexical analysis, syntax analysis, semantic analysis, symbol-table management, code generation, code optimization. |
CMPS 481 - Computer Internship | |
---|---|
Prerequisites: | Departmental permission |
Corequisites: | None |
Credits: | 3cr |
Course Description: | An extensive job experience in computing which carries academic credit. Prior approval is required; information is available on the department Web site. |
CMPS 490 - (W,EPW) Computer Projects | |
---|---|
Prerequisites: | Senior standing, departmental permission |
Corequisites: | None |
Credits: | 3cr |
Course Description: | In this course, students prepare and present individual computer projects to be evaluated by the instructor and their fellow students. |