Skip navigation.
New Mexico State University
Undergraduate Catalog
2012-2013

C S-COMPUTER SCIENCE

C S 110. Computer Literacy - 3 cr.
Evolution and application of computers; economic and social implications; introduction to programming on microcomputers.
C S 117. Introduction to Computer Animation - 3 cr.
Introductory course for learning to program with computer animation as well as learning basic concepts in computer science. Students create interactive animation projects such as computer games and learn to use software packages for creating animations in small virtual worlds using 3D models. Recommended for students considering a minor/major in computer science or simply interested in beginning computer animation or programming.
C S 157. Topics in Software Programming and Applications - 3 cr. (2+2P)
Current topics in computer programming and software applications. Topic announced in the Schedule of Classes. May be repeated if subtitle is different.
C S 167. C Programming - 3 cr. (2+2P)
Programming in the C language. Prerequisite: MATH 121G.
C S 171G. Introduction to Computer Sciences - 4 cr. (3+2P)
Computers are now used widely in all area of modern life. This course provides understanding of the theoretical and practical foundations for how computers work, and provides practical application and programming experience in using computers to solve problems efficiently and effectively. The course covers broad aspects of the hardware, software, and mathematical basis of computers. Weekly labs stress using computers to investigate and report on data-intensive scientific problems. Practical experience in major software applications includes an introduction to programming, word processing, spreadsheets, databases, presentations, and Internet applications. Prerequisite(s): MATH 120.
C S 172. Computer Science I - 4 cr. (3+2P)
Computational problem solving; problem analysis; implementation of algorithms. Recursive structures and algorithms. Prerequisite(s): MATH 190G.
C S 177. C++ Programming - 3 cr. (2+2P)
Introduction to object-oriented programming in the C++ language. Prerequisite: C S 167 or previous programming experience in C or consent of instructor.
C S 187. Java Programming - 3 cr. (2+2P)
Programming in the Java language. Prerequisite: MATH 121G. Same as BCS 122.
C S 209. Special Topics. - 1-3 cr.
May be repeated for a maximum of 12 credits.
C S 271. Object Oriented Programming - 4 cr. (3+2P)
Introduction to problem analysis and problem solving in the object-oriented paradigm. Practical introduction to implementing solutions in the C++ language. Hands-on experience with useful development tools. Prerequisites: At least a C in C S 172 or E E 161.
C S 272. Introduction to Data Structures - 4 cr. (3+2P)
Design, implementation, use of fundamental abstract data types and their algorithms: lists, stacks, queues, deques, trees; imperative and declarative programming. Internal sorting; time and space efficiency of algorithms. Prerequisites: at least a C in C S 172.
C S 273. Machine Programming and Organization - 4 cr. (3+2P)
Computer structure, instruction execution, addressing techniques; programming in machine and assembly languages. Prerequisite: at least a C in C S 172 or E E 161.
C S 278. Discrete Mathematics for Computer Science - 4 cr. (3+2P)
Logical connectives, sets, functions, relations, graphics, trees, proofs, induction, and application to computer science. Prerequisite: at least C in C S 172. Same as MATH 278.
C S 310. Advanced Computer and Internet Literacy - 3 cr. (2+2P)
Advanced computer understanding and application use, including data sharing, hardware features, performance checking, networking, scripting, and automation. Advanced Internet content development, including graphics, XML, Flash, scripting, and applets. Prerequisites: Either C S 110, C S 171G, HON 111, BCIS 110, AG E 250G, I E 151, or E T 120.
C S 370. Compilers and Automata Theory - 4 cr. (3+2P)
Methods, principles, and tools for programming language processor design; basics of formal language theory (finite automata, regular expressions, context-free grammars); development of compiler components. Prerequisites: at least a C in C S 271, C S 272, C S 273, and C S 278.
C S 371. Software Development - 4 cr. (3+2P)
Software specification, design, testing, maintenance, documentation; informal proof methods; team implementation of a large project. Prerequisite: at least a C in C S 271 and C S 272.
C S 372. Data Structures and Algorithms - 4 cr. (3+2P)
Introduction to efficient data structure and algorithm design. Order notation and asymptotic run-time of algorithms. Recurrence relations and solutions. Abstract data type dynamic set and red-black trees. Classic algorithm design paradigms: divide-and-conquer, dynamic programming, greedy algorithms. Prerequisites: at least a C in CS 272 and C S 278.
C S 409. Independent Study - 1-3 cr.
Faculty supervised investigation, to culminate in a written report. Prerequisite: written agreement with faculty supervisor. May be repeated to a maximum of 6 credits.
C S 420. Analysis of Algorithms - 3 cr.
Time and space complexity of algorithms; techniques for design and analysis of correct and efficient algorithms; dynamic programming, greedy methods, amortized analysis; classic graph algorithms - depth and breadth first search, minimum spanning trees, and shortest paths. Prerequisite: C or better in C S 372.
C S 448. Senior Project - 4 cr.
Capstone course in which C S majors work in teams and apply computer science skills to complete a large project. Prerequisites: senior standing and consent of instructor.
C S 449. Senior Thesis - 4 cr.
Capstone course in which C S majors apply computer science skills to complete a research project, culminating in a written thesis report. Prerequisite: consent of thesis advisor.
C S 450. C Programming - 3 cr. (2+3P)
Programming in the C language. More advanced than C S 167. Recommended for nonmajors only. Prerequisite(s): Graduate standing. Restricted to: Main campus only.
C S 451. C++ Programming - 3 cr.
Programming in the C language. More advanced than C S 177. Recommended for nonmajors only. Prerequisite(s): Graduate standing.
C S 452. Java Programming - 3 cr. (2+2P)
Programming in the Java language. More advanced than C S 187. For nonmajors only. Prerequisite(s): Graduate standing. Restricted to: Main campus only.
C S 457. Topics in Software Programming and Applications - 3 cr. (2+2P)
Current topics in computer programming and software applications. Topic announced in the Schedule of Classes. More advanced than CS 157. recommended for non-majors only. May be repeated if subtitle is different. Prerequisite(s): Graduate standing.
C S 460. Computer Science I Transition - 3 cr.
Computational problem solving; problem analysis; implementation of algorithms. Recursive structures and algorithms. For CS graduate students only; cannot be used in a student┐s program of study. Taught with C S 172. Consent of instructor required.
C S 462. Object Oriented Programming Transition - 3 cr.
Introduction to problem analysis and problem solving in the object-oriented paradigm. Practical introduction to implementing solutions in the C++ language. Hands-on experience with useful development tools. For C S graduate students only; cannot be used in a student┐s program of study. Consent of instructor required. Prerequisite(s): At least a C in CS 172 or CS 460 or consent of instructor.
C S 463. Introduction to Data Structures Transition - 3 cr.
Design, implementation, use of fundamental abstract data types and their algorithms: lists, stacks, queues, deques, trees; imperative and declarative programming. Internal sorting; time and space efficiency of algorithms.For C S graduate students only; cannot be used in a student's program of study. Consent of instructor required. Prerequisite(s): At least a C in CS 172 or CS 460 or consent of instructor.
C S 464. Machine Programming and Organization Transition - 3 cr.
Computer structure, instruction execution, addressing techniques; programming in machine and assembly languages. For C S graduate students only; cannot be used in a student's program of study. Consent of instructor required. Prerequisite(s): At least a C in C S 172 or C S 460 or consent of instructor.
C S 465. Discrete Math for Computer Science Transition - 3 cr.
Logical connectives, sets, functions, relations, graphics, trees, proofs, induction, and application to computer science. For C S graduate students only; cannot be used in a student's program of study. Consent of instructor required. Prerequisite(s): At least a C in C S 172 or C S 460 or consent of instructor.
C S 466. Compilers and Automata Transition - 3 cr.
Methods, principles, and tools for programming language processor design; basics of formal language theory (finite automata, regular expressions, context-free grammars); development of compiler components. For C S graduate students only; cannot be used in a student's program of study. Consent of instructor required. Prerequisite(s): At least a C in C S 271 or C S 462, in C S 272 or C S 463, in C S 273 or C S 464, in C S 278 or C S 465, or consent of instructor.
C S 468. Software Development Transition - 3 cr.
Software specification, design, testing, maintenance, documentation; informal proof methods; team implementation of a large project. For C S graduate students only; cannot be used in a student's program of study. Consent of instructor required. Prerequisite(s): At least a C in C S 271 or C S 462, in C S 272 or C S 463, or consent of instructor.
C S 469. Data Structure and Algorithms Transition - 3 cr.
Introduction to efficient data structure and algorithm design. Order notation and asymptotic run-time of algorithms. Recurrence relations and solutions. Abstract data type dynamic set and red-black trees. Classic algorithm design paradigms: divide-and-conquer, dynamic programming, greedy algorithms. For C S graduate students only; cannot be used in a student's program of study. Consent of instructor required. Prerequisite(s): At least a C in C S 272 or C S 463, in C S 278 or C S 465, or consent of instructor.
C S 470. Functional Programming - 3 cr.
Applicative programming techniques: higher order functions, infinite data structures, lambda calculus, universal functions. Survey of functional languages including Miranda and ML. Not for C S graduate students. Prerequisite(s): At least a C in C S 272 and C S 278.
C S 471. Programming Language Structure I - 3 cr.
Syntax, semantics, implementation, and application of programming languages; abstract data types; concurrency. Not for C S graduates. Prerequisites: C or better in C S 370 and C S 371.
C S 472. Logic and Constraint Logic Programming - 3 cr.
Declarative programming techniques; foundations of logic programming; programming in Prolog; constraint logic programming; applications of logic and constraint programming. Not for C S graduate students. Prerequisite(s): At least C in C S 272 and C S 278.
C S 473. Architectural Concepts I - 3 cr.
Comparison of architectures to illustrate concepts of computer organization; relationships between architectural and software features. Not for C S graduate students. Prerequisites: at least a C in C S 273 and C S 370.
C S 474. Operating Systems I - 3 cr.
Operating system principles and structures, and interactions with architectures. Not for C S graduate students. Prerequisites: at least a C in C S 273, C S 371, and C S 372.
C S 475. Artificial Intelligence I - 3 cr.
Fundamental principles and techniques in artificial intelligence systems. Knowledge representation formalisms; heuristic problem solving techniques; automated logical deduction; robot planning methods; algorithmic techniques for natural language understanding, vision, and learning. Not for C S graduate students. Prerequisites: At least a C in MATH 330 and C S 372.
C S 476. Computer Graphics I - 3 cr.
Languages, programming, devices, and data structures for representation and interactive display of complex objects. Not for C S graduate students. Prerequisites: at least C in C S 272 or C S 273, MATH 280, MATH 291G.
C S 478. Computer Security - 3 cr.
Introduction to the art and science of computer security.Fundamentals of computer security including elementary cryptography, authentication and access control, security threats, attacks, detection and prevention in application software, operating systems, networks and databases. Prerequisite(s): At least a C in CS 273 or consent of instructor.
C S 479. Special Topics - 1-3 cr.
Topic announced in the Schedule of Classes. May be repeated if subtitle is different. Not for C S graduate students. Prerequisite: written agreement with instructor.
C S 480. Linux System Administration - 3 cr.
Basic system administration for Linux environments. Topics include user managements, file systems, security, backups, system monitoring, kernel configuration and other relevant aspects of system administration. Not for Computer Science graduate students.
C S 481. Visual Programming - 3 cr.
Design and implementation of languages using visual but nontextual means to specify programs. Not for C S graduate students.
C S 482. Database Management Systems I - 3 cr.
Database design and implementation; models of database management systems; privacy, security, protection, recovery. Not for C S graduate students. Prerequisites: at least a C in C S 272 and either C S 278 or MATH 279 or MATH 330.
C S 483. Introduction to Robotics - 3 cr.
Basic AI-based robotic architecture and concepts, with an emphasis on building and programming mobile robots. Not for C S graduate students.
C S 484. Computer Networks I - 3 cr.
Fundamental concepts of computer communication networks: layered network architecture, network components, protocol stack and service. Example of application, transport, network and data link layers, protocols primarily drawn from the Internet (TCP, UDP, and IP) protocol multimedia networks; network management and security. Not for C S graduate students. Prerequisites: At least a C in C S 272 and CS 273, senior or graduate standing or consent of instructor. STAT 371 or STAT 470 recommended.
C S 485. User Interface Design - 3 cr.
Interface design, conceptual models formed by users, computer aided instruction, natural and query languages, graphical representations. Not for C S graduate students. Prerequisite: at least C in C S 371.
C S 486. Bioinformatics - 3 cr.
Introduction to bioinformatics and computational biology. Computational approaches to sequences analysis, protein structure prediction and analysis, and selected topics from current advances in bioinformatics. Not for C S graduate students.
C S 491. Parallel Programming - 3 cr.
Programming of shared memory and distributed memory machines; tools and languages for parallel programming; techniques for parallel programming; parallel programming environments. Not for C S graduate students. Prerequisite: C or better in C S 370 or consent of instructor.
C S 492. Computer Systems Modeling and Simulation - 3 cr.
Basic concepts of modeling computer systems: continuous and discrete time models, states and transition, probabilistic models. Structure of simulation programs, time driven and event driven simulation on captured and synthetic traces, generation of random variables, queuing models, Markov chains, random walks, Poisson, Markov, renewal branching and Brownian motion processes, model validation and data analysis. For C S undergraduate students and non-C S graduate students only.