- UNM 2017-2018 Catalog
- >Colleges
- >School of Engineering
- >Computer Science
- >Undergraduate Program
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,:
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.
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 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.
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.
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.
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:
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.
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:
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
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 |
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 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, unlimited Δ)
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 531. Machine Learning. (3)
CS 532. Computer Vision. (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 Δ)
MSC 11 6325
1 University of New Mexico
Albuquerque, NM 87131
(505) 277-8900
Phone: (505) 277-6809
Fax: