Undergraduate Program

Degree Offered

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

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


Admission Requirements

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 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 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 course work 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 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.


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
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 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

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 162 Calculus I, with a grade of "B-" or better
MATH 163 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 110 (or ENGL 112; or ENGL 113), ENGL 120 and one 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. ENGL 110 and 120 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 110 and 120, 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 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 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 270 and 270L, 271 and 271L
  • BIOL 201L, 202L, 203 and 203L, 204 and 204L
  • CHEM 121 and 123L, 122 and 124L
  • (EPS 101 and 105L and 201L) or (ENVS 101 and 102L and EPS 201L)
  • PHYC 160 and 160L, 161 and 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 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 and *438.
  • Minor in Electrical Engineering: ECE 203, 206L, 213, **314, **321L and two of ECE **340, 345, **360, or **371.

No course included in the mathematics requirement for CS 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 STAT 145 (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 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 credit 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 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


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 credit hours of technical material in one semester.

Credit
Hours
First Year First Semester  
ENGL 110
(or ENGL 112;
or ENGL 113
Accelerated Composition
(or Composition II;
or Enhanced Composition)
3
CS 152L Computer Programming Fundamentals for Computer Science Majors 3
MATH 162 Calculus I 4
Laboratory Science I 4
14
First Year Second Semester
ENGL 120 Composition III 3
CS 261 Mathematical Foundations of Computer Science 3
CS 251L Intermediate Programming 3
MATH 163 Calculus II 4
  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
-or-
MATH **321
Linear Algebra with Applications

Linear Algebra
3
  Laboratory Science III 3
  Minor/Core/Electives 3
    17
Second Year Second Semester
CS 351L Design of Large Programs 4
  English Communications Elective 3
  Laboratory Science IV 3
  Minor/Core/Electives 3
    13
Third Year First Semester
CS *375 Introduction to Numerical Computing 3
CS 361L Data Structures and Algorithms 3
STAT **345 Elements of Mathematical Statistics and Probability Theory 3
  Minor/Core/Electives 6
    15
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 8
    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

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



CS 108L. Computer Science for All: An Introduction to Computational Science and Modeling. (3)



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 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 442 / 542. Introduction to Parallel Processing. (3)



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



CS 454 / 554. Compiler Construction. (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 / 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 to a maximum of 4 Δ)



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 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