Undergraduate Course Catalog 2010-2011
College of Engineering and Physical Sciences
» http://www.ceps.unh.edu
Computer Science (CS)
» Click to view course offerings
Chairperson: Philip J. Hatcher
Professor: R. Daniel Bergeron, Philip J. Hatcher, Ted M. Sparr, Colin Ware
Affiliate Professor: Jason H. Moore
Associate Professor: Radim Bartos, Michel Charpentier, Robert D. Russell, Elizabeth Varki, James L. Weiner
Affiliate Associate Professor: Sylvia Weber Russell, Mihaela Sabin
Assistant Professor: Wheeler Ruml
Affiliate Assistant Professor: Michael S. Deutsch, Anthony J. Lapadula, Matthew Plumlee, Kurt Schwehr
Instructor: Michael Gildersleeve, Brian L. Johnson, Israel J. Yost
Lecturer: Mark L. Bochert, Ellen M. Hepp, Karl Shump
Computer Science
Undergraduate students may choose from one of three degree options: The B.S. in computer science, which is designed for students interested in the design and implementation of software systems; the B.S. in computer science: bioinformatics option, which is designed for students who wish to apply computer science expertise in the life sciences; and the B.S. in information technology, which focuses on the application of existing computing technologies to the information needs of organizations and individual computer users.
Bachelor of Science in Computer Science
Computer scientists are concerned with problem-solving in general, with particular emphasis on the design of computer-efficient solutions. This involves a detailed understanding of the nature of algorithms, the software implementation necessary to utilize algorithms on computers, and how algorithms can be combined in a structured manner to form highly complex systems.
The broad objectives for B.S. in Computer Science graduates are:
1. To be competent in formulating and solving computer science problems, including the development of complex software systems;
2. To understand computer science fundamentals along with supporting mathematics and science so they will be prepared for a wide range of jobs and the pursuit of advanced degrees;
3. To be able to function in the workplace with the necessary technical skills and with appropriate oral and written communication skills; and
4. To have a broad education that promotes professional advancement, lifelong personal development, and social responsibility.
The B.S. in computer science program is accredited by the Computing Accreditation Commission of ABET, 111 Market Place, suite 1050, Baltimore, MD 21202-4012, (410) 347-7700.
The program is designed to prepare students for employment and/or graduate study. Most courses require heavy computer use, and the laboratories stress hands-on experience with building software systems.
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. In order to be able to take a CS or MATH course with prerequisites, the prerequisite course(s) must be passed with a grade of a C- or better.
Computer science majors should not take CS 401, CS 403, CS405, or CS410.
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.
The curriculum includes coursework in mathematics, computer engineering, science, and philosophy. 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.
Freshman Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
CS | 400 | Introduction to Computing | 1 | |
CS | 415 | Introduction to Computer Science I | 4 | |
MATH | 425 | Calculus I | 4 | |
444 | Inquiry | 4 | ||
Discovery | 4 | |||
CS | 416 | Introduction to Computer Science II | 4 | |
MATH | 426 | Calculus II | 4 | |
ENGL | 401 | First-Year Writing | 4 | |
Discovery Science* | 4 | |||
Total | 17 | 16 |
*Students are required to take four science courses. You must have at least one course in a biological science and at least one course in a physical science. Two courses must be a sequence and should be chosen from the following list: BIOL 411-412, CHEM 403-404, ESCI 401-402, ESCI 409-402, or PHYS 407-408. The other two courses must be chosen from the following two tables:
Biological Science
Abbreviation | Course Number | Title |
---|---|---|
BIOL | 411 | Principles of Biology I |
BIOL | 412 | Principles of Biology II |
BIOL | 413 | Principles of Biology I (UNH Manchester Course) |
BIOL | 414 | Principles of Biology II (UNH Manchester Course) |
BMS | 412 | Biology of Animals |
ECE | 444 | Bionics |
MICR | 501 | Public Health Microbiology |
PBIO | 412 | Introduction to Botany |
Physical Science:
Abbreviation | Course Number | Title |
---|---|---|
CHEM | 403 | General Chemistry I |
CHEM | 404 | General Chemistry II |
CHEM | 405 | General Chemistry |
ESCI | 409 | Environmental Geology |
ESCI | 501 | Introduction to Oceanography |
ESCI | 401 | Principles of Geology |
ESCI | 402 | Earth History |
NR | 433 | Wildlife Ecology |
NR | 504 | Freshwater Resources |
PHYS | 407 | General Physics I |
PHYS | 408 | General Physics II |
Sophomore Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
CS | 515 | Data Structures | 4 | |
MATH | 531 | Mathematical Proof | 4 | |
Discovery Science | 4 | |||
Discovery | 4 | |||
CS | 520 | Assembly Language Programming and Machine Organization | 4 | |
CS | 659 | Introduction to the Theory of Computation | 4 | |
Discovery Science | 4 | |||
Discovery | 4 | |||
Total | 16 | 16 |
Junior Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
CS | 620 | Operating System Fundamentals | 4 | |
CS | 516 | Introduction to Software Design and Development | 4 | |
Statistics Course* | 4 | |||
PHIL | 424 | Science, Technology and Society (Discovery ETS) | 4 | |
CS | 671 | Programming Language Concepts and Features | 4 | |
Computer Science Theory Course** | 4 | |||
ECE | 543 | Introduction to Digital Systems | 4 | |
CS | 595 | Computer Science Seminar | 2 | |
ENGL | 502 | Technical Writing | 4 | |
Total | 16 | 18 |
*The statistics requirement can be fulfilled by MATH 539, Introduction to Statistical Analysis, or MATH 644, Statistics for Engineers and Scientists.
**The CS theory requirement can be fulfilled by CS 712, Compiler Design, CS 745 Formal Specification and Verification of Software Systems, or CS 758, Algorithms.
Senior Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
CS | 719 | Object-Oriented Methodology* | 4 | |
CS | Writing Intensive Course | 4 | ||
ECE | 562 | Computer Organization | 4 | |
Discovery | 4 | |||
CS | 700-Level | Elective | 4 | |
CS | 700-Level | Elective | 4 | |
Discovery Science | 4 | |||
Free Elective | 1 | |||
Total | 16 | 13 |
*This is the senior capstone course.
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, biochemistry, and statistics.
Computer science: bioinformatics majors must maintain an overall grade-point average of 2.0 or better in all required computer science, mathematics, computer engineering, biology, and biochemistry 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 computer science: bioinformatics major. In order to be able to take a CS or MATH course with prerequisites, the prerequisite course(s) must be passed with a grade of a C- or better.
Computer bioinformatics majors should not take CS 401, CS 403, CS 405, or CS 410.
If a student wishing to transfer into the computer science: bioinformatics 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.
The broad objectives for B.S. in Computer Science: Bioinformatics graduates are:
1. To be competent in formulating and solving computer science problems, including the development of non-trivial software systems;
2. To understand computer science fundamentals along with supporting mathematics and science so they will be prepared for a wide range of jobs in the biomedical industry and the pursuit of advanced degrees in both computer science and bioinformatics;
3. To be able to function in the workplace with the necessary technical skills and with appropriate oral and written communication skills; and
4. To have a broad education that promotes professional advancement, lifelong personal development, and social responsibility.
The B.S. in computer science: bioinformatics program is accredited by the Computing Accreditation Commission of ABET, 111 Market Place, suite 1050, Baltimore, MD 21202-4012, (410) 347-7700.
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.
Freshman Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
CS | 400 | Introduction to Computing | 1 | |
CS | 415 | Introduction to Computer Science I | 4 | |
MATH | 425 | Calculus I | 4 | |
BIOL | 411 | Principles of Biology I | 4 | |
444 | Inquiry | 4 | ||
CS | 416 | Introduction to Computer Science II | 4 | |
MATH | 426 | Calculus II | 4 | |
BIOL | 412 | Principles of Biology II | 4 | |
ENGL | 401 | First-Year Writing | 4 | |
Total | 17 | 16 |
Sophomore Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
CS | 515 | Data Structures | 4 | |
MATH | 531 | Mathematical Proof | 4 | |
CHEM | 403 | General Chemistry I | 4 | |
Discovery | 4 | |||
CS | 520 | Assembly Language Programming and Machine Organization | 4 | |
CS | 659 | Introduction to the Theory of Computation | 4 | |
CHEM | 404 | General Chemistry II | 4 | |
Discovery | 4 | |||
Total | 16 | 16 |
Junior Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
CS | 620 | Operating Systems Fundamentals | 4 | |
Statistics Course* | 4 | |||
CS | 516 | Introduction to Software Design and Development | 4 | |
PHIL | 424 | Science, Technology and Society (Discovery ETS) | 4 | |
CS | 595 | Computer Science Seminar | 2 | |
CS | 671 | Programming Language Concepts and Features | 4 | |
Computer Science Theory Course** | 4 | |||
BIOL | 604 | Principles of Genetics | 4 | |
ENGL | 502 | Technical Writing | 4 | |
Total | 18 | 16 |
*The Statistics requirement can be fulfilled by MATH 539, Introduction to Statistical Analysis, or MATH 644, Statistics for Engineers and Scientists.
**The CS theory requirement can be fulfilled by CS 712, Compiler Design, CS 745 Formal Specification and Verification of Software Systems, or CS 758, Algorithms.
Senior Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
CS | 719 | Object-Oriented Methodology* | 4 | |
BCHEM | 711 | Genomics and Bioinformatics | 4 | |
700-Level | Statistics Course** | 4 | ||
Discovery | 4 | |||
CS | Writing Intensive Course*** | 4 | ||
CS | 775 | Database Systems | 4 | |
ECE | 543 | Introduction to Digital Systems | 4 | |
Discovery | 4 | |||
Total | 16 | 16 |
*This is the senior capstone course.
**This requirement can be fulfilled by the following courses: MATH 739, Applied Regression Analysis; MATH 742, Multivariate Statistical Methods; or MATH 755, Probability and Stochastic Processes with Applications.
***This course must include a project that addresses bioinformatics issues.
The 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.
Note: All courses for the minor must be completed with a C- or higher.
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 | 516 | 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.
The 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. Potential careers include network administrator, database developer, system administrator, and webmaster.
IT programs aim 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. Specifically, within five years of graduation a student must be able to:
1. Explain and apply appropriate information technologies and employ appropriate methodologies to help an individual or organization achieve its goals and objectives;
2. Manage the information technology resources of an organization;
3. Anticipate the changing direction of information technology and evaluate and communicate the likely utility of new technologies to an organization;
4. Demonstrate professional advancement, lifelong personal development, and social responsibility.
The B.S. in information technology degree program was approved by the College of Engineering and Physical Sciences in May 2008 and the USNH Board of Trustees in fall 2008. The university welcomed its first IT class in fall 2009. Note: the B.S. in information technology degree program has not yet been accredited by the Accreditation Board for Engineering and Technology because ABET requires new programs to graduate students before they are eligible - the CS department will apply for accreditation when it graduates its first class in May 2012.
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. All required IT courses offered by the CS department at the 400-600 level must be passed with a C- or better.
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.
The IT major requires students to take the equivalent of 10 courses within the CS department that constitute the core coverage of the breadth of IT topics. In addition, students much choose a depth track, consisting of three courses that focus on a more specialized area within the IT field. The CS department currently offers a Web track and an Admin track. Students who choose the Web Track must take IT 604, Intermediate Web Development; CS 771, Web Programming Paradigms; and IT 704, Advanced Web Topics. Students who opt for the Admin Track must take IT 609, Network/System Administration; IT 725, Network Technology; and IT 775, Database Technology.
The IT curriculum includes a number of courses outside of the CS department. Two courses in mathematics are required: Calculus I (MATH 425) and a statistics course (Math 439). A two-semester lab science sequence is also required, as are a philosophy course (PHIL 424) and a technical writing course (ENGL 502).
In addition, by the end of their sophomore year, 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 five 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.
Freshman Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
CS | 400 | Introduction to Computing | 1 | |
MATH | 425 | Calculus I (Discovery) | 4 | |
CS | 403 | Weaving the Web (Discovery ETS) | 4 | |
CS | 415 | Introduction to Computer Science I | 4 | |
Discovery | 4 | |||
IT | 506 | Intermediate Applications Programming with Visual Basic (or CS 416 Introduction to Computer Science II) | 4 | |
IT | 502 | Intermediate Web Design* | 4 | |
ENGL | 401 | First-Year Writing (Discovery) | 4 | |
Discovery | 4 | |||
Total | 17 | 16 |
*Meets Discovery Inquiry requirement.
Sophomore Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
MATH | 439 | Statistical Discovery for Everyone | 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 | |
Discovery | 4 | |||
Total | 16 | 16 |
Students are required to take a 2 course lab sequence chosen from the following list: BIOL 411-412, CHEM 403-404, ESCI 401-402, ESCI 409-402, PHYS 401-402, or PHYS 407-408.
Junior Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
Depth Track I | 4 | |||
PHIL | 424 | Science, Technology and Society | 4 | |
Second Discipline I | 4 | |||
Discovery | 4 | |||
CS | 600 | Internship | 1 | |
CS | 595 | Computer Science Seminar | 2 | |
IT | 666 | Computer Security | 4 | |
Second Discipline II | 4 | |||
Discovery | 4 | |||
Total | 16 | 15 |
Senior Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
Depth Track II | 4 | |||
Second Discipline III | 4 | |||
Second Discipline IV | 4 | |||
IT | 705 | Project Management | 4 | |
IT | 710 | Senior Project* | 4 | |
Second Discipline V | 4 | |||
Depth Track III | 4 | |||
Free Elective | 4 | |||
Total | 16 | 16 |
*Meets Discovery Capstone Experience requirement.
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; and, the IT minor, which is tailored to grow students' understanding of computer and information technology applications, helps prepares 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 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 supervisor.
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 |
CS | 503 | Introduction to Web Programming |
3. Three courses from the following list | ||
CS | 403 | Weaving the Web: Creating Content for the World Wide Web |
IT | 502 | Intermediate Web Design |
IT | 505 | Database Programming |
IT | 506 | Intermediate Applications Programming with Visual Basic |
IT | 604 | Intermediate Web Development |
IT | 609 | Network/System Administration |
IT | 666 | Computer Security |