Undergraduate Course Catalog 2015-2016
College of Engineering and Physical Sciences
» http://www.ceps.unh.edu
Computer Science (CS)
» Click to view course offerings
Chairperson: Radim Bartos
Professor: R. Daniel Bergeron, Philip J. Hatcher
Affiliate Professor: Jason H. Moore
Associate Professor: Radim Bartos, Michel Charpentier, Wheeler Ruml, Elizabeth Varki, James L. Weiner
Affiliate Associate Professor: Sylvia Weber Russell
Affiliate Assistant Professor: Michael S. Deutsch, Kurt Schwehr
Lecturer: Mark L. Bochert, Michael Gildersleeve, Ellen M. Hepp, Collette Mathias Powers, Karl Shump, Israel J. Yost
Computer Science
Undergraduate students may choose from one of two degree options: the B.S. in computer science, which is intended for students interested in the design and implementation of software systems, or the B.S. in information technology, which focuses on the application of existing computing technologies to meet the information needs of organizations and individual computer users. The B.S. in computer science also offers a bioinformatics option, which is designed for students who wish to apply computer science expertise in the life sciences.
Bachelor of Science in Computer Science
Computer science focuses on problem solving with a particular emphasis on the design of computer-efficient solutions. Within a few years of obtaining a bachelor's degree in either of the two computer science options, our alumni will have:
- Engaged in successful careers in diverse areas of software development and will already have, or be pursuing, advanced degrees computer science or related fields
- Applied the full range of core computer science concepts and techniques to fill software development needs of an organization or firm;
- Adapted to changing directions of computing technology and used state-of-the-art techniques to confront new problems effectively
- Navigated the complex interconnections between software and the goals and constraints of the organization/firm served
- Participated responsibly in the pervasive and changing role of computing technology in global society as both software engineers and citizens
- Operated professionally in a team environment and assumed leadership roles
The B.S. in computer science programs are accredited by the Computing Accreditation Commission of ABET, 111 Market Place, suite 1050, Baltimore, MD 21202-4012, (410) 347-7700.
B.S. in computer science requirements:
Computer science majors must complete the following coursework in computer science, mathematics, computer engineering, science, English, and philosophy (all courses are 4 credits unless indicated otherwise):
Computer science courses:
CS 400, Introduction to Computing (1 cr)
IT 403, Introduction to Internet Technologies
CS 415, Introduction to Computer Science I
CS 416, Introduction to Computer Science II
CS 501, Professional Ethics and Communication in Technology Related Fields
CS 515, Data Structures
CS 520, Assembly Language Programming and Machine Organization
CS 619, Introduction to Software Design and Development
CS 620, Operating System Fundamentals
CS 659, Introduction to the Theory of Computation
CS 671, Programming Language Concepts and Features
CS 7.., CS elective 1
CS 7.., CS elective 2
CS 7.., CS elective 3
CS 7.., CS elective 4
CS 791, Senior Project I (senior capstone experience) (2 cr)
CS 792, Senior Project II (senior capstone experience) (2 cr)
A professional elective, chosen in a list of approved courses.
One of the four CS electives must be "implementation intensive" (CS 712, CS 720, CS 730, CS 735, CS 770); another one must be "theory" (CS 712, CS 745, CS 758).
Mathematics courses:
MATH 425, Calculus I
MATH 426, Calculus II
MATH 531, Mathematical Proof
MATH 539 or MATH 644, Statistics
Electrical and computer engineering courses:
ECE 543, Introduction to Digital Systems
ECE 562, Computer Organization
Science courses:
Science 1 and 2 (two-course sequence): BIOL 411-412 or CHEM 403-404 or ESCI 401-402 or ESCI 409-402 or PHYS 407-408
Science 3: any Discovery lab science course (DLAB)
Other courses:
ENGL 502, Technical Writing
Discovery requirements not already covered by required courses
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: IT 403, CS 415, CS 416, CS 515 and CS 520.
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.
First Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
CS | 400 | Introduction to Computing | 1 | |
IT | 403 | Introduction to Internet Technologies | 4 | |
CS | 415 | Introduction to Computer Science I | 4 | |
MATH | 425 | Calculus I | 4 | |
Other Requirements | 4 | |||
CS | 416 | Introduction to Computer Science II | 4 | |
MATH | 426 | Calculus II | 4 | |
ENGL | 401 | First-Year Writing | 4 | |
ECE | 543 | Introduction to Digital Systems | 4 | |
Total | 17 | 16 |
Sophomore Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
CS | 515 | Data Structures | 4 | |
MATH | 531 | Mathematical Proof | 4 | |
Other Requirements | 8 | |||
CS | 520 | Assembly Language Programming and Machine Organization | 4 | |
CS | 659 | Introduction to the Theory of Computation | 4 | |
Other Requirements | 8 | |||
Total | 16 | 16 |
Junior Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
CS | 620 | Operating System Fundamentals | 4 | |
CS | 671 | Programming Language Concepts and Features | 4 | |
Other Requirements | 8 | |||
ECE | 562 | Computer Organization | 4 | |
CS | 619 | Introduction to Software Design and Development | 4 | |
CS | 7... | CS elective 1 | 4 | |
Other Requirements | 4 | |||
Total | 16 | 16 |
Senior Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
CS | 791 | Senior Project I | 2 | |
CS | 7.. | CS Elective 2 | 4 | |
CS | 7.. | CS Elective 3 | 4 | |
Other Requirements | 4 | |||
CS | 792 | Senior Project II | 2 | |
CS | 7.. | CS Elective 4 | 4 | |
Professional Elective | 4 | |||
Other Requirements | 4 | |||
Total | 14 | 14 |
Bachelor of Science in Computer Science: Bioinformatics Option
The bioinformatics field is an increasingly important sub-discipline in computer science. The demand for computer science graduates who can apply their knowledge in the life sciences is significant and is expected to continue to grow. Students who choose this path are still computer science majors but have a concentration in the life sciences. The option has the same core as the B.S. program but requires appropriate coursework in chemistry, biology, genetics, and statistics.
Bioinformatics Requirements
Bioinformatics students must complete the following coursework in computer science, mathematics, computer engineering, science, and English.(all courses are 4 credits unless indicated otherwise):
Computer science courses:
CS400, CS415, CS416, CS 501, CS515, CS520, CS619, CS620, CS659, CS671
CS 758, Algorithms (CS theory)
CS 7.., CS WI elective with project in bioinformatics
CS 775, Database Systems
CS 791, Senior Project I (senior capstone experience) (2 cr)
CS 792, Senior Project II (senior capstone experience) (2 cr)
Mathematics courses:
MATH 425, Calculus I
MATH 426, Calculus II
MATH 531, Mathematical Proof
MATH 539 or MATH 644, Statistics 1
MATH 739 or, Statistics 2
Electrical and computer engineering course:
ECE543, Introduction to Digital Systems
Science courses:
BIOL 411, Introductory Biology: Molecular and Cellular
BIOL 412, Introductory Biology: Evolution, Biodiversity and Ecology
BIOL 604/GEN 604, Genetics
CHEM 405, Chemical Principles for Everyone
GEN 711, Genomics and Bioinformatics
Other courses:
ENGL 502, Technical Writing
Discovery requirements not already covered by required courses
Minor in Computer Science
The minor in computer science is designed for students in other majors who want to learn the fundamentals of designing and implementing computer software.
Credit toward the minor will be given only for courses passed with C- or better, and a 2.0 grade-point average must be maintained in courses for the minor. Courses taken on the pass/fail basis may not be used for the minor. Students should declare their intent to earn a minor as early as possible and no later than the end of the junior year. During the final term, an application should be made to the dean of the student’s major college to have the minor shown on the academic record. Students must consult with their major adviser and also the minor supervisor.
Requirements:
Abbreviation | Course Number | Title |
---|---|---|
CS | 415 | Introduction to Computer Science I |
CS | 416 | Introduction to Computer Science II |
CS | 515 | Data Structures |
Two additional courses chosen from:
Abbreviation | Course Number | Title |
---|---|---|
CS | 619 | Introduction to Software Design and Development |
CS | 520 | Assembly Language Programming and Machine Organization |
CS | 620 | Operating System Fundamentals |
*CS | 659 | Introduction to the Theory of Computation |
CS | 671 | Programming Language Concepts and Features |
An approved CS 700-level course |
*CS 659 has mathematics prerequisites: MATH 425, MATH 426, and MATH 531.
Bachelor of Science in Information Technology
Information technology is concerned primarily with the application of existing computing technologies to the information needs of organizations and individual computer users. The IT program aims to provide graduates with the skills and knowledge to take on appropriate professional positions in information technology upon graduation and grow into leadership positions in the field. Potential careers include network administrator, database developer, system administrator, and webmaster.
The broad objectives for B.S. in information technology graduates are:
1. apply the full range of core IT concepts and techniques to fill the IT needs of an organization and be prepared to assume managerial and other advanced responsibilities,2. confront new problems effectively and anticipate the changing directions of technology,
3. communicate effectively with diverse stakeholders as well as function appropriately in a team environment,
4. navigate within the complex relationships between IT and larger organizational goals, and
5. understand the pervasive and changing role of computing technology in global society, and participate responsibly as both IT professional and citizen.
The B.S. in information technology program is accredited by the Computing Accreditation Commission of ABET, 111 Market Place, suite 1050, Baltimore, MD 21202-4012. Phone: (410) 347-7700. www.abet.org/.
B.S. in information technology requirements:
Information technology courses:
CS 400, Introduction to Computing (1 cr)
IT 403, Introduction to Internet Technologies
CS 415, Introduction to Computer Science I
CS 416, Introduction to Computer Science II
CS 501, Professional Ethics and Communication in Technology Related Fields
IT 502, Intermediate Web Design
IT 505, Database Programming
IT 520, Computer Architecture
IT 609, Network/Systems Administration
IT 666, Computer Security
IT 699, Internship (1 cr)
IT 6.., IT elective 1
IT 6.., IT elective 2
IT 7.., IT elective 3
IT 705, Project Management for Information Technology
IT 709, Introduction to the Senior Project (senior capstone experience) (1 cr)
IT 710, Senior Project (senior capstone experience) (3 cr)
IT 775, Database Technology
Mathematics courses:
MATH 425, Calculus I
MATH 539, Introduction to Statistical Analysis
Other courses:
Science 1 and 2: (two-course sequence): BIOL 411-412 or CHEM 403-404 or ESCI 401-402 or ESCI 409-402 or PHYS 401-402
ENGL 502, Technical Writing
Second discipline (see below for details)
Information technology majors must maintain an overall grade-point average of 2.0 or better in all required information technology and computer science required 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 an IT major. The following courses must be passed with a grade of C- or better in order to meet IT major requirements: IT 403, CS415, CS 416, IT 502, IT 505, IT 520.
If a student wishing to transfer into the information technology 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 information technology. The student must have an overall grade-point average of 2.0 or better in all courses taken at the University.
In addition to the above requirements, each student must choose a second discipline in a particular domain outside of IT to which the student’s IT skills can be applied. Second disciplines (typically four courses) have been defined by the CS department in such areas as business administration, health management and policy, and justice studies. If a student is interested in an area that is not currently defined, the option of a student-designed second discipline is also available.
The following is a sample schedule depicting the necessary requirements and the layout of the curriculum. Students must consult with their advisers in order to come up with the proper schedule for themselves.
First Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
CS | 400 | Introduction to Computing | 1 | |
MATH | 425 | Calculus I (Discovery) | 4 | |
IT | 403 | Introduction to Internet Technologies | 4 | |
CS | 415 | Introduction to Computer Science I | 4 | |
Discovery | 4 | |||
CS | 416 | Intro to Computer Science II | 4 | |
IT | 502 | Intermediate Web Design | 4 | |
Discovery | 4 | |||
ENGL | 401 | First-Year Writing (Discovery) | 4 | |
Total | 17 | 16 |
Sophomore Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
MATH | 539 | Introduction to Statistical Analysis | 4 | |
IT | 505 | Database Programming | 4 | |
Discovery | 4 | |||
Lab Science I & II (Discovery) | 4 | 4 | ||
IT | 520 | Computer Architecture | 4 | |
ENGL | 502 | Technical Writing | 4 | |
Second Discipline I | 4 | |||
Total | 16 | 16 |
Junior Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
CS | 501 | Professional Ethics and Communication in Technology-related Fields | 4 | |
IT | 666 | Computer Security | 4 | |
IT | 609 | Network/Systems Administration | 4 | |
Discovery | 4 | |||
600-Level IT Elective | 4 | |||
600-Level IT Elective | 4 | |||
Second Discipline II | 4 | |||
Discovery | 4 | |||
IT | 699 | Internship | 1 | |
Total | 16 | 17 |
Senior Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
IT | 709 | Intro to Senior Project | 1 | |
IT | 705 | Project Management | 4 | |
IT | 775 | Database Technology | 4 | |
Second Discipline III | 4 | |||
Discovery | 4 | |||
IT | 710 | Senior Project | 3 | |
Second Discipline IV | 4 | |||
700-Level IT Elective | 4 | |||
Free Elective | 4 | |||
Total | 17 | 15 |
Minor in Information Technology
The information technology (IT) minor is a way for students in non-technical majors to bridge the gap between a primarily non-technical education and a technical world. Graduates from a variety of fields are discovering that there is a great need to have computer competency in addition to the knowledge they gain in their major; the IT minor, which is tailored to grow students’ understanding of computer and information technology applications, helps prepare students for the future.
Students who minor in IT must complete a minimum of 20 credits of IT courses. All students must take IT 520, Computer Architecture, as well as an approved introductory programming course. The other three courses may be chosen from the list below.
Credit toward the minor will be given only for courses passed with C- or better, and a 2.0 grade-point average must be maintained in courses for the minor. Courses taken on the pass/fail basis may not be used for the minor. Students should declare their intent to earn a minor as early as possible and no later than the end of the junior year. During the final term, an application should be made to the dean of the student’s major college to have the minor shown on the academic record. Students must consult with their major adviser and also the minor coordinator.
Requirements:
Abbreviation | Course Number | Title |
---|---|---|
1. | ||
IT | 520 | Computer Architecture |
2. A programming course chosen from the following list: | ||
CS | 405 | Introduction to Applications Programming with Visual Basic |
CS | 410 | Introduction to Scientific Programming |
3. Three courses from the following list: | ||
IT | 403 | Introduction to Internet Technologies |
IT | 502 | Intermediate Web Design |
IT | 505 | Database Programming |
IT | 604 | Intermediate Web Development |
IT | 609 | Network/System Administration |
IT | 666 | Computer Security |