- UNM Catalog 2021-2022
- >Colleges
- >School of Engineering
- >Computer Science
- >Undergraduate 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.
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,:
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.
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:
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.
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.
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 ENG 130L 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.
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:
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.
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:
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.
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 |
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.
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.
CS 105L. Introduction to Computer Programming. (3)
CS 108L. Computer Science for All: An Introduction to Computational Science and Modeling. (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 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 468 / 568. Computational Modeling for Bioengineering. (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 518. Introduction to Bioinformatics. (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 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 568 / 468. Computational Modeling for Bioengineering. (3)
CS 575. Introductory Numerical Analysis: Numerical Linear Algebra. (3)
CS 580. The Specification of Software Systems. (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 Δ)
MSC11 6325
1 University of New Mexico
Albuquerque, NM 87131
(505) 277-8900
Phone: (505) 277-6809
Fax: