Undergraduate Program

Degree Offered

  • Bachelor of Science in Computer Science (B.S.C.S.)

Shared-Credit Undergraduate/Graduate Degrees Program

Undergraduate students in the Computer Science program may seek admission to a Master of Science (M.S.) engineering program or the Master of Engineering (M.Eng.) in Civil Engineering under the Shared-Credit Undergraduate/Graduate Degrees Program. See the School of Engineering section of this Catalog for specific admission information and requirements.


Program Objectives

The primary goal of the Bachelor of Science in Computer Science (B.S.C.S.) program 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. The undergraduate degree emphasizes development of analytical skills, acquisition of knowledge and understanding of systems, languages and tools required for effective computation-based problem solving. The department's program 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. The department's program core courses also strive to cultivate the sophistication and insights needed for further study at the graduate level. The department accomplishes these goals by placing it's baccalaureate program in the context of the General Education 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 B.S.C.S. Students, upon graduation,:

  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 the department's education in computing is a philosophy that stresses analysis, communication, ethics and social responsibility.


Admission Information

Students wishing to enroll in the B.S.C.S. program 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 are 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 credit hours 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 1512, 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 coursework 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 credit hours 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 credit hour computer science coursework graduation requirement. Courses not accepted toward the 51 credit hours may be applied toward the 120 credit hour graduation requirement as general electives at the discretion of an undergraduate advisor.

Advising

Students are required to see an undergraduate advisor within the department each semester prior to registering for classes. Students not subject to the General Education curriculum requirements at UNM 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.


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., ISE 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. Graduation criteria for the B.S.C.S. is as follows:

1.   Completion of 120 credit hours.

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

3.   Completion of 51 credit hours in computer science consisting of the following courses, which total 42 credit hours, completed with a grade of "C" (not "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
CS 293 Social and Ethical Issues in Computing
CS 341L Introduction to Computer Architecture and Organization
CS 351L Design of Large Programs
CS 357L Declarative Programming
CS 361L Data Structures and Algorithms
CS 362 Data Structures and Algorithms II
CS *375 Introduction to Numerical Computing
CS **460 Software Engineering
CS **481 Computer Operating Systems
ECE 238L Computer Logic Design

The remaining 9 credit 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" (not "B-") or better.

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

The following additional rules apply:

Department offerings below the 300-level cannot be used as technical electives. The following course also cannot be used as a technical elective: CS **494.

  • At most, 3 credit hours of CS 499 may be used toward satisfaction of this requirement.
  • At least 15 credit hours 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 credit hours must be taken in the Computer Science Department at the University of New Mexico.

4.   Completion of the Mathematics sequence:

MATH 1512 Calculus I (with a grade of "B-" or better)
MATH 1522 Calculus II
MATH **314
-or-
MATH **321
Linear Algebra with Applications

Linear Algebra
STAT **345 Elements of Mathematical Statistics and Probability Theory


5.   9 credit hours of communications skills:
ENGL 1110 (or ENGL 1110Y; or ENGL 1110Z), ENGL 1120 and one of: COMM 1130 (Public Speaking), ENGL 2120 (Intermediate Composition), or ENGL 2210 (Professional and Technical Communication).

Part of this requirement may be satisfied by passing an authorized proficiency examination. ENGL 1110 and 1120 are waived if the student obtains one of the following:

  • 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)
  • an SAT score of 650 or higher (after April 1995)

When a student is exempted from ENGL 1110 and 1120, the student's total credit requirement is still the minimum required by the University for a bachelor's degree. Students may have to take additional credit hours to meet that minimum.

6.   Satisfaction of General Education curriculum requirements at UNM with a grade of "C" or better in courses from Area 4: Social and Behavioral Sciences, Area 5: Humanities, Area 6: Second Language, Area 7: Arts and Design, and additional non-technical courses to total a minimum of 30 credit hours. See the Undergraduate Program section of this Catalog for a description of the General Education curriculum requirements at UNM.

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

  • ASTR 2110 and 2110L, 2115 and 2115L
  • BIOL 203 and 203L, 204 and 204L, 2110C, 2410C
  • CHEM 1215 and 1215L, 1225 and 1225L
  • ((ENVS 1130 and 1130L) or (GEOL 1110 and 1110L)) and GEOL 2110C
  • PHYS 1310 and 1310L, 1320 and 1320L

Physics is recommended.

8.   Coursework sufficient to satisfy requirements of a minor. Minors approved by the College of Arts and Sciences are generally acceptable for Computer Science majors. The UNM Catalog should be consulted for the requirements for completing a minor in various fields of study. An interdisciplinary minor of not less than 24 credit 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, 206L, 213, **321L, **322L, **338, *438.
  • Minor in Electrical Engineering: ECE 203, 206L, 213, **314, **321L; two of: ECE **340, 345, **360, **371.

No course included in the mathematics requirement for Computer Science majors (STAT **345, MATH **314 or **321, and **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 3 credit hours of advance statistics for MATH 1350 (not accepted by the department).

Students minoring in business cannot minor in Management Information Systems (MIS). In particular, the following courses cannot be used in constructing the minor: MGMT 329, 330, 331, 336, 337 and 437, 449, 450, 459; STAT 245; or any course related to Computer Science 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 credit hours taken on a Credit/No Credit basis "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 120 credit 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 3.


Bachelor of Science 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 1240 Pre-Calculus. General electives include courses in humanities, social and behavioral sciences, second language, and arts and design. For first degree students, general electives includes courses used to satisfy General Education curriculum requirements at UNM. It is recommended that a student not attempt more than 12 credit hours of technical material in one semester.

Refer to the Undergraduate Program section of this Catalog for information on courses that meet General Education curriculum and U.S. and Global Diversity and Inclusion requirements.

Credit
Hours
First Year First Semester  
CS 152L Computer Programming Fundamentals for Computer Science Majors 3
ENGL 1110
-or-
ENGL 1110Y
-or-
ENGL 1110Z
Composition I

Composition I: Stretch II

Enhanced Composition
3
MATH 1512 Calculus I 4
Laboratory Science I 4
Subtotal 14
First Year Second Semester
CS 251L Intermediate Programming 3
CS 261 Mathematical Foundations of Computer Science 3
ENGL 1120 Composition II 3
MATH 1522 Calculus II 4
  Laboratory Science II 4
Subtotal 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
-or-
MATH **321
Linear Algebra with Applications

Linear Algebra
3
  Laboratory Science III 3
  General Education/Minor/Electives 3
   Subtotal 17
Second Year Second Semester
CS 351L Design of Large Programs 4
  English Communications Elective 3
  Laboratory Science IV 3
  General Education/Minor/Electives 3
   Subtotal 13
Third Year First Semester
CS 361L Data Structures and Algorithms 3
CS *375 Introduction to Numerical Computing 3
STAT **345 Elements of Mathematical Statistics and Probability Theory 3
  General Education/Minor/Electives 6
   Subtotal 15
Third Year Second Semester  
CS 357L Declarative Programming 3
CS 362 Data Structures and Algorithms II 3
CS 4xx Elective 3
  General Education/Minor/Electives 6
   Subtotal 15
Fourth Year First Semester  
CS 341L Introduction to Computer Architecture and Organization 3
CS 4xx Elective 3
CS 4xx Elective 3
  General Education/Minor/Electives 6
   Subtotal 15
Fourth Year Second Semester  
CS **460 Software Engineering 3
CS **481 Computer Operating Systems 3
  General Education/Minor/Electives 8
   Subtotal 14

Minor Study

A minor in Computer Science is available for students in other departments. The requirements for a minor are completion of 15 credit 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" (not "C-") or better is required for all CS courses counted toward minor.


Departmental Honors

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.


Courses

BCIS 1110 [CS 150L]. Introduction to Information Systems [Computing for Business Students]. (3)



CS 105L. Introduction to Computer Programming. (3)



CS 108L. Computer Science for All: An Introduction to Computational Science and Modeling. (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 412. Introduction to Computer Graphics: Scanline Algorithms. (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 442 / 542. Introduction to Parallel Processing. (3)



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



CS 456 / 556. Advanced Declarative Programming. (3)



CS **460. Software Engineering. (3)



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



CS 467 / 567. Principles and Applications of Big Data. (3)



CS *471. Introduction to Scientific Computing. (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 495 / 595. Advanced Topics in Computer Science. (3, no limit Δ)



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 510. Mobile Computing. (3)



CS 512. Introduction to Computer Graphics. (3)



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



CS 521. Data Mining Techniques. (3)



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



CS 523. Complex Adaptive Systems. (3)



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



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



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



CS 533. Experimental Methods in Computer Science. (3)



CS 542 / 442. Introduction to Parallel Processing. (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 [554 / 454]. Compiler Construction. (3)



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



CS 556 / 456. Advanced Declarative Programming. (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 567 / 467. Principles and Applications of Big Data. (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, may be repeated three times Δ)



CS 595 / 495. Advanced Topics in Computer Science. (3, no limit Δ)



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



CS 600. Computer Science Research Practicum. (3)



CS 650. Reading and Research. (3, may be repeated once Δ)



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

MSC11 6325
1 University of New Mexico
Albuquerque, NM 87131

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