The University of New Mexico
CS: Computer Science Catalog Description

  Three Year Fall Semester Average
Course Catalog Description Enrollment Section
Capacity
Credits
CS101 An Introductory course covering the computer terminology, applications, and characteristics that a student would encounter in a CS degree. Students will learn introductory UNIX and how to run existing programs. 2.33 7.67 9.33
CS102 For the computer novice. Students will be shown the UNIX commands needed in a computer-programming course. UNIX topics: electronic mail, file manipulation and creation, line/screen editors, and program compilation. CR/NC 8.33 12.67 8.33
CS103 Focuses on shell scripts and shell programming, processes and job control; user tools; UNIX networking concepts; simple system administration; introduction to Perl scripting. Prerequisites: Either CS 102LT or CS 101LT, and CS 151L. CR/NC 5.67 12.00 5.67
CS110 Intended to teach the beginning syntax of C++ to students who already have programming experience with another structured programming language such as FORTRAN, PASCAL, or C. Covers simple and enumerated types, I/O, looping, branching, functions and parameter passing, single and multi-dimensional arrays, structures. CLASSES and OOP will not be covered. Prerequisite: previous programming experience in FORTRAN, PASCAL, or C; UNIX familiarity CR/NC
CS120  
CS130 Presents a wide variety of problem solving strategies to build skill in problem solving. Emphasizes creative/lateral thinking techniques and good communication skills. Uses both technical and non-technical problems to practice skill development. Prerequisite: CS 101.
CS131L An introduction to Unix -based computing resources. Topics include: elements of a computer system, elementary Unix commands and file system structure, e-mail, a visual editor, browsing the World Wide Web and construction of simple Web pages using HTML. 25.00 96.00 50.00
CS132L Continuation of CS 131L. Prerequisite: 131L. 13.67 96.00 13.67
CS148 Beginning syntax of C++ and introductory programming techniques. Covers simple and enumerated types, I/O, looping, branching, functions, single/multi-dimensional arrays, and structures. General progamming concepts: software development life cycle, top-down design, documentation, testing, debugging. Prerequisite: MATH 150 and (CS 101 or 102).
CS149 A student who passes this examination will have demonstrated mastry of the topics covered in CS 150L Computing for Business Students at a level sufficient to meet the requirements of any class to which CS 150L is prerequisite. The examination takes place in a computer lab and includes the use of a word processor, spreadsheet, and the Internet. Offered on a Credit/No Credit basis only. Prerequisite: MATH 120 or MATH 121 or MATH 123 or MATH 150 or MATH 162 or MATH 163 or MATH 180 or MATH 181. 14.33 41.67 0.00
CS150L Students will use personal computers in campus laboratories to learn use of a word processor, a spreadsheet and a database management program. The course will also cover access to the World Wide Web and other topics of current importance to business students. Course cannot apply to major or minor in Computer Science. Prerequisite: MATH 120 or MATH 121 or MATH 123 or MATH 150 or MATH 162 or MATH 163 or MATH 180 or MATH 181. 424.33 588.00 1,273.00
CS151L An introduction to the art of computing. Not intended for Computer Science majors or minors. The objective of the course is an understanding of the relationship between computing and problem solving. 179.00 198.00 537.00
CS152L An introduction to the art of computing. The course objectives are understanding the relationships between computation, problem solving, and programming using high-level languages. 91.00 158.67 273.00
CS160 This course introduces writing object-oriented programs with the JAVA language. It introduces JAVA applications and the writing of JAVA applets. Prerequisite: CT 102.
CS170 Introduces how to program in a Windows environment using Visual Basic. Fundamental programming techniques will be discussed. Students will learn procedural programming, how to develop a graphical user interface in Windows, and how to work with events and objects. Prerequisite: CT 102. 9.33 20.00 28.00
CS180 This introductory course introduces PERL, practical extraction report language. It will focus on the following topics: Scalar data, Control structures, Basic I/O, Directory Access, File and Directory Manipulation, Process Management, System Database Access, and CGI Scripting.
CS184 An introduction to Unix services, tools, organization and administration. System management: files, processes, user accounts, configuration, file system organization, networking and security. Programming tools: sh, sed, awk, perl and C. Network services: NFS, NIS, DNS, sendmail, ftp.
CS193 Titles will vary. 4.33 9.00 13.00
CS220 An overview of the system development lifecycle. Emphasis on current system documentation through the use of classical, structured, and object- oriented tools/techniques for describing program specifications. Prerequisite: CS 151L or CS 152L or CS 160 or a full semester of programming. 2.00 6.67 6.00
CS241L Data representation, storage and manipulation. Covers the memory organization of data storage and its relation to computation and efficiency. Topics include: linked vs. contiguous implementations, memory management, the use of indices and pointers, and an introduction to issues raised by the memory hierarchy. Programming assignments in C provide practice with programming styles that yield efficient code and computational experiments investigate the effect of storage design choices on the running time of programs. Prerequisite: 151L or 152L or 259L. 38.67 52.00 116.00
CS250  
CS251L An introduction to the methods underlying modern program development. Specific topics will include object-oriented design and the development of graphical user interfaces. Programming assignments will emphasize the use of objects implemented in standard libraries. Prerequisite: 151L or 152L. Three lectures, 1 hr. recitation. 52.00 80.00 156.00
CS258  
CS259L An accelerated course covering the material of 151L and 251L in one semester. Topics include elementary data structures and their implementation, recursive procedures, data abstraction and encapsulation, and program organization and verification. Programs will be written in JAVA . Credit not allowed for both 259L and 151L/251L.
CS260 An introduction to the methodologies and tools used in a disciplined life-cycle approach to the development of large software systems. Design goals and principles will be emphasized and current methodologies such as data flow, structured design, and object-oriented design will be explored. Team programming. Prerequisites: CS 220LT and CS 251L.
CS261 Introduction to the formal mathematical concepts of computer science for the beginning student. Topics include elementary logic, induction, algorithmic processes, graph theory and models of computation. 42.67 56.67 128.00
CS293 Overview of philosophical ethics, privacy and databases, intellectual property, computer security, computer crime, safety and reliability, professional responsibility and codes, electronic communities and the Internet, and social impact of computers. Students make oral presentations and produce written reports. 23.67 25.00 23.67
CS341L Survey of various levels of computer architecture and design: microprogramming and processor architecture, advanced assembly language programming, operating system concepts and input/output via the operating system. Prerequisites: 241L and ECE 238L. 19.33 20.00 58.00
CS351L A projects course with emphasis on object-oriented analysis, design and programming. Also discussed are programming language issues, programming tools and other computer science concepts as needed to do the projects (e.g., discrete-event simulation, parsing). Prerequisites: 251L or 259L. Three lectures, 1 hr. recitation. 20.67 41.67 74.33
CS357L Course focuses on one of the declarative programming paradigms: functional, logic, or constraint programming. Specialized techniques are introduced with a view towards general principles. Selected advanced topics in programming language design and implementation are covered. Prerequisite: 251L. 30.67 27.33 92.00
CS361L An introduction to data structures and algorithms and the mathematics needed to analyze their time and space complexity. Topics include asymptotic notation, recurrence relations and their solution, sorting, hash tables, basic priority queues, search trees (including at least one balanced structure) and basic graph representation and search. Students complete a term project that includes an experimental assessment of competing data structures. Prerequisites: 261 and 241L.
CS362 A continuation of 361L with an emphasis on design of algorithms. Topics include: amortized analysis and self-adjusting data structures for trees and priority queues; union-find; minimum spanning tree, shortest path and other graph algorithms; elementary computational geometry; greedy and divide-and-conquer paradigms. Prerequisite: 361L. 36.33 67.67 109.00
CS365 Symbolic computation applied to scientific problem solving, modeling, simulation and analysis. Prerequisite: 151L or 152L.
CS375 (Also offered as MATH 375.) An introductory course covering such topics as solution of linear and nonlinear equations; interpolation and approximation of functions, including splines; techniques for approximate differentiation and integration; solution of differential equations; familiarization with existing software. 16.33 26.00 49.00
CS390 This course is intended to provide students in other disciplines with an opportunity to study aspects of modern computer science, tailored to their own field of study. Restriction: permission of instructor. 5.33 12.00 16.00
CS390D  
CS394 (Also offered as ARTS 394 and MA 394.) Introduction to story boarding, modeling, rendering, animation and dynamics. Class uses high-level commercial animation software. Course emphasizes both the development of technical skills and the aesthetic aspects of computer imagery. Not allowed for graduate credit for computer science majors, nor as a technical elective for undergraduate computer science majors. 10.00 11.00 30.00
CS401 Mathematical reasoning for computer science. Topics include propositional and first-order logic, group theory, introduction to formal languages and formal models of computation. Restriction: undergraduate. Offered on a CR/NC basis only.
CS412 (Also offered as ECE 412) Introduction to technical aspects of raster algorithms in computer graphics. Foundational concepts of 2-D and 3-D graphics as relate to real-time and offline techniques. Students develop a video game as a final project to demonstrate the algorithms learned in class. Pre-requisite: 361L or ECE 331.
CS413 Topics include ray-geometry intersections, viewing, lenses, local/global illumination, procedural textures/models, spline curves and surfaces, statistical integration for realistic image synthesis. Students will write a raytracing renderer from scratch, exploring high performance implementations and realistic rendering. Prerequisite: 361L or ECE 331 4.33 16.67 13.00
CS422 Introduction to fundamentals of digital image processing. Specific topics include grey level histograms, geometric/grey level transformations, linear systems theory, Fourier transforms, frequency domain filtering, wavelet transforms, image compression, edge detection, color vision, and binary image morphology. Prerequisites: 357L and (MATH 314 or MATH 321). 1.00 8.00 3.00
CS423 Introduces topics in complex adaptive systems, including: definitions of complexity, fractals, dynamical systems and chaos, cellular automata, artificial life, game theory, neural networks, genetic algorithms and network models. Regular programming projects are required. Prerequisites: 251 and MATH 163. 2.67 10.00 8.00
CS427 Survey of artificial intelligence exclusive of pattern recognition. Heuristic search techniques, game playing, mechanical theorem proving, additional topics selected by the instructor. Prerequisite: 351L. 12.00 45.00 36.00
CS429 Introduction to principles and practice of systems that improve performance through experience. Topics include statistical learning framework, supervised and unsupervised learning. Bayesian analysis, time series analysis, reinforcement learning, performance evaluation and empirical methodology; design tradeoffs. Prerequisite: 362 and STAT 345 and (MATH 314 or 321). 1.67 2.33 5.00
CS438 (Also offered as PSY 467.) Concepts of intelligence from psychology and computer science. Areas considered include production systems, expert systems, computer assisted instruction, models for semantics and human cognitive processes from pattern recognition to output systems. Includes a project.
CS441 A study of the design concepts of major importance in modern computers. Topics will include microprogramming, language-directed computers, parallel processors and pipeline computers. Emphasis will be placed on the relationship of architecture to programming issues. Prerequisite: 341L.
CS442 (Also offered as ECE 432.) Machine taxonomy and introduction to parallel programming. Performance issues, speed-up and efficiency. Interconnection networks and embeddings. Parallel programming issues and models: control parallel, data parallel and data flow. Programming assignments on massively parallel machines. Prerequisites: (341L or ECE 337) and (351L or ECE 331). 4.00 5.00 12.00
CS452 (Also offered as MGMT 532.) Study of a variety of simulation methods as an aid to managerial decisions involving both micro- and macro-systems. Problems and projects require active computer programming of simulations.
CS454 Syntax analysis and semantic processing for a block-structured language. Lexical analysis, symbol tables, run-time management. Students will write a compiler.
CS460 Software engineering principles will be discussed and applied to a large team developed project. Other topics relevant to the production of software will also be covered, including ethics, legalities, risks, copyrights and management issues. 27.67 30.00 83.00
CS464 Introduction to database management systems. Emphasis is on the relational data model. Topics covered include query languages, relational design theory, file structures and query optimization. Students will implement a database application using a nonprocedural query language interfaced with a host programming language.
CS471 (Also offered as MATH 471.) Introduction to scientific computing fundamentals, exposure to high performance programming language and scientific computing tools, case studies of scientific problem solving techniques.
CS473 (Also offered as NSMS 573) A survey of complex systems at the interface between physics and computer science, including phase transition, power laws, social networks, NP-completeness, and Monte Carlo methods.
CS481 (Also offered as ECE *437.) Fundamental principles of modern operating systems design, with emphasis on concurrency and resource management. Topics include processes, interprocess communication, semaphores, monitors, message passing, input/output device, deadlocks memory management, files system design. Prerequisite: 341L or (ECE 330 and ECE 337). 19.00 51.00 57.00
CS484 An introduction to Unix services, tools, organization and administration. System management: files, processes, user accounts, configuration, file system organization, networking and security. Programming tools: sh, sed, awk, perl and C. Network services: NFS, NIS, DNS, sendmail, ftp.
CS485 (Also offered as ECE 440.) Theoretical and practical study of computer networks, including network structures and architectures. Principles of digital communications systems. Network topologies, protocols and services. TCP/IP protocol suite. Point-to-point networks; broadcast networks; local area networks; routing, error and flow control techniques. 6.67 18.33 20.00
CS491 Undergraduate seminars in special topics in computer science. 29.67 115.67 89.00
CS491A  
CS491B  
CS491D  
CS491E  
CS491F  
CS491G  
CS491H  
CS491I  
CS492 Topics in computers and computing as related to manufacturing. Topics covered will include networks and distributed systems, software for real-time systems and database management. Term project required. Course cannot apply to major, minor or master s degree in Computer Science.
CS494 (Also offered as MA 494 and ARTS 494./594.) A continuation of 394. Students are expected to research and make presentations on advanced topics in CGI. Significant term project required. Course may be repeated for credit, up to 6 credit hours. Not allowed for graduate credit for computer science majors, nor as a technical elective for undergraduate computer science majors. 4.33 6.00 13.00
CS499 Guided study, under the supervision of a faculty member, of selected topics not covered in regular courses. At most 3 hours may be applied toward the CS hour requirement.Note: All prerequisites for graduate level courses require a grade of B or better. 3.33 400.00 7.67
CS500 Covers basic topics in automata, computability and complexity theory, including: models of computation (finite automata, Turing machines and RAMs); regular sets and expressions; recursive, r.e., and non-r.e. sets and their basic closure properties; complexity classes; determinism vs. non-determinism with and without resource bounds; reductions and completeness; practice with NP- and P-completeness proofs; and the complexity of optimization and approximation problems. Prerequisite: 401. 29.33 82.67 88.00
CS504 Efficient problem solving techniques. Connection, search and tour problems. Branch-and-bound and backtracking. Dynamic programming. Developing heuristics. Prerequisite: 561.
CS506 Development of algorithms and data structures for the manipulation of discrete geometric objects in two- and three-dimensional space. Typical problems include intersection and union of polyhedra, convex hulls, triangulation, point location, neighborhood structures and path computations. Prerequisite: 561.
CS509 (Also offered as ECE 509.) Design and analysis of parallel algorithms using the PRAM model, with emphasis on graph algorithms, searching and sorting and linear algebra applications. Embedding into hypercubic and related networks. Introduction to parallel complexity theory. Prerequisites: 361 or ECE 537.
CS510 Introduction to probability theory, moments and deviation, tail inequalities, probabilistic method, Markov Chains and Random Walks, dynamic graph algorithms, data stream algorithms, and parallel and distributed algorithms. Prerequisites: 500 and 530 and 561. 2.67 6.67 8.00
CS511 Study of algorithms which have been successful in real world. New algorithmic tools, ways to create approximation algorithms for NP-Hard problems, exploit the power of randomness, and create tractable abstract problems from messy real-world problems. Prerequisites: 530 and 561.
CS512 Course covers image synthesis techniques from perspective of high-end scanline rendering including physically-based rendering algorithms. Topics: radiometry, stachastic ray tracing, variance reduction, photon mapping, reflection models, participating media, advanced algorithms for light transport.
CS513 Course covers advanced algorithms in real-time rendering and graphics hardware, bringing students up to speed with cutting edge real-time graphics. Topics: advanced GPU algorithms for graphics and non-graphics applicatons. Term project required.
CS515 Introduction to scientific and data visualization techniques. Topics: data manipulation, feature extraction, visual display, peer critique of project design, data formats and sampling, geometric extraction, volume visualization, flow visualization, abstract data visualization, user interaction techniques.
CS522 Introduction to fundamentals of digital image processing. Specific topics include grey level histograms, geometric/grey level transformations, linear systems theory, Fourier transforms, frequency domain filtering, wavelet transforms, image compression, edge detection, color vision, and binary image morphology. Prerequisites: MATH 314 or MATH 321. 2.33 8.00 7.00
CS527 Survey of artificial intelligence exclusive of pattern recognition. Heuristic search techniques, game playing, mechanical theorem proving, additional topics selected by the instructor. Prerequisite: 351L. 23.33 51.33 70.00
CS528 Continues the topics presented in 427/527, including writing an expert system shell in LISP; designing and building an object-oriented interpreter; creating a hybrid environment by attaching rules to objects. Representation issues to include: semantic nets, frames, objects, conceptual graphs and others. Assignments include writing a recursive descent semantic net parser. Prerequisite: 427 or 527. 2.33 6.67 7.00
CS529 Introduction to principles and practice of systems that improve performance through experience. Topics include statistical learning framework, supervised and unsupervised learning. Bayesian analysis, time series analysis, reinforcement learning, performance evaluation and empirical methodology; design tradeoffs. Prerequisite: 362 or 530 or 561. 7.33 7.67 22.00
CS530 Introduction to applied mathematics for computer scientists. Specific topics include discrete and continuous random variables (including transformation and sampling), information theory, Huffman coding, Markov processes, linear systems theory, Fourier transforms, principal component analysis, and wavelet transforms. Prerequisite: STAT 345.
CS531 (Also offered as ECE 517.) Decision functions and dichotomization; prototype classification and clustering; statistical classification and Bayes theory; trainable deterministic and statistical classifiers. Feature transformations and selection. Introduction to sequential, hierarchical and syntactic methods. Prerequisites: STAT 345 or ECE 340. 5.33 18.33 16.00
CS532 (Also offered as ECE 516.) Theory and practice of feature extraction, including edge, texture and shape measures. Picture segmentation; relaxation. Data structures for picture description. Matching and searching as models of association and knowledge learning. Formal models of picture languages. Prerequisites: STAT 345 or ECE 340, CS 361L or ECE 331. 7.67 15.00 23.00
CS534 Realism in computer graphics: hidden surface removal, rendering, surface modeling, ray tracing, radiosity. Advanced modeling techniques: surface patches, solid modeling, scan conversion. Scientific visualization. Architectures for computer graphics. Prerequisite: 433. 2.67 5.00 8.00
CS537 Both theoretical foundations of and practical issues in automated reasoning will be covered. Students will read selected papers for class discussion and will be required to do a term project. Prerequisites: 561.
CS547 (Also offered as ECE 547.) A study of neuron models, basic neural nets and parallel distributed processing. Prerequisite: MATH 314 or 321.
CS550 Current trends in design and philosophy of languages and systems. Data abstraction, data flow languages, alternative control structures, environments, correctness, software tools. Prerequisite: 451. 8.00 13.33 24.00
CS551 Guided study, under the supervision of a faculty member, of selected topics not covered in regular courses. Restriction: permission of instructor. 19.33 450.00 51.33
CS554 Syntax analysis and semantic processing for a block-structured language. Lexical analysis, symbol tables, run-time management. Students will write a compiler. Prerequisites: 341L, 351L.
CS555 Aspects needed to write production quality compilers. Optimization, error recovery, parse table compression, semantic processing of complex data structures, type checking, run-time support, code generation, compiler-writing systems. Prerequisite: 454/554. 5.33 6.33 16.00
CS561 Study of data structures and algorithms and mathematics needed to analyze their time and space complexity. Topics include: amortized analysis and self-adjusting data structures for trees and priority queues, graphing algorithms, greedy and divide-and-conquer paradigms.
CS564 Introduction to database management systems. Emphasis is on the relational data model. Topics covered include query languages, relational design theory, file structures and query optimization. Students will implement a database application using a nonprocedural query language interfaced with a host programming language. Prerequisite: 561.
CS565 A continuation of 464/564 with emphasis on query optimization, leading-edge data models, transaction management and distributed databases. Additional topics determined by student interests. Prerequisite: 564.
CS569 Goal of course is to promote analytical thinking through introduction of new application domains. Topics: theory of graph algorithms, convex programming, applied optimization techniques, application of radiological physics, basic radiography, radiation therapy planning, medical imaging.
CS571 (Also offered as NSMS, PHYC 571.) This course explores the concepts and mathematical techniques underlying quantum computation. Topics include quantum entanglement, quantum cryptography, teleportation, models for quantum computation, quantum algorithms, quantum error correction, and fault-tolerant quantum computation. 6.33 6.67 19.00
CS573 (Also offered as NSMS 573) A survey of complex systems at the interface between physics and computer science, including phase transition, power laws, social networks, NP-completeness, and Monte Carlo methods.
CS575 (Also offered as MATH 504.) Direct and iterative methods of the solution of linear systems of equations and least squares problems. Error analysis and numerical stability. The eigenvalue problem. Descent methods for function minimization, time permitting. Prerequisites: MATH 464 or 514. {Spring} 0.33 16.67 1.00
CS576 (Also offered as MATH 505.) Solution of nonlinear problems and minimization. Numerical approximation of functions. Interpolation by polynomials, splines and trigonometric functions. Numerical integration and solution of ordinary differential equations. An introduction to finite difference and finite element methods, time permitting. Prerequisites: MATH 316 or MATH 401. {Fall}
CS580 A comparative study of the techniques used to specify software systems. The course will emphasize formal techniques and will cover the specification of sequential and concurrent systems. Although no programming will be required, students will be required to write specifications for several small software systems. Prerequisite: 460. 6.33 10.00 19.00
CS581 Introduces the components of software development life cycle and role of software test process, test planning and strategy, static testing, tracking bugs, dynamic testing, use of automated testing as well as other testing concepts. 16.67 26.67 50.00
CS583 Introduction to software test process. Topics include: testing perspectives, object-oriented concepts, UML diagrams, development/testing processes, test design, test case development, verifying tests, test case automation, test patterns, and understanding basic concepts of class hierarchies.
CS585 A theoretical and practical study of computer networks, including network structures and architectures; protocols and protocol hierarchies; error handling; routing; reliability; point-to-point networks; broadcast networks; local area networks; efficiency and throughput; communications technologies; case studies.
CS587 Theory of design of operating systems. Modeling, simulation, synchronization, concurrency, process hierarchies, networks and distributed systems.
CS590 This course is intended to provide students in other disciplines with an opportunity to study aspects of modern computer science, tailored to their own field of study. May be repeated for credit, no limit. Restriction: permission of instructor.
CS591 Graduate seminars in special topics in computer science. Restriction: permission of instructor. 61.33 157.33 184.00
CS591A  
CS591B  
CS591C  
CS591D  
CS591E  
CS591F  
CS591G  
CS591H  
CS591I  
CS592 Required of all graduate students. May be repeated, with at most 2 credits towards the M.S. requirements and at most 2 further credits towards the Ph.D. requirements. Students will write a short essay on the topic of one or more of the colloquia offered that semester. Offered on a CR/NC basis only. 34.00 76.00 34.00
CS599 Offered on a CR/NC basis only. 9.67 450.00 26.00
CS609 (Also offered as ECE 609.) Design and analysis of advanced parallel algorithms, parallel complexity theory, ideal and realistic models of parallel computation, and experimental parallel algorithmics; emphasis on combinatorial problems. Prerequisites: 509 or ECE 509.
CS650 Restriction: permission of instructor. 28.00 416.67 84.00
CS691 Restriction: permission of instructor. 33.00 211.67 98.33
CS691A  
CS691B  
CS691C  
CS699 Offered on a CR/NC basis only. 25.33 416.67 184.00

"CS: Computer Science "Three Fall Subject Average - Enroll: 1,557.67 Capacity: 4,882.67 Credits: 4,544.33'