COLLEGE of ARTS and SCIENCES
COMPUTER SCIENCE
Professor Desh Ranjan, department head
Professor Leung, Pontelli; Associate Professors Cook, Hartley, Leung; Tran; Assistant Professors Bhattacharya, He, Pfeiffer, Pivkina, Song, Villaverde;
College Professor Steiner
(575) 646-3723
DEGREE: Bachelor of Science
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
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 171, Algorithmic Computation | 4 |
| C S 271, Introduction to 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 Structures | 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 451, Functional Programming; C S 461, Logic Programming; C S 475, Artificial Intelligence I; C S 476, Computer Graphics I; 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 Information |
6* |
| One of the following: C S 451, Functional Programming; C S 461, Logic Programming; C S 475, Artificial Intelligence I; C S 476, Computer Graphics I; 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 or MATH 291, Calculus and Analytical Geometry; C S 492, Computer Systems Modeling and Information; MATH 377, Introduction to Numerical Methods; MATH 430, Combinatorial Mathematics; MATH 454, Mathematical Logic; MATH 480, Vector Spaces and Matrix Algebra or E E 464, Software Engineering 1; E E 466, Modern Digital System Design, E E 467, High Performance Computers; or BIOL 111G/111L, Natural History of Life/ Lab; BIOL 211G/211L, Cellular and Organismal Biology/Lab; or CHEM 111, General Chemistry I; CHEM 112, General Chemistry II; CHEM 114, General Chemistry for Engineers; or PHYS 216/216L, Engineering Physics/Lab | 3-5* |
Nondepartmental Requirements (29-39 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 |
| Second Language: Any 112/113 foreign language course (may require a 111 course as a prerequisite), or a departmental waiver acknowledging existing proficiency in a foreign language | 8 |
| MATH 280, Introduction to Linear Algebra, or MATH 480, Vector Spaces and Matrix Algebra | 3 |
| MATH 191-192, Calculus and Analytic Geometry I, II | 6 |
| 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* |
| STAT 470, Probability: Theory and Application, or STAT 371, Statistics for Engineers and Scientists I | 4 |
| Two lab science courses: PHYS 215/215L, Engineering Physics I/Lab; and one of the following: ASTR 110G, Introduction to Astronomy; BIOL 111G/111L, Natural History of Life/Lab; BIOL 211G/211L, Cellular and Organismal Biology/Lab; or CHEM 111, General Chemistry I; CHEM 112, General Chemistry II; CHEM 114, General Chemistry for Engineers; or PHYS 216/216L, 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 191.
Freshman Year (30 credits)
| C S 171, Algorithmic Computation | 4 |
| C S 272, Introduction to Data Structures | 4 |
| C S 278, Discrete Structures | 4 |
| ENGL 111G, Rhetoric and Composition | 4 |
| Foreign Language 111-112 | 8 |
| Historical Perspectives** | 3 |
| MATH 191, Calculus I | 3 |
Sophomore Year (34 credits)
| C S 271, Object Oriented Programming | 4 |
| C S 273, Machine Programming | 4 |
| C S 371, Software Development | 4 |
| Liberal Studies*** | 3 |
| Social Analysis** | 3 |
| Foreign Language 211-212 | 6 |
| MATH 192, Calculus II | 3 |
| MATH 280 or Math 480 | 3 |
| PHYS 215, Engineering Physics | 3 |
| PHYS 215L, Engineering Physics Laboratory | 1 |
Junior Year (32 credits)
| C S 370, Compiler Construction | 4 |
| C S 372, Data Structures | 4 |
| C S 471, Programming Languages I | 3 |
| C S 473. Architectural Concepts I | 3 |
| Computer Science Elective* | 3 |
| COMM 265G, Principles of Human Communication | 3 |
| Human Thought and Behavior** | 3 |
| ENGL 218G, Technical and Scientific Communication or ENGL 318G, Advanced Technical and Professional Communication | 3 |
| STAT 371, Statistics for Engineers and Scientists; or STAT 470, Industrial Measurements | 3 |
| Viewing a Wider World** | 3 |
Senior Year (33 credits)
| C S 448: Senior Project | 4 |
| C S 474 - Operating Systems I | 3 |
| Computer Science Elective* | 3 |
| C S / MATH / E E / Science Elective* (upper division) | 3 |
| Math elective* (upper division) | 3 |
| Lab science elective* (for example ASTR 110G, Introduction to Astronomy; or BIOL 111G, Natural History of Life ) | 4 |
| Literature or Fine Arts** | 3 |
| Viewing a Wider World** | 3 |
| Upper division electives to bring total upper division to 54 | 8 |
| Additional electives as needed to bring total credits to | 8 |
| * See Lists Above | |
| ** University General Education Requirements | |
| *** See the College Degree Requirements at the beginning of the Arts and Sciences section of this catalog. | |
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.
MINOR: Algorithm Theory (22-23 credits)
| C S 171, Algorithmic Computation | 4 |
| C S 272, Introduction to Data Systems | 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 | 4 |
| C S 370, Compilers and Automata Theory | 4 |
| C S 372, Data Structures and Algorithms. | 4 |
| Appropriate advanced upper division Computer Science or Mathematics course approved by Computer Science undergraduate advisor | 3 |
MINOR: Bioinformatics (26-27 credits)
| BIOL 211 and BIOL 211 L, Cellular and Organismal Biology | 4 |
| C S 171, Algorithmic Computation | 4 |
| C S 272, Introduction to Data Structures | 4 |
| C S 370, Compilers and Automata Theory, or CS 371, Software Development | 4 |
| C S 372, Data Structures and Algorithms | 4 |
| C S 486, Bioinformatics | 3 |
| One of: C S 461, 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 | 4 |
MINOR: Computer Systems (25-26 credits)
| C S 171, Algorithmic Computation | 4 |
| C S 271, Introduction to Object-Oriented Programming, or C S 272, Introduction to Data Structures | 4 |
| C S 273, Machine Programming and Organization, or C S/E E 363, Computer System Architecture | 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 | 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, or C S 491, Parallel Programming | 3 |
MINOR: Software Development (21-23 credits)
| C S 171, Algorithmic Computation |
4 |
| C S 271, Introduction to 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 | 4 |
| C S 371, Software Development. | 4 |
| Two of: C S 370, Compilers and Automata Theory; C S 451, Functional Programming; C S 461, 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; and/or C S 490, Parallel Computing | 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.