Skip to Content Find it Fast

This browser does not support Cascading Style Sheets.

Undergraduate Course Catalog 2014-2015

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, 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