Computer Science

https://ceps.unh.edu/computer-science/

Undergraduate students may choose from one of seven degree options: the B.S. in computer science, which is intended for students interested in the design and implementation of software systems; the B.A. in Computer Science- Algorithms Option, which focuses on fundamental concepts in the areas of algorithms, artificial intelligence and machine learning; the B.A. in Computer Science- Cybersecurity Option, which is designed for students who are interested in computer and network security; the B.A. in Computer Science- systems option, which focuses on fundamental concepts in the areas of computing systems and data communication; 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; or the either of the two B.S. degrees in Analytics and Data Science: the analytics option, which emphasizes the application of data science in business and industry, or the data science option, which focuses on the theoretical and computational underpinnings of modern data science.
On This Page

Analytics (DATA)

DATA 557 - Introduction to Data Science and Analytics

Credits: 4

An introduction to data science and analytics. The landscape of analytics, including an overview of industries and sectors using analytics or expected to use analytics in the near future. Data generation, data management, data cleaning, and data preparation. Ethical use of data. Focus on visual and exploratory analysis. Project-based, with an emphasis on collaborative, experiential learning. Programming and statistical software will be used, but previous experience is not required.

Attributes: Environment,TechSociety(Disc)

Grade Mode: Letter Grading

DATA 674 - Predictive and Prescriptive Analytics I

Credits: 4

A first course in predictive and prescriptive analytics. Supervised learning models including linear models and CART models. Model assessment and scoring methods, including cross-validation. Regularization and model tuning. Unsupervised learning models including k-means clustering. Project-based, with an emphasis on collaborative, experiential learning. Statistical software will be used and programming required.

Prerequisite(s): MATH 425 with a minimum grade of D- and COMP 570 with a minimum grade of D- and DATA 557 with a minimum grade of D-.

Grade Mode: Letter Grading

DATA 675 - Predictive and Prescriptive Analytics II

Credits: 4

A second course in predictive and prescriptive analytics. Time series analysis and model ensembles. Bootstrapping, simulation, optimization. Monte Carlo methods. Project-based, with an emphasis on collaborative experiential learning. Statistical software will be used and programming required.

Prerequisite(s): DATA 674 with a minimum grade of D-.

Grade Mode: Letter Grading

DATA 690 - Internship Experience

Credits: 1-4

A field-based learning experience via placement in a business, non-profit, or government organization using analytics. Under the guidance of a faculty advisor and workplace supervisor, students gain practical experience solving problems and improving operational processes using analytics. May be repeated but no more than 4 credits may fill major requirements.

Prerequisite(s): UMST 582 with a minimum grade of D-.

Repeat Rule: May be repeated for a maximum of 8 credits.

Grade Mode: Credit/Fail Grading

DATA 750 - Neural Networks

Credits: 4

Artificial neural networks power the recent advances in computer vision, speech recognition, and machine translation. This is a first course on neural networks with a focus on applications in computer vision and natural language processing. Topics will include generic feedforward neural networks, convolutional neural networks for computer vision tasks, and recurrent neural networks with application to natural language processing, with other topics to be selected based on the interests of the instructor and the class.

Equivalent(s): COMP 750

Grade Mode: Letter Grading

DATA #757 - Mining Massive Datasets

Credits: 4

A first course in large-scale analytics and data science. Characteristics of big data and the emerging software stack for working with massive datasets, including Hadoop and MapReduce. Algorithms for extracting information from massive datasets. A first course in linear algebra is not a prerequisite, but is recommended.

Prerequisite(s): MATH 425 with a minimum grade of D- and DATA 557 with a minimum grade of D-.

Grade Mode: Letter Grading

DATA #790 - Capstone Project

Credits: 4

Under direction of a faculty mentor, students work in teams to find solutions to complex real-world problems using analytics. Projects may come from internal or external sources. Students define the problem, obtain the necessary data, develop suitable models and solutions, and present their results.

Grade Mode: Letter Grading

Computer Science (CS) 

CS 400 - Introduction to Computing

Credits: 2

Introduces students to the available computing-related majors and a variety of topics foundational to success in computing-related fields. Coverage includes ethics, skills, and knowledge applicable to a broad range of computing disciplines.

Grade Mode: Letter Grading

CS #401 - Computers and Their Applications

Credits: 4

Use of computers to manage and analyze information across a variety of settings and disciplines. Introduces major categories of computer software, including word processing, spreadsheets and database systems. Covers basic computer concepts and the computer's role in today's society. Significant hands-on work required outside of the class. Not open to CS majors. CEPS students should check with their major department for approval.

Attributes: Environment,TechSociety(Disc)

Equivalent(s): CIE 530, CS 401H, CS 495, DCE 491, DCE 492, INCO 495

Grade Mode: Letter Grading

CS 405 - Introduction to Applications Programming

Credits: 4

Introduces the concepts and techniques of computer programming. Particular emphasis on computer programming as a problem-solving technique for business applications. The basic software development process (modeling, algorithm design, programming, testing and debugging) is illustrated. CEPS students should check with their major department for approval. Not open to CS and IT majors.

Grade Mode: Letter Grading

CS 408 - Living in a Networked World: The Good, the Bad, and the Ugly

Credits: 4

The objective of this course is to explore the implications of living in a networked world. The course surveys the fundamental technologies and practices that make up the Internet and then ask the student to examine the ramifications of using the technologies. Users of the technologies should understand the technology in order to make educated decisions about how to use it safely and effectively. Students have the opportunity to self-publish by using various current technologies including blogs, discussion boards, email and creating web pages using xhtml.

Attributes: Environment,TechSociety(Disc)

Grade Mode: Letter Grading

CS 410C - Introduction to Scientific Programming/C

Credits: 0 or 4

Introduces the concepts and techniques of computer programming. Particular emphasis on computer programming as a problem-solving technique in science and engineering applications. Good programming style is stressed. Significant out-of-class programming required.

Equivalent(s): CS 410P, CS 415

Mutual Exclusion: No credit for students who have taken .

Grade Mode: Letter Grading

CS 410P - Introduction to Scientific Programming/Python

Credits: 0 or 4

Introduces the concepts and techniques of computer programming. Particular emphasis on computer programming as a problem-solving technique in science and engineering applications. Good programming style is stressed. Significant out-of-class programming required. Not open to students who have completed CS 415 or the equivalent.

Equivalent(s): CS 410C, CS 415

Grade Mode: Letter Grading

CS 414 - From Problems to Algorithms to Programs

Credits: 4

This course is an introduction to the design and implementation of computer programs. The basic software development process (modeling, algorithm design, programming, testing and debugging) is illustrated through problem examples. Programming techniques are introduced to allow students to implement and evaluate solutions as programs.

Attributes: Quantitative Reasoning(Disc)

Grade Mode: Letter Grading

CS 415 - Introduction to Computer Science I

Credits: 0 or 4

Theory and practice of computer science. Algorithm development and analysis; data abstraction techniques; elementary data structures; dynamic memory manipulation; debugging; and program design issues. Computer systems and applications. Intended for CS majors.

Equivalent(s): CS 410C, CS 410P

Mutual Exclusion: No credit for students who have taken .

Grade Mode: Letter Grading

CS 416 - Introduction to Computer Science II

Credits: 0 or 4

Theory and practice of computer science. Algorithm development and analysis; data abstraction techniques; elementary data structures; dynamic memory manipulation; debugging; and program design issues. Computer systems and applications. Intended for CS majors.

Prerequisite(s): CS 410C with a minimum grade of D- or CS 410P with a minimum grade of D- or CS 415 with a minimum grade of D-.

Equivalent(s): CS 417

Grade Mode: Letter Grading

CS 417 - From Programs to Computer Science

Credits: 0 or 4

Programming techniques for students with programming experience from an introductory programming course. Covers basic algorithm analysis. Topics include basics of classes, inheritance, and data abstraction; linear data structures (vectors, lists, stacks and queues); trees and simple graphs; hash tables; sorting and searching; recursion; and basic graph traversal algorithms. Numerous labs and programming assignments build skills in planning, problem solving, and debugging: this is a hands on course.

Prerequisite(s): CS 410P with a minimum grade of C- or CS 410C with a minimum grade of C- or CS 415 with a minimum grade of C-.

Equivalent(s): CS 416

Grade Mode: Letter Grading

CS 419 - Computer Science for Engineers and Scientists

Credits: 4

This course provides an accelerated coverage of programming techniques for students with programming experience from an introductory programming course. Topics covered include: basics of classes, inheritance, and data abstraction; linear data structures (vectors, lists, stacks, and queues); trees and simple graphs; hash tables; sorting and searching; and recursion. Students will learn basic algorithm analysis. Numerous labs and programming assignments will build skills in planning, problem solving, and debugging: this is a hands-on course.

Prerequisite(s): CS 410C with a minimum grade of D-.

Equivalent(s): CS 416, CS 417

Grade Mode: Letter Grading

CS 420 - Foundations of Programming for Digital Systems

Credits: 0 or 4

A systems-oriented introduction to C, with an emphasis on low-level operations, memory management, and debugging. Foundational digital systems concepts and methods will be introduced, including Boolean algebra, basic logic gates, number systems & conversions, integer representation, and theoretical aspects of combinational and sequential logic. Aspects of effective programming such as incremental development, appropriate structure and commenting, and basic testing will be stressed.

Prerequisite(s): CS 410C with a minimum grade of C- or CS 410P with a minimum grade of C- or CS 414 with a minimum grade of C- or CS 415 with a minimum grade of C-.

Grade Mode: Letter Grading

CS 457 - Introduction to Data Science and Analytics

Credits: 4

An introduction to data science and analytics. Overview of the use of analytics by industry, government, and nongovernmental organizations. Impact of analytics on society, ethical use of analytics. Methods of data generation, data management, data cleaning, and data preparation, with a focus on visual and exploratory analysis. Project-based, with an emphasis on collaborative, experiential learning. Design and implementation of programs, use of statistical software. Not open to CS and IT majors.

Attributes: Environment,TechSociety(Disc)

Equivalent(s): DATA 557

Grade Mode: Letter Grading

CS 501 - Professional Ethics and Communication in Technology-related Fields

Credits: 4

A mixed lecture/seminar course intended to improve both reasoning and ability to communicate effectively in front of an audience. Students learn basic forms of ethical argument, they read about ethical situations in which technology and technology professions play a key role, and they participate in student-led discussions about the reading. Students also make oral presentations about both ethical and technical topics, and evaluate each other's presentations in order to improve their sense for what makes a good presentation.

Attributes: Environment,TechSociety(Disc); Inquiry (Discovery)

Prerequisite(s): ENGL 401 with a minimum grade of D-.

Grade Mode: Letter Grading

CS 515 - Data Structures and Introduction to Algorithms

Credits: 0 or 4

Reviews basic data structures. Covers the mechanics and relative efficiencies of advanced data structures. Students will implement several data structures such as AVL trees, heaps, hash tables, and adjacency lists. Discusses abstract data types such as maps, priority queues, and graphs. Introduction to algorithm analysis, sorting algorithms, and graph algorithms.

Prerequisite(s): CS 416 with a minimum grade of C- or CS 417 with a minimum grade of C-.

Grade Mode: Letter Grading

CS 518 - Introduction to Software Engineering

Credits: 0 or 4

Study of software development practices and processes in the following areas: software life cycle; system validation and verification; development pipeline; cloud infrastructures; virtual machines, and containers; logging, instrumentation, and performance; fundamental security concepts. Experience working in groups. Restricted to students not in Senior Standing.

Prerequisite(s): CS 416 with a minimum grade of D- or CS 417 with a minimum grade of D-.

Grade Mode: Letter Grading

CS 520 - Computer Organization and System-Level Programming

Credits: 0 or 4

Study software/hardware interaction, understand data and program representation. Topics include fundamentals of computer organization, CPU, memory, registers, addressing modes, instruction sets, assemblers, linkers, concurrency, memory hierarchy and memory management.

Prerequisite(s): (CS 416 with a minimum grade of C- or CS 417 with a minimum grade of C-) and CS 420 with a minimum grade of C-.

Grade Mode: Letter Grading

CS 527 - Fundamentals of Cybersecurity

Credits: 4

An entry-level introduction to a wide range of fundamental cybersecurity topics: authentication, authorization, auditing, cryptography, human element, network security, OS security, mobile & IoT security. The emphasis is to explain basic concepts with real world examples.

Prerequisite(s): CS 416 with a minimum grade of D- or CS 417 with a minimum grade of D-.

Grade Mode: Letter Grading

CS #580 - Introduction to Topics in Computing

Credits: 1-2

Introductory material not normally covered in regular course offerings, but of value to students prior to internships or senior-level courses.

Repeat Rule: May be repeated for a maximum of 6 credits.

Grade Mode: Credit/Fail Grading

CS 619 - Introduction to Object-Oriented Design and Development

Credits: 4

Principles of problem analysis and software design applied to the development cycle of a software system (i.e. from system requirements specification to design, implementation, and system test). Design and implementation using object-oriented principles, patterns, and tools. Experience in understanding and debugging software systems. Experience in working in groups.

Prerequisite(s): CS 515 with a minimum grade of C- and CS 518 with a minimum grade of D-.

Grade Mode: Letter Grading

CS 620 - Operating System Fundamentals

Credits: 4

Introduces operating system concepts and design. Process and memory management; scheduling; file systems; storage devices; inter-process communication.

Prerequisite(s): CS 520 with a minimum grade of D-.

Grade Mode: Letter Grading

CS 659 - Introduction to the Theory of Computation

Credits: 4

Review of sets, relations, and languages. Induction and diagonalization. Finite automata, context-free languages, pushdown automata. Basic complexity theory.

Prerequisite(s): MATH 531 with a minimum grade of D-.

Grade Mode: Letter Grading

CS 696 - Independent Study

Credits: 1-6

Individual projects developed and conducted under the supervision of a faculty member.

Repeat Rule: May be repeated up to unlimited times.

Equivalent(s): CS 696W

Grade Mode: Letter Grading

CS 696W - Independent Study

Credits: 1-6

Individual projects developed and conducted under the supervision of a faculty member.

Attributes: Writing Intensive Course

Repeat Rule: May be repeated for a maximum of 8 credits. May be repeated up to 1 time.

Equivalent(s): CS 696

Grade Mode: Letter Grading

CS 699 - Internship

Credits: 1

Provides the opportunity to apply academic experience in settings associated with future professional employment. A written proposal for the internship must be approved by the instructor. The proposal must specify what the student will learn from the internship, why the student is properly prepared for the internship and what supervision is available during the internship. A mid-semester report and final report are required. Prereq: permission.

Repeat Rule: May be repeated for a maximum of 4 credits. May be repeated up to 3 times.

Grade Mode: Credit/Fail Grading

CS 712 - Compiler Design

Credits: 4

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 required to design and implement a compiler for a simple language.

Prerequisite(s): CS 520 with a minimum grade of D-.

Grade Mode: Letter Grading

CS 720 - Systems Programming

Credits: 4

Study and simulation of various types of systems that include assemblers, linkers, memory management, concurrency and other resource management techniques.

Prerequisite(s): CS 520 with a minimum grade of D-.

Grade Mode: Letter Grading

CS 722 - Cloud Computing Systems

Credits: 4

The course covers a variety of topics in cloud computing systems, or more precisely, distributed systems that enable modern cloud computing. The topics include virtualization and its impact on configuration management. The course also covers the latest advancements in cloud computing/systems, IoT, edge, and fog computing.

Prerequisite(s): CS 620 with a minimum grade of D-.

Grade Mode: Letter Grading

CS 723 - Performance Evaluation of Computer Systems

Credits: 4

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. Course is mainly based on the use of analytic queuing network models of computers 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.

Prerequisite(s): CS 620 with a minimum grade of D- and (MATH 539 with a minimum grade of D- or MATH 644 with a minimum grade of D-).

Grade Mode: Letter Grading

CS 725 - Computer Networks

Credits: 4

Introduction to fundamental concepts of computer networks and exploration of widely-used networking technologies. Topics include principles of congestion and error control; network routing; local, wireless and access networks; application protocol design; and network programming. In-depth discussion of the Internet suite of protocols.

Prerequisite(s): CS 520 with a minimum grade of D-.

Equivalent(s): IT 725

Grade Mode: Letter Grading

CS 727 - Software Security

Credits: 4

Mechanisms and implementation of techniques in software security. Various fundamental security topics include cryptography, access control, protocols, software vulnerabilities, and reverse engineering.

Prerequisite(s): CS 520 with a minimum grade of C- and CS 527 with a minimum grade of D-.

Grade Mode: Letter Grading

CS 730 - Introduction to Artificial Intelligence

Credits: 4

In-depth introduction to artificial intelligence, concentrating on aspects of intelligent problem-solving. Topics include situated agents, advanced search techniques, knowledge representation, logical reasoning techniques, reasoning under uncertainty, advanced planning and control, and learning.

Prerequisite(s): CS 515 with a minimum grade of D-.

Grade Mode: Letter Grading

CS 733 - Mobile Robotics

Credits: 4

An introduction to the foundational theory and practices in mobile robotics. Topics include Kinematics of wheeled mobile robots, Sensors for mobile robots, Robot navigation and perception, Robot vision, Localization and mapping of mobile robots. Hands-on experience directed towards implementation with a real robot. Programming course required prior to taking this course.

Grade Mode: Letter Grading

CS 735 - Introduction to Parallel and Distributed Programming

Credits: 4

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.

Prerequisite(s): CS 761 with a minimum grade of D-.

Grade Mode: Letter Grading

CS 745 - Formal Specifications and Verification of Software Systems

Credits: 4

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, as discussed. We rely on a notation (TLA+, the Temporal Logic of Actions) and a support tool (TLC, the TLA+ Model Checker).

Prerequisite(s): CS 520 with a minimum grade of D- and CS 659 with a minimum grade of D-.

Grade Mode: Letter Grading

CS 750 - Machine Learning

Credits: 4

An introduction to fundamental concepts and common methods in machine learning. In addition to theoretical topics, the course involves hands-on experience in making predictions using synthetic and real-world datasets. Programming course required prior to taking this course.

Prerequisite(s): MATH 539 with a minimum grade of D- or MATH 644 with a minimum grade of D-.

Mutual Exclusion: No credit for students who have taken .

Grade Mode: Letter Grading

CS 751 - Reinforcement Learning

Credits: 4

Reinforcement learning studies how agents can learn to act to achieve goals in complex, stochastic environments. This course introduces students to fundamental theoretical concepts of reinforcement learning, standard algorithms, and practical techniques. In addition to theoretical topics, the course involves implementing basic algorithms in a high-level programming language.

Prerequisite(s): (CS 415 with a minimum grade of D- or CS 410P with a minimum grade of D-) and (MATH 539 with a minimum grade of D- or MATH 644 with a minimum grade of D-).

Grade Mode: Letter Grading

CS 752 - Foundations of Neural Networks

Credits: 4

Neural networks are a class of machine learning models which have recently revolutionized many applied machine learning domains such as natural language understanding, image/video processing, bioinformatics, time series analysis. This course teaches students to develop new neural network architectures from scratch and customize them. The course covers all necessary foundations of neural networks including gradient descent optimization and vector calculus. Students will learn how to design models using idioms such as observed variables, latent variables, gate variables and different functions as well as a wide range of state-of-the-art architectures as design examples.

Prerequisite(s): CS 515 with a minimum grade of D-.

Grade Mode: Letter Grading

CS 753 - Information Retrieval

Credits: 4

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.

Prerequisite(s): CS 515 with a minimum grade of D-.

Grade Mode: Letter Grading

CS 755 - Computer Vision

Credits: 4

Studying techniques that make a machine 'see' and 'understand' the world in a human-like fashion. The course discusses the theory behind common computer vision techniques and trains students on designing their own algorithms for understanding image or video.

Prerequisite(s): MATH 539 with a minimum grade of D- or MATH 644 with a minimum grade of D-.

Grade Mode: Letter Grading

CS 757 - Mathematical Optimization for Applications

Credits: 4

This course introduces the foundations of mathematical optimization and reinforces them via applications. The content includes convex optimization, first and second-order methods, constrained problems, duality, linear and quadratic programming, as well as discrete and non-convex optimization. Applications will focus on machine learning methods but also include problems from engineering and operations research. Programming proficiency in MATLAB, R, Java, C, Python, or equivalent required.

Prerequisite(s): MATH 426 with a minimum grade of D-.

Equivalent(s): MATH 757

Grade Mode: Letter Grading

CS 758 - Algorithms

Credits: 4

An introduction to important concepts in the design and analysis of algorithms and data structures, including implementation, complexity analysis, and proofs of correctness.

Prerequisite(s): CS 420 with a minimum grade of C- and CS 515 with a minimum grade of C- and CS 659 with a minimum grade of D-.

Grade Mode: Letter Grading

CS 759 - Natural Language Processing

Credits: 4

This class covers natural language processing, including both methods and well-known applications. Methods discussed will range from classical probabilistic methods such as Naive Bayes and Hidden Markov Models, to contemporary neural network methods, including word vector models, recurrent neural networks, and Transformer-based models. Applications discussed will include text classification, machine translation, and conversation systems.

Prerequisite(s): CS 515 with a minimum grade of D- and (MATH 539 with a minimum grade of D- or MATH 644 with a minimum grade of D-).

Grade Mode: Letter Grading

CS 761 - Programming Language Concepts and Features

Credits: 4

Explores the main features of modern, high-level, general-purpose programming languages from the user (programmer) standpoint. Students learn how specific features of programming languages can be used effectively in solving programming problems. The course is also an opportunity to use paradigms that expand on simple imperative programming, such as object-oriented, functional and concurrent programming. Some knowledge of Java required.

Prerequisite(s): CS 520 with a minimum grade of C-.

Equivalent(s): CS 671

Grade Mode: Letter Grading

CS 770 - Computer Graphics

Credits: 4

Input-output and representation of pictures from hardware and software points of view; interactive techniques and their applications; three-dimensional image synthesis techniques and their applications.

Prerequisite(s): CS 515 with a minimum grade of C- and CS 520 with a minimum grade of C-.

Grade Mode: Letter Grading

CS #771 - Web Programming Paradigms

Credits: 4

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 an understanding of how the design of these multi-paradigm dynamic languages support the process of developing Web applications.

Prerequisite(s): CS 761 with a minimum grade of D-.

Grade Mode: Letter Grading

CS 775 - Database Systems

Credits: 4

Introduction to database management systems --- design, implementation, and usage --- with focus on the relational model. Data description, manipulation, and query language in the context of MySQL. Schema design and normalization; indexes, transaction processing. Web access of databases (PHP); overview of XML and noSQL systems.

Prerequisite(s): CS 515 with a minimum grade of D-.

Mutual Exclusion: No credit for students who have taken IT 775.

Grade Mode: Letter Grading

CS 780 - Topics

Credits: 1-4

Material not normally covered in regular course offerings. May be repeated for credit.

Grade Mode: Letter Grading

CS 781 - Data Science for Knowledge Graphs and Text

Credits: 4

This course covers advanced text processing and machine learning algorithms and techniques for data science with knowledge graph and text data. This includes a wide range of algorithms for neural networks, machine learning, graph processing, text processing, and information retrieval with a focus of gaining insights into the knowledge stored in data. This an implementation-intensive research-oriented seminar, where a particular data science application will be developed by reading research publication and implementing a software prototype.

Prerequisite(s): CS 752 with a minimum grade of B- or CS 753 with a minimum grade of B- or CS 759 with a minimum grade of B-.

Grade Mode: Letter Grading

CS 791 - Senior Project I

Credits: 2

First semester of the capstone design experience. Modern software engineering practices and tools are surveyed and applied in team projects. Students begin development on software projects proposed by faculty or external sponsors, including initial stages of design, implementation, and documentation, with an interim presentation of progress expected toward the end of the semester. Principles of security, testability, and maintainability are stressed.

Prerequisite(s): CS 520 with a minimum grade of C- and ((CS 619 with a minimum grade of D- and CS 620 with a minimum grade of D-) or (CS 620 with a minimum grade of D- and (CS 727 with a minimum grade of D- or IT 666 with a minimum grade of D-)) ).

Grade Mode: Letter Grading

CS 792 - Senior Project II

Credits: 2

Continuation of CS 791: Senior Project I. Students complete the project by implementing their design. Students work in teams. Successful completion of this course fulfills the Capstone Experience requirement for Computer Science majors.

Attributes: Writing Intensive Course

Prerequisite(s): CS 791 with a minimum grade of D-.

Grade Mode: Letter Grading

CS 799 - Thesis

Credits: 1-5

Students work under the direction of a faculty sponsor to plan and carry out independent research resulting in a written thesis. Required for honors-in-major. Additional CS 600-level course required. Minimum GPA should be 3.4 or higher.

Attributes: Writing Intensive Course

Prerequisite(s): CS 520 with a minimum grade of C- and CS 619 with a minimum grade of D-.

Repeat Rule: May be repeated for a maximum of 8 credits.

Grade Mode: Letter Grading

Information Technology (IT)

IT 403 - Introduction to Internet Technologies

Credits: 4

Introductory course exploring the fundamentals of Internet communications with an emphasis on the World Wide Web. Students develop an understanding of the Internet's underlying technologies and learn how to utilize them as contributing members of the Web community. Students become proficient with creating and publishing Web pages using HTML and CSS. No prior knowledge or experience is assumed. No credit if credit earned for CIS 405. (Note CIS 405 is offered at UNH Manchester, and is not related to CS 405 at UNH Durham.)

Grade Mode: Letter Grading

IT 502 - Intermediate Web Design

Credits: 4

An intermediate level exploration of the theory and practice of Web design. Students learn the fundamentals of design theory applicable to the World Wide Web and examine tools and techniques for applying that knowledge to their projects. Additional topics include information architecture, usability, accessibility, optimization, typography, and market visibility. Working knowledge of XHTML and CSS required.

Prerequisite(s): IT 403 with a minimum grade of D-.

Grade Mode: Letter Grading

IT 505 - Integrative Programming

Credits: 4

Expands prior programming knowledge through the introduction of another programming language, with a particular emphasis on integrative programming techniques common within IT. Topics include data access and exchange; database concepts; effective interfaces; and leveraging third-party APIs, libraries, and frameworks. Computer Science majors not allowed.

Prerequisite(s): CS 416 with a minimum grade of D- or CS 417 with a minimum grade of D-.

Grade Mode: Letter Grading

IT 520 - Computer Architecture

Credits: 4

Fundamentals of computer organization, including binary systems, data representation (and compression), machine language, program execution, memory and process issues. Operating systems and networking basics. Not open to CS majors.

Prerequisite(s): CS 410 with a minimum grade of D- or CS 414 with a minimum grade of D- or CS 415 with a minimum grade of D-.

Grade Mode: Letter Grading

IT 604 - Server-side Web Development

Credits: 4

An intermediate-level examination of the theory and practice of developing server-side applications for the World Wide Web. Students will learn practical techniques for designing and implementing data-driven Web sites through the use of server-side processing. Working knowledge of HTML, CSS, and some programming language is required.

Prerequisite(s): IT 403 with a minimum grade of D- and (CS 410 with a minimum grade of D- or CS 414 with a minimum grade of D- or CS 415 with a minimum grade of D-).

Grade Mode: Letter Grading

IT 605 - Client-side Web Development

Credits: 4

An intermediate-level examination of the theory and practice of developing client-side applications for the World Wide Web. Students will learn practical techniques for designing and implementing dynamic Web sites through the use of client-side processing. Working knowledge of HTML, CSS, and some programming language is required.

Prerequisite(s): IT 403 with a minimum grade of D- and (CS 410 with a minimum grade of D- or CS 414 with a minimum grade of D- or CS 415 with a minimum grade of D-).

Grade Mode: Letter Grading

IT 609 - Network/Systems Administration

Credits: 4

Introduces the central issues in administration of a networked computer system. Topics include the client-server model (including support of mail, FTP, Telnet, the Web), disk and file systems, backup and recovery, and security. Privacy and other legal/social issues will be discussed.

Prerequisite(s): IT 520 with a minimum grade of D- and (CS 410 with a minimum grade of D- or CS 414 with a minimum grade of D- or CS 415 with a minimum grade of D-).

Grade Mode: Letter Grading

IT 612 - Scripting Languages

Credits: 4

This course is a study of the class of programming languages and tools known as scripting languages. Topics include: a general discussion of language design and its relationship to the intended computing environment, introduction to the command-line environment, the role of scripts in controlling and connecting other programs and components, basic functionality of at least two scripting languages, and the syntax use of regular expressions. Programming projects in multiple languages will be required.

Prerequisite(s): IT 505 with a minimum grade of D- or CS 515 with a minimum grade of D-.

Grade Mode: Letter Grading

IT 630 - Data Science and Big Data Analytics

Credits: 4

An introduction to various disciplines that contribute to what is commonly known as Data Science. Students will learn how to gather, analyze, classify data utilizing various techniques. Study of tools and programming techniques to analyze data. Characteristics of big data and the emerging software stack for working with massive datasets, including Hadoop and MapReduce.

Prerequisite(s): CS 416 with a minimum grade of C- or CS 417 with a minimum grade of C-.

Mutual Exclusion: No credit for students who have taken MATH 738.

Grade Mode: Letter Grading

IT 666 - Cybersecurity Practices

Credits: 4

Through readings, exercises, research papers, and exams students will acquire the skills needed to implement solutions for security-related issues. Students will discuss security policies, legislation, system procedures, tools, and techniques. Students will analyze the patterns that attackers use to gain access to systems and understand what is required to defeat those attack patterns. At the conclusion of the course, students will have a heightened sense of security in the actions they take when using and maintaining computer systems.

Prerequisite(s): CS 527 with a minimum grade of D-.

Grade Mode: Letter Grading

IT #696 - Independent Study

Credits: 1-6

Individual projects developed and conducted under the supervision of a faculty member.

Repeat Rule: May be repeated for a maximum of 8 credits.

Grade Mode: Letter Grading

IT 699 - Internship

Credits: 1

Provides the opportunity to apply academic experience in settings associated with future professional employment. Proposals for the internship must be approved by the instructor prior to registration. Students may receive compensation for their internship work.

Repeat Rule: May be repeated for a maximum of 4 credits. May be repeated up to 3 times.

Grade Mode: Credit/Fail Grading

IT #704 - Advanced Web Development

Credits: 4

An advanced exploration of various topics in Web development. Topics covered each semester will be chosen to reflect the current state of stable and accepted Web technologies, with a decided emphasis on open-source solutions. Both client-side and server-side technologies are likely to be included, with particular attention given to concepts and techniques used to facilitate efficient Web development.

Prerequisite(s): IT 604 with a minimum grade of D-.

Grade Mode: Letter Grading

IT 705 - Project Management for Information Technology

Credits: 4

This course focuses on a core set of project management essentials that can affect the bottom line of project technical and business performance. These are termed "best practices," and those addressed are: formal risk management, agreement on interfaces, metrics based scheduling/tracking, frequent binary completion milestones, incremental development, people aware management style, and change management. The emphasis is on information technology projects; however, the basic principles are pertinent to a wider class of project domains.

Attributes: Writing Intensive Course

Grade Mode: Letter Grading

IT 718 - Cloud Computing Principles

Credits: 4

Students will learn fundamental cloud architectural principles of: operational excellence, security, reliability, performance efficiency, and cost optimization through readings, labs, and a hands-on project. Course material will cover cloud offerings from Amazon's AWS, Microsoft's Azure, and Google's Cloud Platform. Students complete a semester-long project in which they are required to implement a complete Cloud solution.

Prerequisite(s): CS 527 with a minimum grade of D-.

Grade Mode: Letter Grading

IT 725 - Network Technology

Credits: 4

Introduction to fundamental concepts of computer networks and exploration of widely-used networking technologies. Topics include principles of congestion and error control; network routing; local, wireless and access networks; application protocol design; and network programming. In-depth discussion of the Internet suite of protocols.

Prerequisite(s): IT 520 with a minimum grade of D-.

Equivalent(s): CS 725

Grade Mode: Letter Grading

IT 775 - Database Technology

Credits: 4

Topics include database architecture, schema design and definition, entity-relationship diagrams, data retrieval and update, and indexing performance. Architectures for single-user, multi-user, client-server, and web access are introduced. The relational data model is emphasized but alternative database models, such as semi-structured and object models, are introduced. Database administration topics include examination of metadata information, data integrity, and management of users and privileges, performance tuning, transactions, isolation levels, and security. Ethics of data protection are introduced. Students develop skill in SQL. Not open to CS majors.

Prerequisite(s): IT 505 with a minimum grade of D-.

Mutual Exclusion: No credit for students who have taken CS 775.

Grade Mode: Letter Grading

IT 780 - Topics in Information Technology

Credits: 4

Material not normally covered in course offerings.

Repeat Rule: May be repeated for a maximum of 8 credits.

Grade Mode: Letter Grading

IT 791 - Senior Project I

Credits: 2

First semester of the capstone design experience. Industry best practices and tools are surveyed and applied in team projects. Students begin development on software projects proposed by faculty or external sponsors, including initial stages of design, implementation, and documentation, with an interim presentation of progress expected toward the end of the semester. Principles of security, testability, and maintainability are stressed.

Prerequisite(s): IT 705 (may be taken concurrently) with a minimum grade of D-.

Grade Mode: Letter Grading

IT 792 - Senior Project II

Credits: 2

Continuation of IT 971: Senior Project I. Students complete the project, a final presentation of results is expected toward the end of the semester. Successful completion of this course fulfills the Capstone Experience requirement for Information Technology majors.

Attributes: Writing Intensive Course

Prerequisite(s): IT 791 with a minimum grade of D-.

Equivalent(s): IT 710

Grade Mode: Letter Grading