Undergraduate Program

Program Objectives for the Computer Science Degree

The primary goal of the degree program in Computer Science is to provide students the foundations for future work and careers in computation-based problem solving. These foundations support both a successful career path in computing as well as provide appropriate qualifications for further degree work in computation related disciplines. Our degree emphasizes development of analytical skills, acquisition of knowledge and understanding of systems, languages and tools required for effective computation-based problem solving. Our core courses offer a broad base so that students who end their studies with the bachelor’s degree can continue to acquire new skills and advance in an always-evolving professional workplace. Our core courses also strive to cultivate the sophistication and insights needed for further study at the graduate level. We accomplish these goals by placing our computer science program in the context of the core curriculum requirements of the University of New Mexico, by requiring a minor degree outside of computer science and by insisting on a strong overall grade point average.

The following objectives are to be met by students obtaining a degree in Computer Science. Students, upon graduation, will:

  1. Possess practical and theoretical knowledge of computer science and software engineering sufficient to earn a living and contribute to the economic development of the region, state and nation.
  2. Be prepared for advanced education in computer science and software engineering.
  3. Understand and respect the professional standards of ethics expected of computer scientists and software engineers and appreciate the social impact of computing.
  4. Recognize the importance of and possess the skills necessary for life-long learning.

Analytical skills are at the heart of becoming an effective computer scientist. These skills are stressed even from the beginning courses in programming and discrete mathematics. The ability to develop a computational solution for a problem coming from a complex world of goals and processes also requires understanding of and experience with algorithm design, a wide variety of architecture and network designs and a select number of current computing languages–ranging from the more direct hardware based to the very highest level. These analytic, design and programming skills are tested in senior-level applications courses, including work in databases, graphics, complex systems, computer vision and artificial intelligence. Supporting all of our education in computing is a philosophy that stresses analysis, communication, ethics and social responsibility.


Admission Requirements

Students wishing to enroll in the bachelor’s program in computer science must apply for admission or transfer to the Computer Science Department, School of Engineering. The admission process is initiated through the Office of Admissions for students wishing to transfer to the University of New Mexico from other institutions. Grades earned in equivalent courses at other institutions will be used in determining eligibility for admission to the department. Students transferring to the Computer Science program from another college at the University of New Mexico should initiate the paperwork at the office of the Computer Science Department. Students transferring to the Computer Science program from another department within the School of Engineering should initiate the paperwork in their present department office. Students denied entrance to the department due to lack of sufficient credits or specific courses may enroll in computer science classes and reapply at a later time when they meet the entrance requirements. The criteria for admission to the department are:

  1. Completion of the following courses with a grade of B- or better: Math 162, and one of CS 151L or 152L.
  2. Fulfill requirements for admission to the School of Engineering.

Advanced Placement and Transfer Credit

The department subscribes to the general policy of the School of Engineering with regard to advanced placement credit earned by examination.

Students with university level course work from other institutions will have their academic records evaluated by an undergraduate advisor from the department on an individual basis. The student should be aware that the department has the final say about which transfer credits can be applied toward the graduation requirements listed below. Because computer science programs vary greatly, students transferring from other institutions should not assume that computer science courses they have taken elsewhere can be applied toward the 51 hour computer science course work graduation requirement. Courses not accepted toward the 51 hours may be applied toward the 130 semester hour graduation requirement as general electives at the discretion of an undergraduate advisor.


Graduation Requirements

To receive the Bachelor of Science in Computer Science, a student must satisfy all general University of New Mexico regulations concerning baccalaureate programs and must complete all work defined by the following groups. Only courses with a grade of C- or better may be used to satisfy any of the requirements defined herein. The following courses cannot be used to satisfy any of the requirements listed below: Reserve Officers Training (ROTC), recreational physical education (PE-NP), Introductory Studies courses (e.g., IS-E 100) and mathematics courses prior to calculus. If in doubt about the applicability of a course. contact an undergraduate advisor in the Computer Science Department.

1.   Completion of 130 semester hours.

2.   Completion of at least 42 hours in courses numbered 300 or above.

3.   Completion of 51 hours in computer science consisting of the following courses, which total 42 hours, completed with a grade of C or better:

  One of CS 151L or CS 152L (with grades of B- or better)
CS 241L Data Organization
CS 251L Intermediate Programming
CS 261 Mathematical Foundations of Computer Science
ECE 238L Computer Logic Design
CS 293 Social and Ethical Issues in Computing
CS 341L Introduction to Computer Architecture and Organization
CS 351L Design of Large Programs
CS 361L Data Structures and Algorithms I
CS 362 Data Structures and Algorithms II
CS 357L Declarative Programming
CS 375 Numerical Computation
CS 460 Software Engineering
CS 481 Computer Operating Systems

The remaining 9 hours are technical electives of the student's choosing to be taken from among the Computer Science Department offerings. (Certain courses in the Department of Electrical and Computer Engineering are also acceptable as technical electives.) All courses used as technical electives are subject to the approval of an undergraduate advisor and must be completed with a grade of B or better.

CS 259L may be substituted for CS 152L and CS 251L but only 5 hours credit is awarded. The computer science hour requirement is reduced to 50, but the overall graduation requirement remains at 130.

The following additional rules apply:

Department offerings below the 300 level cannot be used as technical electives. The following courses also cannot be used as technical electives: CS 394, 401, 492, 494.

  • At most 3 hours of CS 499 may be used toward satisfaction of this requirement.
  • At least 15 credits at or above the 300 level used to satisfy this requirement must be taken from full-time University of New Mexico Computer Science Department faculty.
  • At least 18 credits must be taken in the Computer Science Department at the University of New Mexico.

4.   Completion of the Mathematics sequence:

MATH 162
Calculus I, with a grade of B- or better
MATH 163 Calculus II
MATH 314 or 321 Linear Algebra
STAT 345 Elements of Mathematical Statistics and Probability Theory

5.   Nine hours of communications skills: ENGL 101, ENGL 102 and on of ENGL 219 (Technical and Professional Writing), ENGL 220 (Expository Writing) or CJ 130 (Public Speaking).

Part of this requirement may be satisfied by passing an authorized proficiency examination. English 101 and 102 will be waived if the student obtains

  • an ACT score of 25 or higher (prior to October 1989)
  • an ACT score of 29 or higher (after October 1989)
  • an SAT score of 580 or higher (prior to April 1995) or
  • an SAT score of 650 or higher (after April 1995)

See the Schedule of Classes for additional ways to gain exemption from ENGL 101 and 102. When a student is exempted from ENGL 101 and 102, the student's total credit requirement is reduced to 128, the minimum allowed by the University for a bachelor's degree. Students may have to take additional hours to bring their total to at least 128.

6.   Satisfaction of University Core Curriculum requirements with a grade of C or better in humanities, social sciences, fine arts, and second language(s), and additional non-technical courses to total a minimum of 30 credit hours. See the description of the Core Curriculum in this catalog.

7.   Four (3 or more credit) science courses taken by science and engineering majors, two of which must come from one of the following sequences, including the laboratories. The remaining hours can be more advanced courses in the discipline chosen for the sequence or they can be additional introductory laboratory science hours.

  • ASTR 270-270L, 271-271L
  • BIOL 201, 202, 203L, 204L
  • CHEM 121, 123L, 122, 124L
  • EPS 101-105L and 201L or Env Sc 101-102L and EPS 201L
  • PHYC 160, 160L-161, 161L

Physics is recommended.

8.   Course work sufficient to satisfy requirements of a minor. Minors approved by the College of Arts and Sciences are generally acceptable for Computer Science majors. The University of New Mexico Catalog should be consulted for the requirements for completing a minor in various fields of study. An interdisciplinary minor of not less than 24 hours can be developed to suit the goals of individual students; such a minor must be approved by the Undergraduate Curriculum Committee of the department.

The following courses taken from the Department of Electrical and Computer Engineering satisfy this requirement:

Minor in Computer Engineering: ECE 203, ECE 206L, ECE 213, ECE 321, ECE 322, ECE 338 and ECE 438.

Minor in Electrical Engineering: ECE 203, ECE 206L, ECE 213, ECE 314, ECE 321 and two of ECE 322, ECE 340, ECE 360, ECE 371, or ECE 445.

No course included in the mathematics requirement for CS majors (STAT 345, MATH 314, 321 or 375) may be applied toward the mathematics minor.

Mathematics minors may not use Department of Mathematics courses for Teachers and Education Students in constructing the minor. MATH 317 and MATH 327 cannot be used in constructing the minor. Statistics minors must substitute 6 hours of advance statistics for STAT 145 (not accepted by the department) and STAT 345 (already required of all computer science majors).

Students minoring in business cannot minor in Management Information Systems (MIS). In particular, the following courses cannot be used in constructing the minor: MGMT 290 (STAT 245, 329, 330, 331, 336, 337 and 437, 439, 449, 450, 459, 460, 461, or any course related to CS or computer applications.

Courses taken to satisfy the requirements for a minor may also be used to satisfy the requirements of categories 1, 2, 5, 6 and 7.

All courses taken to satisfy the graduation requirements are subject to final approval by an undergraduate advisor. At most, 24 semester hours taken for CR/NC may be applied toward the baccalaureate degree. Courses taken for CR/NC may only be used to satisfy graduation requirement 1 (completion of 130 semester hours).

No one course may be used to satisfy more than one requirement of categories 3, 4, and 8. Due to the cross listing of various courses within the University and the different requirements for the minor from department to department, this has a number of implications. For example, mathematics minors cannot count the required sequence in mathematics toward the minor in mathematics, and computer engineering minors cannot use ECE 438 as a technical elective in fulfilling requirement


Minor in Computer Science

A minor in computer science is available for students in other departments. The requirements for a minor are completion of 15 hours of CS courses from those required for the major, a minimum of 6 of these 15 credit hours must be at 300 level or above.

A grade of C or better is required for all CS courses counted toward minor.


Honors Program

Eligible freshmen and upperclassmen in the Computer Science Department are urged to enroll in the Honors Program. Students may graduate with University Honors, Departmental Honors or both. Information is available from departmental advisors and the University Honors Center.


Advising

Students are required to see an undergraduate advisor within the department each semester prior to registering for classes. Students not subject to the University of New Mexico Core Curriculum requirements should check with an advisor about the admissibility of classes used to satisfy graduation requirement 6 (which still applies), as some courses offered by other departments do not meet the spirit of this breadth requirement.


Curriculum in Computer Science

The following schedule is intended to be a guide for students when planning their course load for any particular semester. It should be noted that the schedule must normally be adjusted to compensate for any deficiencies or advanced preparation on the part of the student prior to beginning the freshman year. Students must take the ACT or SAT to aid in proper placement in Math and English. Students should not begin any Computer Science courses until they have knowledge of mathematics equivalent to MATH 150 (Pre-Calculus Mathematics). General electives include courses in humanities, social and behavioral sciences, the fine arts and foreign languages. For first degree students general electives includes courses used to satisfy University of New Mexico Core Curriculum requirements. It is recommended that a student not attempt more than 12 hours of technical material in one semester.


First Year
First Semester  Credits
ENGL 101 Composition I: Exposition 3
CS 152L Computer Programming Fundamentals for Computer Science Majors 3
MATH 162 Calculus I 4
   Laboratory Science I 4
    Core Requirement 3
        17
First Year
Second Semester     
ENGL 102 Composition II: Analysis and Argument 3
CS 261 Mathematical Foundations of Computer Science 3
CS 251L Intermediate Programming 3
MATH 163 Calculus II 4
  Core Requirement 3
  Laboratory Science II 4
                     17
Second Year First Semester    
CS 241L Data Organization 3
CS 293 Social and Ethical Issues in Computing 1
ECE 238L Computer Logic Design 4
MATH 314 Linear Algebra with Applications 3
  Laboratory Science III 3
  Minor/Core/Electives 3
    17
Second Year
Second Semester   
CS 351 Design of Large Programs 4
  English Communications Elective 3
  Laboratory Science IV 3
  Minor/Core/Electives 6
    16
Third Year First Semester  
CS 375 Introduction to Numerical Computing 3
CS 361L Data Structures and Algorithms I 3
STAT 345 Elements of Mathematical Statistics and Probability Theory 3
  Minor/Core/Electives 9
    18
Third Year Second Semester  
CS 357L Declarative Programming 3
CS 362 Data Structures and Algorithms II 3
CS 4xx Elective 3
  Minor/Core/Electives 6
    15
Fourth Year First Semester  
CS 341L Introduction to Computer
Architecture and Organization
3
CS 4xx Elective 3
CS 4xx Elective 3
  Minor/Core/Electives 6
    15
Fourth Year Second Semester  
CS 460 Software Engineering 3
CS 481 Computer Operating Systems 3
  Minor/Core/Electives 9
    15

Courses

CS 131L. Introduction to Unix® and the World Wide Web. (2)



CS 132L. Introduction to Unix® and the World Wide Web. (1)



CS 150L. Computing for Business Students. (3)



CS 151L. Computer Programming Fundamentals for Non-Majors. (3)



CS 152L. Computer Programming Fundamentals. (3)



CS 241L. Data Organization. (3)



CS 251L. Intermediate Programming. (3)



CS 259L. Data Structures with JAVA. (5)



CS 261. Mathematical Foundations of Computer Science. (3)



CS 293. Social and Ethical Issues in Computing. (1)



CS 341L. Introduction to Computer Architecture and Organization. (3)



CS 351L. Design of Large Programs. (4)



CS 357L. Declarative Programming. (3)



CS 361L. Data Structures and Algorithms. (3)



CS 362. Data Structures and Algorithms II. (3)



CS 365. Introduction to Scientific Modeling. (3)



CS *375. Introduction to Numerical Computing. (3)



CS 390. Topics in Computer Science for Non-Majors–Undergraduate. (1-3, no limit Δ)



CS 394. Computer Generated Imagery and Animation. (3)



CS 412. Introduction to Computer Graphics: Scanline Algorithms. (3)



CS 413. Introduction to Ray and Vector Graphics. (3)



CS 422 / 522. Digital Image Processing. (3)



CS **423. Introduction to Complex Adaptive Systems. (3)



CS 427 / 527. Principles of Artificially Intelligent Machines. (3)



CS 429 / 529. Introduction to Machine Learning. (3)



CS *441. Modern Computer Architecture. (3)



CS *442. Introduction to Parallel Processing. (3)



CS 444/544. Introduction to Cybersecurity. (3)



CS 454 / 554. Compiler Construction. (3)



CS **460. Software Engineering. (3)



CS 464 / 564. Introduction to Database Management. (3)



CS *471. Introduction to Scientific Computing. (3)



CS 473 / 573. Physics and Computation. (3)



CS **481. Computer Operating Systems. (3)



CS **485. Introduction to Computer Networks. (3)



CS 491. Special Topics–Undergraduates. (1-6 to a maximum of 12 Δ)



CS **492. Introduction to Computers in Manufacturing. (3)



CS **494. Advanced Topics in Computer Generated Imaging. (3)



CS 499. Individual Study–Undergraduate. (1-3 to a maximum of 6 Δ)



CS 500. Introduction to the Theory of Computation. (3)



CS 506. Computational Geometry. (3)



CS 509. Parallel Algorithms. (3)



CS 510. Randomized Algorithms. (3)



CS 511. Algorithms in the Real World. (3)



CS 512. Advanced Image Synthesis. (3)



CS 513. Real-Time Rendering and Graphics Hardware. (3)



CS 515. Scientific and Information Visualization. (3)



CS 520. Topics in Interdisciplinary Biological and Biomedical Sciences. (3, unlimited Δ)



CS 522 / 422. Digital Image Processing. (3)



CS 523. Complex Adaptive Systems. (3)



CS 524. Collaborative Interdiciplinary Teaching. (3)



CS 527 / 427. Principles of Artificially Intelligent Machines. (3)



CS 528. Advanced Topics in Artificial Intelligence. (3)



CS 529 / 429. Introduction to Machine Learning. (3)



CS 530. Geometric and Probabilistic Methods in Computer Science. (3)



CS 531. Pattern Recognition. (3)



CS 532. Computer Vision. (3)



CS 537. Automated Reasoning. (3)



CS 544/444. Introduction to Cybersecurity. (3)



CS 547. Neural Networks. (3)



CS 550. Programming Languages and Systems. (3)



CS 551. Individual Study–Graduate. (1-3 to a maximum of 6 Δ)



CS 554 / 454. Compiler Construction. (3)



CS 555. Advanced Topics in Compiler Construction. (3)



CS 557. Selected Topics in Numerical Analysis. (3)



CS 558. Software Foundations. (3)



CS 561. Algorithms/Data Structure. (3)



CS 564 / 464. Introduction to Database Management. (3)



CS 565. Topics in Database Management. (3)



CS 569. Computational Medicine. (3)



CS 573 / 473. Physics and Computation. (3)



CS 575. Introductory Numerical Analysis: Numerical Linear Algebra. (3)



CS 576. Introductory Numerical Analysis: Approximation and Differential Equations. (3)



CS 580. The Specification of Software Systems. (3)



CS 581. Fundamentals of Software Testing. (3)



CS 583. Object-Oriented Testing. (3)



CS 585. Computer Networks. (3)



CS 587. Advanced Operating Systems. (3)



CS **590. Topics in Computer Science for Non-Majors–Graduate. (1-3, no limit Δ)



CS 591. Special Topics–Graduate. (1-6, no limit Δ)



CS 592. Colloquium. (1 to a maximum of 4 Δ)



CS 599. Master’s Thesis. (1-6, no limit Δ)



CS 609. Advanced Parallel Algorithms. (3)



CS 650. Reading and Research. (3 to a maximum of 6 Δ)



CS 691. Seminar in Computer Science. (1-6 to a maximum of 12 Δ)



CS 699. Dissertation. (3-12, no limit Δ)



Course Search:




Keyword Search:

Office of the Registrar

MSC 11 6325
1 University of New Mexico
Albuquerque, NM 87131

Phone: (505) 277-8900
Fax: (505) 277-6809