CS Graduate Courses

CS 800 - Internship

  • Credits: 1.00
  • Provides an opportunity to apply academic experience in settings associated with future professional employment. A written proposal for the internship must be approved by the department chair. The proposal must specify what the student will learn from the internship, why the student is properly prepared for the internship, and what supervision will be available to the student during the internship. A mid-semester report and a final report are required. Permission required. May be repeated up to a maximum of 3 credits. Cr/F.

CS 812 - Compiler Design

  • Credits: 3.00
  • Formal languages and formal techniques for syntax analysis and parsing; organization of the compiler and its data structures; code generation. LL and LR parsing; automatic generation of scanners and parsers from high-level descriptions. Implementation of features from imperative and object-oriented languages. Students are required to design and implement a compiler for a simple language. This course is implementation-intensive. Prereq: Machine Organization; Theory of Computation.

CS 819 - Advanced Programming with Object-Oriented Design

  • Credits: 3.00
  • Advanced problem solving using software design, development and testing techniques that follow the software development life cycle. Object-oriented programming and design. Advanced data structures and algorithm analysis. Prereq: strong prog. skills, exp. with C/C++, machine organization.

CS 823 - Performance Evaluation of Computer Systems

  • Credits: 3.00
  • This class introduces the main concepts, techniques, and tools needed to evaluate the performance of computer systems under various configurations and workloads. The techniques allow one to perform capacity planning based on quality of service requirements of users and workload characteristics. The course is mainly based on the use of analytic queuing network models of computer systems. The performance techniques are applied to study the performance of centralized, distributed, parallel, and client/server systems. The course also discusses performance measuring tools for operating systems such as Unix and Windows NT. Prereq: operating systems fundamentals or equivalent.

CS 825 - Computer Networks

  • Credits: 3.00
  • Introduction to local, metropolitan, and wide area networks using the standard OSI reference model as a framework. Introduction to the Internet protocol suite and to network tools and programming. Discussion of various networking technologies.

CS 830 - Introduction to Artificial Intelligence

  • Credits: 3.00
  • In-depth introduction to artificial intelligence concentrating on aspects of intelligent problem-solving. Topics include situated agents, advanced search techniques, knowledge representations, logical reasoning techniques, reasoning under uncertainty, advanced planning and control, and learning. Prereq: data structures.

CS 835 - Introduction to Parallel and Distributed Programming

  • Credits: 3.00
  • Programming with multiple processes and threads on distributed and parallel computer systems. Introduces programming tools and techniques for building applications on such platforms. Course requirements consist primarily of programming assignments. Prereq: Undergraduate course in operating systems fundamentals and computer organization; or permission.

CS 845 - Formal Specification and Verification of Software Systems

  • Credits: 3.00
  • Course focuses on the formal specification and verification of reactive systems, most notably concurrent and distributed systems. Topics relevant to these systems, such as non-determinism, safety and liveness properties, asynchronous communication or compositional reasoning, are discussed. We rely on a notation (T LA+, the Temporal Logic of Actions) and a support tool (TLC, the TLA+ Model Checker). Prereq: Students are expected to be knowledgeable in logic and to be able to write symbolic proofs in predicate calculus. A basic understanding of the notions of assertion, precondition, and post-condition is also assumed.

CS 853 - Information Retreival

  • Credits: 3.00
  • Fundamental algorithms and techniques for text processing and text-based information retrieval systems. Topics include how to build an end-to-end information retrieval system, such as a Web search engine. Pre-requisite: CS 515

CS 858 - Algorithms

  • Credits: 3.00
  • An introduction to important concepts in the design and analysis of algorithms and data structures, including implementation, complexity, analysis, and proofs of correctness. Prereq: understanding of basic data structures, familiarity with proof methods and basic concepts from discrete mathematics and the ability to program with recursion.

CS 860 - Introduction to Human-Computer Interaction

  • Credits: 3.00
  • Human-computer interaction is a discipline concerned with the design, evaluation and implementation of interactive computing systems for human use and with the study of major phenomena surrounding them. Prereq: operating systems fundamentals.

CS 870 - Computer Graphics

  • Credits: 3.00
  • Input-output and representation of pictures from hardware and software points of view; interactive techniques and their applications; three-dimensional image synthesis techniques. Prereq: data structures.

CS 871 - Web Programming Paradigms

  • Credits: 3.00
  • In this course you will learn languages to program the Web. Languages integrated into browsers, like Javascript, and languages invoked on the server, like Ruby. You will also learn about frameworks, like Rails, and various techniques used to support the programming process. In addition, you will learn languages you will need to create, modify and process Web documents. Although we will learn how to read and write in these languages, our primary goal will be on understanding how the design of these multi-paradigm dynamic languages support the process of delveoping Web applications. Prereq: programming lnaguage concepts or permission.

CS 875 - Database Systems

  • Credits: 3.00
  • Database analysis, design, and implementation. Focus on the relational model. Data description and manipulation languages, schema design and normalization, file and index organizations, data integrity and reliability. Usage of selected DBMS. Prereq: data structures; mathematical proof.

CS 880 - Topics

  • Credits: 1.00 to 4.00
  • Material not normally covered in regular course offerings. May be repeated.

CS 898 - Master's Project

  • Credits: 3.00

CS 899 - Master's Thesis

  • Credits: 1.00 to 6.00
  • May be repeated up to a maximum of 6 credits. Cr/F.

CS 900 - Graduate Seminar

-Credits: 1.00

  • Regularly scheduled seminars presented by outside speakers, UNH faculty, and graduate students. Topics include reports of research ideas, progress, and results. Cr/F.

CS 920 - Advanced Operating Systems

  • Credits: 3.00
  • This course covers techniques for formally analyzing various fundamental concepts and mechanisms which form the basis of the design of advanced operating systems, including distributed, database, and multiprocessor operating systems. Topics covered include synchronization, mutual exclusion, distributed algorithms, security, fault-tolerance, and distributed resource management. Prereq: operating system fundamentals or equivalent.

CS 925 - Advanced Computer Networks

  • Credits: 3.00
  • Design and analysis of computer networks. Modeling and performance evaluation, queuing theory applied to computer networks. Traffic flow management and error control. Routing algorithms and protocols. Switch and router architectures. Selected issues in high-speed network design. Optical networks. Prereq: CS 825 or equivalent.

CS 980 - Advanced Topics

  • Credits: 3.00

CS 998 - Independent Study

  • Credits: 1.00 to 6.00

CS 999 - Doctoral Research

  • Credits:
  • Cr/F.