
CMPSC 097
Special Topics (1-9) Formal courses given infrequently to explore, in depth, a comparatively narrow subject which may be topical or of special interest.
Effective: Spring 2008
CMPSC 100
Computer Fundamentals and Applications (3) Introduction to computer fundamentals and applications to data processing environments.
Effective: Spring 1995
Prerequisite:
2 entrance units in mathematics
CMPSC 101
(GQ)
Introduction to C++ Programming (3) Properties of algorithms, languages, and notations for describing algorithms, applications of a procedure-oriented language to problem solving. A student may receive credit for only one of the following courses: CMPSC 101, 200, 201, 202, 121.
Effective: Fall 2010
Prerequisite:
2 entrance units in mathematics
CMPSC 102
Introduction to VB Programming (3) Problem solving in M I S environment; high-level language programming; control structures, functions, parameters, recursion, arrays, records/structures; verification; debugging; documentation.
Effective: Summer 2008 Ending: Summer 2013
Prerequisite:
2 entrance units in mathematics
CMPSC 102
Introduction to Visual Programming (3) Problem solving for non-majors; high-level language programming; controlstructures, functions, parameters, recursion, arrays, records/ structures; verification; debugging; documentation.
Effective: Fall 2013 Future: Fall 2013
Prerequisite:
2 entrance units in mathematics
CMPSC 109
Introduction to Data Processing with COBOL (3) Study of the COBOL programming language and its applications in industry.
Effective: Spring 2008
Prerequisite:
3 credits of programming
CMPSC 111S
Logic for Computer Science (1) An introduction to logic and its application to problem solving and computer science.
Effective: Spring 2009
CMPSC 121
(GQ)
Introduction to Programming Techniques (3) Design and implementation of algorithms. Structured programming. Problem solving techniques. Introduction to a high-level language, including arrays, procedures, and recursion.
Effective: Fall 2010
Prerequisite:
MATH 110 or prerequisite or concurrentMATH 140
CMPSC 122
Intermediate Programming (3) Object-oriented programming, recursion, fundamental data structures (including stacks, queues, linked lists, hash tables, trees, and graphs), the basics of algorithmic analysis, and an introduction to the principles of language translation.
Effective: Spring 2008
Prerequisite:
CMPSC 121
CMPSC 197
Special Topics (1-9) Formal courses given infrequently to explore, in depth, a comparatively narrow subject which may be topical or of special interest.
Effective: Spring 2008
CMPSC 199
(IL)
Foreign Studies (1-12) Courses offered in foreign countries by individual or group instruction.
Effective: Summer 2005
CMPSC 200
(GQ)
Programming for Engineers with MATLAB (3) Development and implementation of algorithms in a procedure-oriented language, with emphasis on numerical methods for engineering problems. A student may receive credit for only one of the following courses: CMPSC 101, 102, 200, 201, or 202.
Effective: Spring 2008
Prerequisite:
MATH 140
Concurrent:
MATH 141
CMPSC 201
(GQ)
Programming for Engineers with C++ (3) Development and implementation of algorithms in a procedure-oriented language, with emphasis on numerical methods for engineering problems. A student may receive credit for only one of the following courses: CMPSC 101, 102, 200, 201, or 202.
Effective: Spring 2008
Prerequisite:
MATH 140
Concurrent:
MATH 141
CMPSC 202
(GQ)
Programming for Engineers with FORTRAN (3) Development and implementation of algorithms in a procedure-oriented language, with emphasis on numerical methods for engineering problems. A student may receive credit for only one of the following courses: CMPSC 101, 102, 200, 201, or 202.
Effective: Spring 2008
Prerequisite:
MATH 140
Concurrent:
MATH 141
CMPSC 203
(GQ)
Introduction to Spreadsheets and Databases (4) Design, use, and programming of spreadsheets and data bases with applications from a range of disciplines.
Effective: Spring 2008
Prerequisite:
2 entrance units in mathematics
CMPSC 208
(GQ)
Technical Game Development (3) Introduction to the tools and techniques required to implement games in a virtual environment.
Effective: Summer 2013
Prerequisite:
MATH 021
CMPSC 221
Object Oriented Programming with Web-Based Applications (3) This course will continue with object-oriented programming and will introduce graphics, virtual machines, programming language concepts and web-based programming using Java.
Effective: Spring 2008
Prerequisite:
CMPSC 122
CMPSC 295
Internship (1-18) Supervised off-campus, nongroup instruction including field experiences, practica, or internships. Written and oral critique of activity required.
Effective: Spring 2008
Prerequisite:
prior approval of proposed assignment by instructor
CMPSC 296
Independent Studies (1-18) Creative projects, including research and design, which are supervised on an individual basis and which fall outside the scope of formal courses.
Effective: Spring 2008
CMPSC 297
Special Topics (1-9) Formal courses given infrequently to explore, in depth, a comparatively narrow subject which may be topical or of special interest.
Effective: Spring 2008
CMPSC 297A
Pre-Intermediate C++ Programming (1) This short course is designed for students who have taken introduction to C++ programming (CMPSC 101 or CMPSC 201) and are intersted in taking intermediate C++ Programming (CMPSC 122). The topics in the course: a review of basic C++ programming; introduction to memory management (stack and heap allocation), pointers and dynamic memory allocation; introduction to data structures; fundamental concept of recursion.
Effective: Fall 2013 Ending: Fall 2013 Future: Fall 2013
Prerequisite:
CMPSC 101 orCMPSC 201 with an "A"
CMPSC 299
(IL)
Foreign Studies (1-12) Courses offered in foreign countries by individual or group instruction.
Effective: Spring 2008
CMPSC 302
Intermediate VB Programming (3) OO programming, visual programming, classes, objects, ADTs, inheritance, recursion, regular expressions, user-defined controls, documentation, testing, verification, productivity tools.
Effective: Spring 2008
Prerequisite:
CMPSC 102 orCMPSC 121
CMPSC 311
Introduction to Systems Programming (3) Unix system programming in C; organization of programs and data; program analysis and support tools; software standards; common system functions.
Effective: Spring 2008
Prerequisite:
CMPSC 221
CMPSC 312
Computer Organization and Architecture (3) Data representation, digital logic, instruction set/control logic, machine/ assembly languages, advanced architectures, memory hierarchy, I/O devices, overall system design.
Effective: Spring 2008
Prerequisite:
CMPSC 121 or equivalent
CMPSC 313
Assembly Language Programming (3) Program design, addressing modes, subroutines, parameter passing, stacks, bit manipulation, text processing, DOS functions, macros, I/O, high level language interfaces.
Effective: Spring 2008
Prerequisite:
CMPSC 312
CMPSC 335
Fundamentals of Communication Networks (3) Introduction to the composition of communciation networks, including trans- mission mediums and protocols, transfer methods, topologies and software, and communications hardware.
Effective: Spring 2008
Prerequisite:
3 credits of programming
CMPSC 360
Discrete Mathematics for Computer Science (3) Discrete mathematics and foundations for modern computer science. Topics include sets, relations, logic, algorithms, graphs, finite state machines and regular expressions.
Effective: Spring 2008
Concurrent:
CMPSC 122
CMPSC 395
Internship (1-18) Supervised off-campus, nongroup instruction including field experiences, practica, or internships. Written and oral critique of activity required.
Effective: Spring 2013
CMPSC 397
Special Topics (1-9) Formal courses given infrequently to explore, in depth, a comparatively narrow subject which may be topical or of special interest.
Effective: Spring 2008
CMPSC 399
(IL)
Foreign Studies (1-12) Courses offered in foreign countries by individual or group instruction.
Effective: Summer 2005
CMPSC 402
UNIX and C (3) UNIX OS including file system, utilities, and shell scripting; C programming, including I/O, pointers, arrays, dynamic memory, macros, and libraries.
Effective: Fall 2010
Prerequisite:
CMPSC 121
CMPSC 412
Data Structures Lab (1.5) Programming with common data structures; recursion; stacks, queues, dictionaries, priority queues; string searching and manipulation; sorting; trees; combinatorics.
Effective: Spring 2013
Concurrent:
CMPSC 462
or
CMPSC 465
CMPSC 413
Algorithms Lab (1.5) Programming with common algorithm design techniques; divide and conquer, greedy method, dynamic programming, and tree and graphy traversals.
Effective: Summer 2013
Concurrent:
CMPSC 463
CMPSC 421
Net-centric Computing (3) This course introduces JavaScript and AJAX for creating Rich Internet Applications, and XML for client-server communication and Web Services.
Effective: Spring 2011
Prerequisite:
CMPSC 221 orSWENG 311
CMPSC 425
Advanced Object-Oriented Programming (3) Advanced object-oriented programming paradigm, exception handling, application programming interface, secure programming, network programming, threads and synchronization.
Effective: Spring 2010 Ending: Fall 2013
Prerequisite:
CMPSC 122
CMPSC 426
Object-oriented Design (3) Object-oriented analysis and design; design patterns such as creational, structural, and behavioral patterns; UML; and unified process.
Effective: Fall 2010 Ending: Fall 2013
Prerequisite:
CMPSC 425, CMPSC 462
CMPSC 426
Object-oriented Design (3) Object-oriented analysis and design; design patterns such as creational, structural, and behavioral patterns; UML; and unified process.
Effective: Spring 2014 Future: Spring 2014
Prerequisite:
CMPSC 221, CMPSC 462
CMPSC 428
Programming in Ada (3) Structured program design using Ada; strong typing, data abstraction, packages, subprograms, separate compilation, visibility, exceptions, generic units.
Effective: Fall 2010
Prerequisite:
CMPSC 121
CMPSC 430
Database Design (3) Relational database model, query languages, integrity, reliability, normal forms for design.
Effective: Fall 2010
Prerequisite:
CMPSC 462
CMPSC 431W
Database Management Systems (3) Database system concepts: file organizations and retrieval algorithms; the three data models (relational, hierarchical, and network) and their database implementations.
Effective: Spring 2008 Ending: Summer 2013
Prerequisite:
CMPSC 221;ENGL 202C
CMPSC 431W
Database Management Systems (3) Topics include: conceptual data modeling, relational data model, relational query languages, schema normalization, database/Internet applications, and database system issues.
Effective: Fall 2013 Future: Fall 2013
Prerequisite:
CMPSC 221;ENGL 202C
CMPSC 436
Communications and Networking (3) Data transmission, basic signaling, data encoding, error control, communication protocols, security, network topologies, routing, switching, internetworking, emerging high speed networks.
Effective: Spring 2008
Prerequisite:
CMPSC 312
CMPSC 438
Computer Network Architecture and Programming (3) Network architectures, communication protocols, internetworking, network security, client-server computing, web application development, programming with APIs.
Effective: Spring 2010 Ending: Fall 2013
Prerequisite:
CMPSC 312, CMPSC 425
CMPSC 438
Computer Network Architecture and Programming (3) Network architectures, communication protocols, internetworking, network security, client-server computing, web application development, programming with APIs.
Effective: Spring 2014 Future: Spring 2014
Prerequisite:
CMPSC 221, CMPSC 312
CMPSC 441
Artificial Intelligence (3) Problem solving, search techniques including local search and genetic algorithms, knowledge representation, planning, learning, and neural networks.
Effective: Fall 2010 Ending: Fall 2013
Prerequisite:
CMPSC 122;MATH 315
CMPSC 441
Artificial Intelligence (3) Problem solving, search techniques including local search and genetic algorithms, knowledge representation, planning, learning, and neural networks.
Effective: Spring 2014 Future: Spring 2014
Prerequisite:
CMPSC 122, CMPSC 360
CMPSC 442
Artificial Intelligence (3) Introduction to the theory, research paradigms, implementation techniques, and philosophies of artificial intelligence.
Effective: Spring 2008
Prerequisite:
CMPSC 122 or equivalent
Concurrent:
CMPSC 465
CMPSC 443
Introduction to Computer and Network Security (3) Introduction to theory and practice of computer security with an emphasis on Internet and operating system applications.
Effective: Spring 2008
Prerequisite:
CMPSC 473, CMPEN 362
CMPSC 444
Secure Programming (3) Secure software design principles/practice, common threats, applied cryptography, trust management, input validation, OS-/programming language- specific issues, software validation.
Effective: Spring 2013 Ending: Fall 2013
Prerequisite:
CMPSC 425 orCMPSC 221
Concurrent:
CMPSC 430
or
CMPSC 431
or
CMPSC 421W
CMPSC 444
Secure Programming (3) Secure software design principles/practice, common threats, applied cryptography, trust management, input validation, OS-/programming language- specific issues, software validation.
Effective: Spring 2014 Future: Spring 2014
Prerequisite:
CMPSC 221
Concurrent:
CMPSC 430
or
CMPSC 431
or
CMPSC 421W
CMPSC 448
Machine Learning and Algorithmic AI (3) Evaluation and use of machine learning models; algorithmic elements of artificial intelligence.
Effective: Spring 2013
Prerequisite:
STAT 319 orSTAT 415 andCMPSC 122 or prior programming experience
CMPSC 450
Concurrent Scientific Programming (3) Problems of synchronization, concurrent execution, and their solution techniques. Design and implementation of concurrent software in a distributed system.
Effective: Spring 2008
Prerequisite:
CMPSC 121, CMPSC 201 orCMPSC 202;MATH 220;MATH 230 orMATH 231
CMPSC 451
(MATH 451)
Numerical Computations (3) Algorithms for interpolation, approximation, integration, nonlinear equations, linear systems, fast FOURIER transform, and differential equations emphasizing computational properties and implementation. Students may take only one course for credit from CSE/MATH 451 and CSE/MATH 455.
Effective: Spring 2008
Prerequisite:
3 credits of programming;MATH 230 orMATH 231
CMPSC 452
Numerical Analysis (3) Algorithm efficiency and accuracy, function interpolation and polynomial approximation, numerical differentiation and integration, initial-value problems, and approximation of eigenvalues.
Effective: Fall 2010
Prerequisite:
MATH 220
CMPSC 455
(MATH 455)
Introduction to Numerical Analysis I (3) Floating point computation, numerical rootfinding, interpolation, numerical quadrature, direct methods for linear systems. Students may take only one course for credit from CMPSC (MATH) 451 and CMPSC (MATH) 455.
Effective: Spring 2008
Prerequisite:
MATH 220;MATH 230 orMATH 231 ; and 3 credits of programming
CMPSC 456
(MATH 456)
Introduction to Numerical Analysis II (3) Polynomials and piecewise polynomial approximation; matrix least square problems; numerical solution of eigenvalue problems; numerical solutions of ordinary differential equations.
Effective: Spring 2008
Prerequisite:
CMPSC 455
CMPSC 457
Computer Graphics Algorithms (3) Graphics systems/hardware, color models, transformations, projections, clipping, hidden line/surface removal, aliasing, parametric curves/surfaces, 3D modeling animation.
Effective: Fall 2010
Prerequisite:
CMPSC 122;MATH 220
CMPSC 458
Fundamentals of Computer Graphics (3) Fundamentals of computer graphics: input/output devices, transformation, projection, clipping, hidden line/surface elimination.
Effective: Spring 2008
Prerequisite:
CMPSC 311;MATH 220;MATH 230 orMATH 231
CMPSC 459
Scientific Visualization (3) Visualization techniques for data analysis and presentation. Applying visualization and perceptual theory. Using extending platform independent visualization software.
Effective: Spring 2008
Prerequisite:
CMPSC 122
CMPSC 460
Principles of Programming Languages (3) Design and implementation of high level programming languages and survey of language paradigms including imperative, functional, and object-oriented programming.
Effective: Fall 2010 Ending: Fall 2013
Prerequisite:
CMPSC 312;CMPSC 462;CMPSC 469
CMPSC 460
Principles of Programming Languages (3) Design and implementation of high level programming languages and survey of language paradigms including imperative, functional, and object-oriented programming.
Effective: Spring 2014 Future: Spring 2014
Prerequisite:
CMPSC 312;CMPSC 462
Concurrent:
CMPSC 469
CMPSC 461
Programming Language Concepts (3) Fundamental concepts of programming language design, specifications, and implementation; programming language paradigms and features; program verification.
Effective: Spring 2008
Prerequisite:
CMPSC 221;CMPSC 360
CMPSC 462
Data Structures (3) In-depth theoretical study of data structures such as balanced trees, hash tables, priority queues, B-trees, binomial heaps, and Fibonacci heaps.
Effective: Fall 2010 Ending: Fall 2013
Prerequisite:
CMPSC 360
Concurrent:
MATH 315
CMPSC 462
Data Structures (3) In-depth theoretical study of data structures such as balanced trees, hash tables, priority queues, B-trees, binomial heaps, and Fibonacci heaps.
Effective: Spring 2014 Future: Spring 2014
Prerequisite:
CMPSC 360
CMPSC 463
Design and Analysis of Algorithms (3) Recurrences, algorithms design techniques, searching, sorting, selection, graph algorithms, NP-completeness, approximation algorithms, local optimization algorithms.
Effective: Fall 2010 Ending: Fall 2013
Prerequisite:
CMPSC 462
Concurrent:
MATH 414
or
STAT 301
CMPSC 463
Design and Analysis of Algorithms (3) Recurrences, algorithms design techniques, searching, sorting, selection, graph algorithms, NP-completeness, approximation algorithms, local optimization algorithms.
Effective: Spring 2014 Future: Spring 2014
Prerequisite:
MATH 318, STAT 318 orSTAT 301
Concurrent:
MATH 414
or
STAT 301
CMPSC 464
Introduction to the Theory of Computation (3) Computability/Complexity: finite automata, regular & context-free languages, Turing machines, Church-Turing Thesis, undecidability, reducibility, completeness, time/space complexity, P versus NP.
Effective: Fall 2009
Prerequisite:
CMPSC 465
CMPSC 465
Data Structures and Algorithms (3) Fundamental concepts of computer science: data structures, analysis of algorithms, recursion, trees, sets, graphs, sorting.
Effective: Fall 2012
Prerequisite:
CMPSC 122;CMPSC 360 orMATH 311W
CMPSC 467
(MATH 467)
Factorization and Primality Testing (3) Prime sieves, factoring, computer numeration systems, congruences, multiplicative functions, primitive roots, cryptography, quadratic residues. Students who have passed MATH 465 may not schedule this course.
Effective: Spring 2008
Prerequisite:
CMPSC 360 orMATH 311W
CMPSC 469
Formal Languages with Applications (3) Regular, context free, recursive, and recursively enumerable languages; associated machine models; applications.
Effective: Fall 2010 Ending: Fall 2013
Prerequisite:
CMPSC 360;MATH 315
CMPSC 469
Formal Languages with Applications (3) Regular, context free, recursive, and recursively enumerable languages; associated machine models; applications.
Effective: Spring 2014 Future: Spring 2014
Prerequisite:
CMPSC 360
CMPSC 470
Compiler Construction (3) Compiler design and implementation; scanning, parsing, semantic analysis, optimization (including static analysis), code generation, garbage collection, and error detection.
Effective: Fall 2010 Ending: Fall 2013
Prerequisite:
CMPSC 312;CMPSC 425;CMPSC 462;CMPSC 469
CMPSC 470
Compiler Construction (3) Compiler design and implementation; scanning, parsing, semantic analysis, optimization (including static analysis), code generation, garbage collection, and error detection.
Effective: Spring 2014 Future: Spring 2014
Prerequisite:
CMPSC 221, CMPSC 312, CMPSC 462, CMPSC 469
CMPSC 471
Introduction to Compiler Construction (3) Design and implementation of compilers; lexical analysis, parsing, semantic actions, optimization, and code generation.
Effective: Spring 2008
Prerequisite:
CMPSC 461
CMPSC 472
Operating System Concepts (3) Theoretical and practical issues of operating systems design and implementation, process management, concurrent programming, memory management, scheduling, I/O, and security.
Effective: Fall 2010
Prerequisite:
CMPSC 312;CMPSC 462
CMPSC 473
Operating Systems Design & Construction (3) Design and implementation of computer operating systems; management of various system resources: processes, memory, processors, files, input/output devices.
Effective: Spring 2008
Prerequisite:
CMPSC 311;CMPEN 331
CMPSC 474
Operating System & Systems Programming (3) Operating Systems overview and principles; processes and signals; concurrency and synchronization; memory and file management; client-server computing; scripts; systems-programming.
Effective: Spring 2008
Prerequisite:
CMPSC 122;CMPSC 312
CMPSC 475
Applications Programming (3) Development of software for devices including smart phones, tablets, handheld units, and other general purpose computing platforms.
Effective: Spring 2013
Prerequisite:
CMPSC 221 orCMPSC 425;CMPSC 311 orCMPSC 312;CMPSC 462 orCMPSC 465
CMPSC 479
Language Translation (3) Design and implementation of compilers, lexical analysis, syntax/semantic analysis, optimization, and code generation.
Effective: Spring 2008
Prerequisite:
CMPSC 465
CMPSC 483W
Software Design Methods (3) Applications of scientific knowledge and methods in the design and construction of computer software using engineering concepts.
Effective: Spring 2008
Prerequisite:
CMPSC 221;CMPSC 465;ENGL 202C
CMPSC 484
Computer Science Senior Project I (2) Computer science capstone project with documentation emphasis.
Effective: Spring 2008
Prerequisite:
ENGL 202C;CMPSC 221;CMPSC 465
CMPSC 485W
Computer Science Senior Project II (3) Computer science capstone project with documentation emphasis.
Effective: Spring 2008
Prerequisite:
CMPSC 484
CMPSC 487W
Software Engineering and Design (3) Software development process, life cycle; requirements analysis, specification, design, prototyping, testing, project management, and documentation.
Effective: Fall 2010 Ending: Fall 2013
Prerequisite:
ENGL 202C, CMPSC 425, CMPSC 462
CMPSC 487W
Software Engineering and Design (3) Software development process, life cycle; requirements analysis, specification, design, prototyping, testing, project management, and documentation.
Effective: Spring 2014 Future: Spring 2014
Prerequisite:
ENGL 202C, CMPSC 221, CMPSC 462
CMPSC 488
Computer Science Project (3) Project design and implementation with an emphasis on team work, documentation, and the employment and integration of computer science concepts.
Effective: Summer 2013
Prerequisite:
CMPSC 487W
CMPSC 494H
Senior Honors Thesis (1-6) Supervised Honors thesis research in computer science and engineering.
Effective: Spring 2008
Prerequisite:
approval of a thesis adviser in the department
CMPSC 495
Internship (1-18) Supervised off-campus, nongroup instruction including field experience, practica, or internships. Written and oral critique of activity required.
Effective: Spring 2008
Prerequisite:
prior approval of proposed assignment by instructor
CMPSC 496
Independent Studies (1-18) Creative projects, including research and design, which are supervised on an individual basis and which fall outside the scope of formal courses.
Effective: Spring 2008
CMPSC 497
Special Topics (1-9) Formal courses given infrequently to explore, in depth, a comparatively narrow subject which may be topical or of special interest.
Effective: Spring 2008
CMPSC 497A
Natural Language Processing (3) English language processing, information extraction, word sense disambiguation, spelling correction, grammar checking, pattern matching, speech recognition.
Effective: Fall 2013 Ending: Fall 2013 Future: Fall 2013
Prerequisite:
CMPSC 462
CMPSC 497A
Software Testing (3) Software testing principles/practices, functional testing, structural testing, unit testing, mutation testing, system testing, test Automation.
Effective: Spring 2014 Ending: Spring 2014 Future: Spring 2014
Prerequisite:
CMPSC 462
CMPSC 497B
HTML5 and Web Game Programming (3) Explores HTML5 programming techniques, including Canvas Element, Javascript integration, game engines using HTML5/Javascript, and integration with various social media API's.
Effective: Fall 2013 Ending: Fall 2013 Future: Fall 2013
CMPSC 498
Special Topics (1-9) Formal courses given infrequently to explore, in depth, a comparatively narrow subject that may be topical or of special interest.
Effective: Spring 2008
CMPSC 498F
Introduction to Bioinformatics (3) This course will introduce an undergraduate audience to the biological problems and computational solutions that motivate current applications in computational biology. Topics will be organized around three main themes: 1) Genomes, including assembly and annotation of genomic sequences; 2) Evolution, including sequence comparison, reconstructing evolutionary relationships, and detecting disease associated traits; and 3) Function, including analysis of funcational genomics experimental assays and characterizing regulatory relationships between genes. By the end of the course, students will have gained a broad overview of the types of biological problems which bioinformatics methods aim to solve, will know which algorithmic and machine-learning approaches are suitable for solving each problem, and will have a detailed understanding of how each computational method works.
Effective: Fall 2013 Ending: Fall 2013 Future: Fall 2013
CMPSC 499
(IL)
Foreign Studies (1-12) Courses offered in foreign countries by individual or group instruction.
Effective: Summer 2005
Last Import from UCM: May 18, 2013 3:00 AM