COLLEGE of ARTS and SCIENCES
COMPUTER SCIENCE
Professor Enrico Pontelli, department head
Professors Leung, Tran; Associate Professors Cook, Pivkina, Song; Assistant Professors Cao, Jin, Misra, Villaverde; College Professor Steiner
(575) 646-3723
http://www.cs.nmsu.edu
DEGREE: Bachelor of Science
MAJOR: Computer Science
DEGREE: Bachelor of Arts
MAJOR: Computer Science
MINORS: Algorithm Theory
Bioinformatics
Computer Systems
Software Development
The undergraduate computer science program prepares students for graduate study in computer science and for employment in positions involving the design, construction, and application of computer systems. Students should review their programs of study in consultation with their advisors each semester, preferably using the most recent Undergraduate Catalog. The department also offers a minor degree, with specialized tracks in algorithm theory, bioinformatics, computer systems, and software development. For more information on the Department of Computer Science, please visit the web site www.cs.nmsu.edu.
DEGREE: Bachelor of Science
MAJOR: Computer Science
The Bachelor of Science in Computer Science is the traditional undergraduate degree in Computer Science. It is rigorously focused on educating the student in the fundamental disciplines of Computer Science. It prepares the student for any technological field in industry, and also provides the preparation for advanced graduate studies in Computer Science. It is the main undergraduate degree in the Computer Science department, and should be the choice of a single-major Computer Science student.
General Requirements Exception
A grade of at least C must be earned in each of the courses taken to satisfy the departmental and nondepartmental requirements. No course may be counted as satisfying both a departmental and a nondepartmental requirement. No course taken to satisfy either a departmental or a nondepartmental requirement may be taken S/U.
Departmental Requirements (54-56 credits)
| C S 172, Computer Science I | 4 |
| C S 271, Object-Oriented Programming | 4 |
| C S 272, Introduction to Data Structures | 4 |
| C S 273, Machine Programming and Organization | 4 |
| C S or MATH 278, Discrete Mathematics for Computer Science | 4 |
| C S 370, Compilers and Automata Theory | 4 |
| C S 371, Software Development | 4 |
| C S 372, Data Structures and Algorithms | 4 |
| C S 448, Senior Project, or C S 449, Senior Thesis | 4 |
| C S 471, Programming Language Structure I | 3 |
| C S 473, Architectural Concepts I | 3 |
| C S 474, Operating Systems I | 3 |
| Two of the following: C S 470, Functional Programming; C S 472, Logic and Constraint Logic Programming; C S 475, Artificial Intelligence I; C S 476, Computer Graphics I; C S 478, Computer Security; C S 480, Linux System Administration; C S 481, Visual Programming; C S 482, Database Management Systems I; C S 483, Introduction to Robotics; C S 484, Computer Networks I; C S 485, User Interface Design; C S 486, Bioinformatics; C S 491, Parallel Programming; C S 492, Computer Systems Modeling and Simulation | 6* |
| One of the following: C S 470, Functional Programming; C S 472, Logic and Constraint Logic Programming; C S 475, Artificial Intelligence I; C S 476, Computer Graphics I; C S 478, Computer Security; C S 480, Linux System Administration; C S 482, Database Management Systems I; C S 483, Introduction to Robotics; C S 484, Computer Networks I, C S 485, User Interface Design; C S 486, Bioinformatics; C S 491, Parallel Programming; MATH 291G, Calculus and Analytical Geometry; C S 492, Computer Systems Modeling and Simulation; MATH 377, Introduction to Numerical Methods; MATH 430, Combinatorial Mathematics; MATH 454, Mathematical Logic; MATH 480, Vector Spaces and Matrix Algebra; E E 469, Communications Networks; BIOL 111G/111L, Natural History of Life/ Lab; BIOL 211G/211L, Cellular and Organismal Biology/Lab; CHEM 111G, General Chemistry I; CHEM 112G, General Chemistry II; CHEM 114, General Chemistry for Engineers; GEOG 111G, Geography of the Natural Environment; GEOL 111G, Survey of Geology; HON 205G, Life, Energy, and Evolution; HON 219G, Earth, Time, and Life; PHYS 211G/211GL, General Physics I/Lab; PHYS 212G/212GL, General Physics II/ Lab; PHYS 215G/ 215GL, Engineering Physics I/ Lab; PHYS 216G/216GL, Engineering Physics II/Lab | 3-5* |
Nondepartmental Requirements (30-31 credits)
| COMM 253G, Public Speaking, or COMM 265G, Principles of Human Communication, or HON 265G, Principles of Human Communication | 3 |
| ENGL 218G, Technical and Scientific Communication, or ENGL 311G, Advanced Composition, or ENGL 318G, Advanced Technical and Professional Communication | 3 |
| MATH 280, Introduction to Linear Algebra, or MATH 480, Vector Spaces and Matrix Algebra | 3 |
| MATH 191G-192G, Calculus and Analytic Geometry I, II | 8 |
| One of the following: MATH 331, Introduction to Modern Algebra; MATH 332, Introduction to Analysis; MATH 377, Introduction to Numerical Methods; MATH 392, Introduction to Ordinary Differential Equations; MATH 430, Combinatorial Mathematics; MATH 431, Algebraic Coding Theory; MATH 454, Mathematical Logic; MATH 455, Elementary Number Theory 3* | |
| One of the following: A ST 311, Statistical Applications; STAT 371, Statistics for Engineers and Scientists I; STAT 470, Probability: Theory and Application | 3 |
| Two of the following lab science courses: ASTR 110G, Introduction to Astronomy; BIOL 111G/111L, Natural History of Life/Lab; BIOL 211G/211L, Cellular and Organismal Biology/Lab; CHEM 111G, General Chemistry I; CHEM 112G, General Chemistry II; CHEM 114, General Chemistry for Engineers; GEOG 111G, Geography of the Natural Environment; GEOL 111G, Survey of Geology; HON 205G, Life, Energy, and Evolution; HON 219G, Earth, Time, and Life; PHYS 211G/211GL, General Physics I/Lab; PHYS 212G/212GL, General Physics II/ Lab; PHYS 215G/215GL, Engineering Physics I/Lab; PHYS 216G/216GL, Engineering Physics II/Lab | 8-9* |
*A course can satisfy only one requirement.
A Suggested Plan of Study for Students
The following plan applies to students who qualify to take MATH 191G.
Freshman Year (30 credits)
| C S 172, Computer Science I | 4 |
| C S 272, Introduction to Data Structures | 4 |
| C S 273, Machine Programming and Organization | 4 |
| ENGL 111G, Rhetoric and Composition | 4 |
| MATH 191G, Calculus I | 4 |
| MATH 192G, Calculus II | 4 |
| AREA IV: Social/ Behavioral Sciences** | 3 |
| AREA V: Humanities and Fine Arts** | 3 |
Sophomore Year (34 credits)
| C S 271, Object Oriented Programming | 4 |
| C S 278, Discrete Mathematics for Computer Science | 4 |
| C S 370, Compilers and Automata Theory | 4 |
| C S 372, Data Structures and Algorithms | 4 |
| ENGL 218G, Technical and Scientific Communication | 3 |
| MATH 280, or MATH 480 | 3 |
| A ST 311, STAT 371, or STAT 470 | 3 |
| AREA IV: Social/Behavioral Sciences** | 3 |
| AREA V: Humanities and Fine Arts** | 3 |
Junior Year (33 credits)
| C S 371, Software Development | 4 |
| C S 471, Programming Language Structure I | 3 |
| C S 473. Architectural Concepts I | 3 |
| Computer Science 400-level Elective* | 3 |
| MATH elective (upper division)* | 3 |
| Lab Science Elective* | 4 |
| Lab Science Elective* | 4 |
| AREA IV & AREA V** | 3 |
| Viewing a Wider World** | 3 |
| Viewing a Wider World** | 3 |
Senior Year (31 credits)
| C S 448, Senior Project | 4 |
| C S 474, Operating Systems I | 3 |
| C S / MATH / E E / Science Elective* (upper division) | 3 |
| Computer Science 400-level Elective* | 3 |
| Upper division electives to bring total upper division to | 48 |
| Additional electives as needed to bring total credits to | 128 |
* See Lists Above
** New Mexico State Common Core Requirements
Students planning to undertake graduate work in computer science are encouraged to consult with their advisor regarding the possibility of taking other computer science electives to satisfy their departmental requirements.
DEGREE: Bachelor of Arts
MAJOR: Computer Science
The Bachelor of Arts in Computer Science is an open, flexible degree plan that offers the student both a rigorous undergraduate degree program in Computer Science and an extensive open credit hour allotment to pursue knowledge in other domains. It is an excellent choice to combine into a double major program, and is an option for the student who has an interest in learning both domain knowledge in some areas outside of Computer Science, and in acquiring a Computer Science background sufficient to pursue a strong technology career.
Students planning to undertake graduate work in Computer Science are encouraged to pursue the Bachelor of Science degree rather than the Bachelor of Arts degree. Students interested in graduate work should consult with their advisor regarding the possibility of taking other computer science electives to satisfy their departmental requirements.
General Requirements Exception
A grade of a least C must be earned in each of the courses taken to satisfy the departmental and nondepartmental requirements. No course may be counted as satisfying both a departmental and a nondepartmental requirement. No course taken to satisfy either a departmental or a nondepartmental requirement may be taken S/U.
Departmental Requirements (47-48 credits)
| C S 172, Computer Science I | 4 |
| C S 271, Object Oriented Programming | 4 |
| C S 272, Introduction to Data Structures | 4 |
| C S 273, Machine Programming and Organization | 4 |
| C S or MATH 278, Discrete Mathematics for Computer Science | 4 |
| C S 370, Compilers and Automata Theory | 4 |
| C S 371, Software Development | 4 |
| C S 448, Senior Project, or C S 449, Senior Thesis | 4 |
| C S 482, Database Management Systems I | 3 |
| Two of the following: C S 372, Data Structures and Algorithms; C S 470, Functional Programming; C S 472, Logic and Constraint Logic Programming; C S 471, Programming Language Structure I; C S 473, Architectural Concepts I; C S 474, Operating Systems I; C S 475, Artificial Intelligence I; C S 476, Computer Graphics I; C S 478,Computer Security; C S 480 Linux System Administration, C S 481, Visual Programming; C S 483, Introduction to Robotics; C S 484, Computer Networks; C S 485, User Interface Design; C S 486, Bioinformatics; C S 491, Parallel Programming; C S 492, Computer Modeling and Stimulation | 6-7* |
| Two of the following: C S 470, Functional Programming; C S 472, Logic and Constraint Logic Programming; C S 475, Artificial Intelligence I; C S 476, Computer Graphics I, C S 478, Computer Security; C S 480, Linux System Administration; C S 481, Visual Programming; C S 483, Introduction to Robotics; C S 484, Computer Networks I; C S 485, User Interface Design; C S 486, Bioinformatics; C S 491, Parallel Programming; C S 492, Computer Systems Modeling and Simulation | 6* |
Nondepartmental Requirements (18-22 credits)
| COMM 253G, Public Speaking, or COMM 265G, Principles of Human Communication, or HON 265G, Principles of Human Communication | 3 |
| ENGL 218G, Technical and Scientific Communication, or ENGL 311G, Advanced Composition, or ENGL 318G, Advanced Technical and Professional Communication | 3 |
| MATH 142G, Calculus for the Biological and Management Sciences I, or MATH 235, Calculus for the Technical Student I, or MATH 191G, Calculus and Analytical Geometry I | 3-4 |
| STAT 251G, Statistics for Business and the Behavioral Sciences, or STAT 271G, Statistics for Psychological Sciences, or STAT 371, Statistics for Engineers and Scientists I, or STAT 470, Probability: Theory and Application, or A ST 251G, Statistics for Business and the Behavioral Sciences, or A ST 311, Statistical Applications | 3-4 |
| Two upper-division courses in any one department except Computer Science | 6-8* |
Upper division electives to bring total upper division to 48: varied
Additional electives as needed to bring total credits to 128: varied
*A course can satisfy only one requirement.
A Suggested Plan of Study for Students
Freshman Year (29 credits)
| MATH 121G, College Algebra | 3 |
| ENGL 111G, Rhetoric and Composition | 4 |
| AREA V: Humanities and Fine Arts | 3 |
| MATH 190, Trigonometry and Precalculus | 4 |
| ENGL 218, Technical Writing | 3 |
| AREA IV: Social/Behavioral Sciences | 3 |
| Open Electives | 9 |
Sophomore Year (33 credits)
| C S 172, Computer Science I | 4 |
| MATH 142G, 235, or 191G, Calculus | 4 |
| C S 272, Intro to Data Structures | 4 |
| C S 273, Machine Programming and Organization | 4 |
| C S 278 or MATH 278, Discrete Math for Computer Science | 4 |
| COMM 253G, or COMM 265G, HON 265G | 3 |
| AREA V: Humanities and Fine Arts** | 3 |
| AREA IV: Social/Behavioral Sciences** | 3 |
| AREA III: Laboratory Sciences | 4 |
Junior Year (34-37 credits)
| C S 271, Object Oriented Programming | 4 |
| C S 371, Software Development | 4 |
| C S 370, Compiler Construction | 4 |
| C S 482, Database Management I | 3 |
| C S elective, List 1 | 3-4 |
| STAT 251G, STAT 271G, STAT 371, STAT 470, A ST 251G, or A ST 311 | 3-4 |
| AREA IV: Social/Behavioral Sciences** or AREA V: Humanities and Fine Arts** | 3 |
| AREA III: Laboratory Science | 4 |
| Viewing a Wider World** | 3 |
| Upper division from another department | 3-4 |
Senior Year (varied credits)
| C S 448, Senior Project | 4 |
| C S elective, List 1 | 3 |
| Two C S electives, List 2 | 6 |
| Viewing a Wider World** | 3 |
| Upper division from another department | 3-4 |
| Electives as needed to meet minimum credit requirements | |
| * See Lists Above | |
| ** New Mexico State Common Core Requirements |
MINOR: Algorithm Theory (22-23 credits)
| C S 172, Computer Science I | 4 |
| C S 272, Introduction to Data Structures | 4 |
| C S 278, Discrete Mathematics for Computer Science; or any of MATH 278, Discrete Mathematics for Computer Science; MATH 279, Introduction to Finite Mathematics; or MATH 330, Discrete Mathematics | 3-4 |
| C S 370, Compilers and Automata Theory | 4 |
| C S 372, Data Structures and Algorithms | 4 |
| One of the following: C S 470, Functional Programming; C S 472, Logic and Constraint Logic Programming; C S 475, Artificial Intelligence I; C S 476, Computer Graphics I; C S 492, Computer Systems Modeling and Simulation; MATH 377, Introduction to Numerical Methods; MATH 430, Combinatorial Mathematics; MATH 431, Algebraic Coding Theory. |
MINOR: Bioinformatics (26-27 credits)
| BIOL 211G and BIOL 211GL, Cellular and Organismal Biology | 4 |
| C S 172, Computer Science I | 4 |
| C S 272, Introduction to Data Structures | 4 |
| C S 370, Compilers and Automata Theory, or C S 371, Software Development |
4 |
| C S 372, Data Structures and Algorithms | 4 |
| C S 486, Bioinformatics | 3 |
| One of: C S 472, Logic Programming; C S 482, Database Management Systems I: C S 491, Parallel Programming; BIOL 305, Principles of Genetics; CHEM 433, Physical Chemistry I; MATH 331, Introduction to Modern Algebra; MOLB 470, Bioinformatics and Genome Analysis; or PHYS 315, Modern Physics | 3-4 |
MINOR: Computer Systems (25-26 credits)
| C S 172, Computer Science I | 4 |
| C S 271, Object-Oriented Programming, or C S 272, Introduction to Data Structures | 4 |
| C S 273, Machine Programming and Organization | 4 |
| C S 278, Discrete Mathematics for Computer Science; or any of MATH 278, Discrete Mathematics for Computer Science; MATH 279, Introduction to Finite Mathematics; or MATH 330, Discrete Mathematics | 3-4 |
| C S 370, Compilers and Automata Theory, or C S 371, Software Development. |
4 |
| C S 473, Architectural Concepts I, or C S 474, Operating Systems I | 3 |
| C S 476, Computer Graphics I, or C S 484, Computer Networks I, C S 480 Linux System Administration, or C S 491, Parallel Programming | 3 |
MINOR: Software Development (21-23 credits)
| C S 172, Computer Science I | 4 |
| C S 271, Object-Oriented Programming, or C S 272, Introduction to Data Structures | 4 |
| C S 278, Discrete Mathematics for Computer Science; or any of MATH 278, Discrete Mathematics for Computer Science; MATH 279, Introduction to Finite Mathematics; or MATH 330, Discrete Mathematics | 3-4 |
| C S 371, Software Development. | 4 |
| Two of: C S 370, Compilers and Automata Theory; C S 470, Functional Programming; C S 472, Logic and Constraint Logic Programming; C S 474, Operating Systems I; C S 475, Artificial Intelligence I; C S 476, Computer Graphics I; C S 482, Database Management Systems I; C S 484, Computer Networks I; C S 485, User Interface Design; C S 491, Parallel Programming | 6-7 |
Note: A student cannot earn more than one of these minors unless he/she passes at least 6 credits in the second minor beyond the requirements of the first minor. The maximum number of these minors that a student may earn is two. Most courses for the minors listed above have prerequisites. Please check the undergraduate catalog for individual course prerequisites.
Students interested in pursuing a computer science minor are encouraged to pick up more information at the departmental office.
