Skip to Content Find it Fast

This browser does not support Cascading Style Sheets.

Undergraduate Course Catalog 2013-2014

College of Engineering and Physical Sciences

» http://www.ceps.unh.edu


Computer Science (CS)

» http://www.cs.unh.edu

» 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, 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, 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)
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)
Science 4: 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    
CS   415   Introduction to Computer Science I   4    
MATH   425   Calculus I   4    
    Other Requirements   8    
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, <title>
BIOL 412, <title>
BIOL 604, <title>
CHEM 403, <title>
CHEM4 04, <title>
BChem 711, <title>

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 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, and graduated its first students in May 2012.  Note:  The CS department has applied for accreditation of the IT program from ABET (Accreditation Board for Engineering and Technology) and will receive notification of its accreditation status by August 2013. 

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; IT 775, Database Technology; 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 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    
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 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
    Depth Track I   4    
CS   501   Professional Ethics and Communication in Technology - related fields   4    
    Second Discipline I   4    
    Discovery   4    
IT   600   Internship     1  
    Free Elective     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; 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 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   506   Intermediate Applications Programming with Visual Basic  
IT   604   Intermediate Web Development  
IT   609   Network/System Administration  
IT   666   Computer Security