Computer Science Major: Algorithms Option (B.A.)
https://ceps.unh.edu/computer-science/program/ba/computer-science-major-algorithms-option
The B.A. in Computer Science will allow students to combine the study of computer science with the study of another field. Given the emergence of computational approaches to virtually all areas of scholarship and creative expression, it is important to offer this flexibility. The three tracks in the B.A. program contain the same computer science core as the B.S. program, but give more control to the student to choose the complementary and advanced courses.
Degree Requirements
All Major, Option and Elective Requirements as indicated.
*Major GPA requirements as indicated.
Major Requirements
Computer science majors must maintain an overall grade-point average of 2.0 or better in all required computer science, mathematics, and computer engineering courses in order to graduate. If at the end of any semester, including the first, a student's cumulative grade-point average in these courses falls below 2.0, the student may not be allowed to continue as a CS major.
The following courses must be passed with a grade of C- or better: CS 410C, CS 410P, CS 415, CS 416, CS 420, CS 515, CS 520, IT 403
If a student wishing to transfer into the computer science major has any coursework that is applicable to the major, the grades in those courses must satisfy the minimum grade requirements for the B.S. degree in computer science. The student must have an overall grade-point average of 2.0 or better in all courses taken at the university.
Code | Title | Credits |
---|---|---|
Computer Science Courses | ||
CS 400 | Introduction to Computing | 2 |
CS 415 | Introduction to Computer Science I | 4 |
or CS 410P | Introduction to Scientific Programming/Python | |
or CS 410C | Introduction to Scientific Programming/C | |
CS 416 | Introduction to Computer Science II | 4 |
CS 420 | Foundations of Programming for Digital Systems | 4 |
IT 403 | Introduction to Internet Technologies | 4 |
CS 501 | Professional Ethics and Communication in Technology-related Fields | 4 |
CS 515 | Data Structures and Introduction to Algorithms | 4 |
CS 518 | Introduction to Software Engineering | 4 |
CS 520 | Computer Organization and System-Level Programming | 4 |
CS 527 | Fundamentals of Cybersecurity | 4 |
CS 619 | Introduction to Object-Oriented Design and Development | 4 |
CS 791 & CS 792 | Senior Project I and Senior Project II | 4 |
or CS 799 | Thesis | |
Computer Science Electives | ||
Select three additional CS courses numbered 690-799 | 12 | |
Mathematics Courses | ||
MATH 425 | Calculus I | 4 |
MATH 531 | Mathematical Proof | 4 |
MATH 539 | Introduction to Statistical Analysis | 4 |
or MATH 644 | Statistics for Engineers and Scientists | |
CS 659 | Introduction to the Theory of Computation | 4 |
Science Courses 1 | ||
One Discovery Biological Science (BS) with Discovery Lab | 4 | |
One Discovery Physical Science (PS) with Discovery Lab | 4 | |
Discovery requirements not already covered by required courses | 20 | |
Total Credits | 102 |
- 1
Courses must carry the Discovery attributes of Biological Science or Physical Science and include Discovery lab (DLAB).
Sample Degree Plan
First Year | ||
---|---|---|
Fall | Credits | |
CS 400 | Introduction to Computing | 2 |
CS 415 | Introduction to Computer Science I | 4 |
IT 403 | Introduction to Internet Technologies | 4 |
MATH 425 | Calculus I | 4 |
Discovery I (or Foreign Language) | 4 | |
Credits | 18 | |
Spring | ||
CS 416 | Introduction to Computer Science II | 4 |
CS 420 | Foundations of Programming for Digital Systems | 4 |
MATH 539 or MATH 531 | Introduction to Statistical Analysis or Mathematical Proof | 4 |
ENGL 401 | First-Year Writing | 4 |
Credits | 16 | |
Second Year | ||
Fall | ||
CS 515 | Data Structures and Introduction to Algorithms | 4 |
CS 518 or CS 527 | Introduction to Software Engineering or Fundamentals of Cybersecurity | 4 |
CS 501 | Professional Ethics and Communication in Technology-related Fields (or Discovery II) | 4 |
MATH 531 or MATH 539 | Mathematical Proof or Introduction to Statistical Analysis | 4 |
Credits | 16 | |
Spring | ||
CS 520 | Computer Organization and System-Level Programming | 4 |
CS 527 or CS 518 | Fundamentals of Cybersecurity or Introduction to Software Engineering | 4 |
Discovery II (or CS 501) | 4 | |
Discovery III (or Foreign Language) | 4 | |
Credits | 16 | |
Third Year | ||
Fall | ||
CS 619 | Introduction to Object-Oriented Design and Development | 4 |
CS 659 | Introduction to the Theory of Computation | 4 |
CS 700-level Elective I | 4 | |
Discovery IV | 4 | |
Credits | 16 | |
Spring | ||
CS 700-level Elective II | 4 | |
Discovery V | 4 | |
General Elective I | 4 | |
General Elective II | 4 | |
Credits | 16 | |
Fourth Year | ||
Fall | ||
CS 791 | Senior Project I | 2 |
CS 700-level Elective III | 4 | |
Discovery VI | 4 | |
General Elective III | 4 | |
General Elective IV | 4 | |
Credits | 18 | |
Spring | ||
CS 792 | Senior Project II | 2 |
Discovery VII | 4 | |
General Elective V | 4 | |
General Elective VI | 4 | |
Credits | 14 | |
Total Credits | 130 |
Discovery (7): Historical Perspectives, Humanities, Fine and Performing Arts, Social Science, World Cultures, Physical Science Discovery Lab, Biological Science Discovery Lab.
One Discovery or General Elective course must have the Writing Intensive (WI) attribute.
Graduates of the UNH B.A. CS programs will have an ability to:
- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged in activities appropriate to the program's discipline.
- Apply computer science theory and software development fundamentals to produce computing-based solutions.
- Learn independently about new technologies, and have the skills needed to understand them.