Skip to Content Find it Fast

This browser does not support Cascading Style Sheets.

 

Graduate Course Catalog 2012-2013

Graduate School

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


Computer Science (CS)

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

» Click to view course offerings

This program is offered in Durham.

Degrees Offered: M.S., Ph.D., Software Systems Engineering certificate

The Department of Computer Science offers both the M.S. and the Ph.D. in computer science. 

The M.S. program is designed to help students increase the breadth and depth of their computer science knowledge, strengthen their software development skills, and build their research skills. Professionally-oriented students often complete industry internships and the program has an outstanding job placement record for its graduates. Research-oriented students complete an M.S. thesis under the guidance of a faculty mentor, which usually leads to publication and provides clear evidence of the developed research skills useful for obtaining a leadership position in industry or to go on to do a Ph.D.  Applications are welcomed from students whose undergraduate degree is not in computer science. In this case a well-defined set of undergraduate prerequisites must be completed as part of the M.S. program of study.

The Ph.D. program is designed to develop a student's ability to carry out advanced research, as well as ensure that the breadth and depth of computer science knowledge required to obtain a faculty position in academia or a research position in industry or at a national laboratory. Students first work to obtain breadth knowledge and a faculty research mentor. Then, working with their mentor, they carry out advanced work that results in original research publications and a doctoral dissertation.


Certificate Offered: Software Systems Engineering

The department also offers a graduate certificate in software systems engineering.  This certificate is designed to help software developers with 3 to 5 years of experience transition to the higher value position of software systems engineer, also known as software architect, chief engineer, or technical lead. Individuals in this position help their organizations make the tough decisions concerning architecture, performance, availability, security, and safety. To obtain the certificate, students must complete four courses: one required course that provides an overview of the entire software systems engineering process, plus three elective courses, which focus on a particular area, such as requirements engineering, security, architecture, or testing.


Admission Requirements

The computer science graduate program is designed for students with a B.S. degree in computer science. However, applications from students whose undergraduate degree is not in computer science are also welcome. In this case a well-defined set of undergraduate prerequisites must be completed as part of the M.S. program of study. The prerequisites include an introduction to computer science, object-oriented programming, data structures, machine organization, operating systems, and computer science theory.

 

These prerequisites can be satisfied at UNH by the following undergraduate courses:

CS 415 Introduction to Computer Science I
CS 416 Introduction to Computer Science II
CS 515 Data Structures
CS 520 Assembly Language Programming and Machine Organization
CS 620 Operating System Fundamentals
CS 659 Introduction to the Theory of Computation
Some students may need to take additional mathematics classes.

Students without a B.S. or M.S. in computer science are not normally admitted directly into the Ph.D. program, but it is possible to transfer from the M.S. program to the Ph.D. program.

Applicants must submit current scores (within five years) for the general test of the GRE.  Students who have taken computer science courses at UNH can request a waiver of this requirement.


Degree Requirements


M.S. Degree Requirements

The M.S. program has three options: thesis, project, and exam.


M.S. Thesis Option

1. CS 900, Computer Science Seminar.

2. Eight CS graduate courses of at least 3 credits each.

a. Two must be implementation intensive (see list below).
b. Three courses must be chosen from three different breadth groups (see list below).
c. At least two courses must be above 900.

3. Thesis (6 credits). The student must complete a thesis under the supervision of a thesis adviser and a thesis committee of at least three members.


M.S. Project Option

1. CS 900, Computer Science Seminar.

2. Ten CS graduate courses of at least 3 credits each.

a. Two must be implementation intensive (see list below).
b. Four courses must be chosen from four different breadth groups (see list below).
c. At least three courses must be above 900; one of these must be related to the project area.

3. Project (3 credits). The student must complete a project under the supervision of a faculty adviser.


M.S. Exam Option

1. CS 900, Computer Science Seminar.

2. Ten CS graduate courses of at least 3 credits each.

a. Two must be implementation intensive (see list below).
b. Four courses must be chosen from four different breadth groups (see list below).
c. At least three courses must be above 900.

3. Comprehensive exam that includes four different examination topics (see list below).

One topic must be selected from one of the topics in the Theory breadth group (see list below); the other three topics must be selected from three different breadth groups (which can include a second theory topic).


Ph.D. Degree Requirements

1. CS 900, Computer Science Seminar.

2. Seven CS graduate courses (3 credits or more) beyond the M.S. or fifteen CS graduate courses beyond the B.S.

a. Two must be implementation intensive (see list below).
b. All students must take CS 845, Formal Specification and Verification of Software Systems. 

3.  Breadth requirement.  Courses must be taken from at least four breadth groups (see list below), with one of the groups being the Theory group.  Students must obtain a 3.4 GPA in the four breadth courses.  The student designates which four courses are used to compute the GPA.

4. Research tool. A research tool represents knowledge and skills in another discipline that can help the student carry out his or her research plan. This is typically satisfied by taking a non-computer-science graduate level course.

5. Depth requirement. Under the direction of a depth adviser and a depth committee, the student carries out some preliminary research that is likely to lead to a dissertation topic. The student must produce two written reports (a literature survey and a research report) and make a presentation as part of an oral examination on the material.

6. Dissertation. The student must complete original research and present and defend a dissertation describing that research. The research is carried out under the supervision of a faculty member dissertation adviser and a dissertation committee of at least five members, including one from outside the department.


Implementation Intensive Courses

Implementation intensive courses include: CS 812, 820, 830, 835, and 870.


Examination Topic Groups

The list below identifies the seven topic groups used for the M.S. comprehensive exam.

Group: Exam Topics

1. Theory: Formal Specification and Verification, Algorithms

2. Operating Systems:  Advanced Operating Systems

3. Compiler and Language: Compilers

4. Database: Database

5. Artificial Intelligence: Artificial Intelligence

6. Interactive Systems: Graphics

7. Computer Networks:  Computer Networks


Breadth Course Groups

The list below identifies the eight breadth course groups and introductory (800-level) graduate courses in each group. It is also acceptable to satisfy a group requirement by taking an advanced course (900-level) in the specified area. (Note that there are courses in the curriculum that are not in any of the identified groups.)

 

Group: Introductory Course

1. Theory: CS 845, 858

2. Systems: CS 820, 821, 823,

3. Compiler and Language: CS 812, 835, 871

4. Database: CS 875

5. Artificial Intelligence: CS 830

6. Interactive Systems: CS 860, 867, 870

7. Software Engineering: CS 818, 819, 851, 852, 853

8. Networks:  CS 825


Courses


Courses

Abbreviation Course Number Title Credits
CS   800   Internship   1  
CS   812   Compiler Design   3  
CS   818   Software Systems Engineering Process   3  
CS   819   Object-Oriented Design   3  
CS   820   Operating System Programming   3  
CS   821   Operating System Kernel Design   3  
CS   823   Performance Evaluation of Computer Systems   3  
CS   825   Computer Networks   3  
CS   830   Introduction to Artificial Intelligence   3  
CS   835   Introduction to Parallel and Distributed Programming   3  
CS   845   Formal Specification and Verification of Software Systems   3  
CS   851   System Requirements Engineering   3  
CS   852   Software Architecture Concepts   3  
CS   853   Software Project Management   3  
CS   854   System/Software Test and Evaluation   3  
CS   858   Algorithms   3  
CS   860   Introduction to Human-Computer Interaction   3  
CS   867   Interactive Data Visualization   3  
CS   870   Computer Graphics   3  
CS   871   Web Programming Paradigms   3  
CS   875   Database Systems   3  
CS   880   Topics   1 TO 4  
CS   898   Master's Project   3  
CS   899   Master's Thesis   1 TO 6  
CS   900   Graduate Seminar   1  
CS   920   Advanced Operating Systems   3  
CS   925   Advanced Computer Networks   3  
CS   931   Combinatorial Search and Heuristic Optimization   3  
CS   980   Advanced Topics   3  
CS   981   Advanced Topics in Database Systems   3  
CS   986   Advanced Topics in Formal Specification and Verification   3  
CS   988   Advanced Topics in Computer Graphics   3  
CS   989   Advanced Topics in Algorithms   3  
CS   998   Independent Study   1 TO 6  
CS   999   Doctoral Research   0