Computer Science
https://ceps.unh.edu/computer-science/
- Analytics and Data Science Major: Analytics Option (B.S.)
- Analytics and Data Science Major: Data Science Option (B.S.)
- Analytics Minor
- Computer Programming Cognate
- Computer Science Major (B.S.)
- Computer Science Major: Algorithms Option (B.A.)
- Computer Science Major: Cybersecurity Option (B.A.)
- Computer Science Major: Systems Option (B.A.)
- Computer Science Minor
- Data Science Minor
- Information Technology Cognate
- Information Technology Major (B.S.)
- Information Technology Minor
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 #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-.
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.
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 420 with a minimum grade of C- and CS 515 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 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 (may be taken concurrently) 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 731 - Planning for Robots
Credits: 4
How do self-driving cars figure out what to do? In this seminar-style class, students read scientific papers and perform a research project pertaining to algorithms for planning and decision-making, with an emphasis on autonomous systems. Significant programming maturity is assumed.
Prerequisite(s): CS 515 with a minimum grade of B- and CS 520 with a minimum grade of B-.
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.
Attributes: Writing Intensive Course
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 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 - Foundations of Information Technology
Credits: 4
Fundamentals of computer hardware, software, and data. Topics include processors, memory, storage, resource management, and discrete mathematics.
Prerequisite(s): CS 415 with a minimum grade of C- or CS 410C with a minimum grade of C- or CS 410P with a minimum grade of C-.
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, and 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 .
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 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 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