Undergraduate Course Catalog 2014-2015
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, Robert D. Russell, Elizabeth Varki, James L. Weiner
Affiliate Associate Professor: Sylvia Weber Russell, Mihaela Sabin
Research Assistant Professor: Colin Ware
Affiliate Assistant Professor: Michael S. Deutsch, Anthony J. Lapadula, Matthew Plumlee, Kurt Schwehr
Instructor: Michael Gildersleeve, Israel J. Yost
Lecturer: Mark L. Bochert, Ellen M. Hepp, Karl Shump
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 is concerned with computational problem solving. Computer scientists study the nature of computation and its fundamental theories, and develop knowledge and skills in the hardware and software systems that underlie computing tasks, and in the methods, languages, and algorithms necessary to design and implement highly complex software 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 to 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.
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. 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.
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 | |
Other Requirements | 4 | |||
Total | 17 | 16 |
Sophomore Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
CS | 515 | Data Structures | 4 | |
MATH | 531 | Mathematical Proof | 4 | |
Other Requirements | 10 | |||
CS | 520 | Assembly Language Programming and Machine Organization | 4 | |
CS | 659 | Introduction to the Theory of Computation | 4 | |
ECE | 543 | Introduction to Digital Systems | 4 | |
Other Requirements | 4 | |||
Total | 18 | 16 |
Junior Year
Abbreviation | Course Number | Title | Fall | Spring |
---|---|---|---|---|
CS | 619 | Introduction to Software Design and Development | 4 | |
CS | 620 | Operating System Fundamentals | 4 | |
Other Requirements | 8 | |||
ECE | 562 | Computer Organization | 4 | |
CS | 671 | Programming Language Concepts and Features | 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 | |
Other Requirements | 9 | |||
Total | 14 | 15 |
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.
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.
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 MATH 742 or MATH 755, 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
CHEM 403, General Chemistry I
CHEM 404, General Chemistry II
BChem711
Other courses:
ENGL 502, Technical Writing
Discovery requirements not already covered by required courses
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.
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.
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 should be able to:
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/
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.
The IT major requires students to take the equivalent of fifteen courses within the CS department that constitute the core coverage of IT topics. In addition all IT students are required to do at least one internship (IT699).
The IT curriculum also 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 539). A two-semester lab science sequence and a technical writing course (ENGL 502) are also required.
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.
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 | |
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 | 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 |
* Students are required to take a two-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 |
---|---|---|---|---|
CS | 501 | Professional Ethics and Communication in Technology - related Fields | 4 | |
IT | 666 | Computer Security | 4 | |
Second Discipline II | 4 | |||
Discovery | 4 | |||
600-Level IT Elective | 4 | |||
600-Level IT Elective | 4 | |||
Second Discipline III | 4 | |||
Discovery | 4 | |||
IT | 600 | 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 IV | 4 | |||
Discovery | 4 | |||
IT | 710 | Senior Project* | 3 | |
Second Discipline V | 4 | |||
700-Level IT Elective | 4 | |||
Free Elective | 4 | |||
Total | 17 | 15 |
*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; 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 |