A Bachelor of Science in Computer Science from Southern New Hampshire University will help prepare you to enter a wide variety of fields. From the technology industry to the manufacturing industry, from management positions to technical jobs, a Computer Science degree can help you steer your career in the direction you want.
At SNHU, you'll learn to apply the basic concepts and theories behind computer science to real-world situations through a combination of traditional computer science and mathematics courses and major, team-based software development projects. The program combines classroom learning with a project-based, hands-on approach which ensures that you will have firsthand opportunities to implement important computer science principles and face down challenges.
SNHU has modelled its computer science program in accordance with the international CDIO initiative, "an innovative educational framework for producing the next generation of computer scientists that stresses computer science fundamentals set in the context of Conceiving, Designing, Implementing, and Operating real-world systems and products." CDIO is a prominent educational philosophy and is intended to achieve a fine balance between project-based, hands-on learning and traditional, theory-based education. No matter your interest, the program will help you develop the necessary skills to begin your chosen career.
The SNHU faculty in the Computer Science program are dedicated to your success. You will have opportunities to get hands-on experience through coursework and projects, as well as opportunities to seek internships and jobs in the industry. SNHU's location in Manchester, NH is ideal for access to a wide range of regional software research and development companies.
As a private, nonprofit university, SNHU has one mission - to help you see yourself succeed. The benefits of majoring in Computer Science at SNHU include:
Graduates from the Computer Science program at Southern New Hampshire University will be well prepared to enter a wide variety of fields. You will learn to develop software with applications in the aviation and automotive industries, medical offices and hospitals, and the data communication, manufacturing, management, military, entertainment, consumer and industrial products, and education fields.
SNHU is dedicated to helping students find meaningful internships that will offer then hands-on experience to give them a head start on their peers when they enter the job market. Both inside and outside the classroom, SNHU is developing the next generation of engineers.
Upon completion of the Computer Science degree program at Southern New Hampshire University, graduates should:
Using the logic introduced in Discrete Mathematics I, this course continues to develop theories in the areas of integers, mathematical induction, partial orders and equivalence relations, Hoare logic, number theory, sequences, and combinatorics.
The software life cycle is introduced, shifting emphasis away from programming as the primary activity of the software engineer and towards requirements analysis, specification, documentation, testing, verification, and validation. In the required laboratory, students will develop a software simulation of a game using graphics which is required to run successfully.
This course is the first of a two-semester sequence. Students apply the theoretical principles of software engineering to a software project. The entire class works as a whole on one project, which will be carried through the software life cycle from problem definition to implementation, with the course evaluation based on deliverables.
This course is a continuation of CS203L. Students apply the theoretical principles of software engineering to a software project. The entire class works as a whole on one project, which will be carried through the software life cycle from problem definition to implementation, with the course evaluation based on deliverables.
Students are individually responsible for the formal specification, design, implementation and proof of correctness of the abstract data type sets, bags, functions, sequences, stacks, queues, and strings. Special emphasis will be given to searching and sorting algorithms
Students are individually responsible for the design, formal specification, implementation, and proof of correctness of the abstract data types, trees and graphs. Special emphasis will be given to graph algorithms.
Computer architecture and organization are covered including instruction set design, floating point and integer arithmetic operations, number representations, datapath design, pipelining, control flow, memory hierarchy, caches, virtual memory and input/output. Students are introduced to a variety of commercial architectures such as x86 and ARM.
This course is the first of a two-semester sequence. Students apply the theoretical principles of software engineering to a software project. The class works in groups on a large product using the Scrum software engineering framework. At the end of the first semester students should complete the "Concept" phase of the Product with a working prototype. The same Concept is the starting point for the second semester where the students will complete the "Pre-Production" phase of the Product. At the end of the second semester students are required to present their projects.
This course is the second of a two-semester sequence. In the first semester students apply group-based software engineering methodologies to a large project. In the second semester students continue developing group-based software engineering concepts but specifically focus on individual software engineering concepts such as software testing, object-oriented design, design patterns, and code optimization. The first semester prototype is the starting point for the second semester where the students will complete the "Pre-Production" phase of the Product. At the end of the second semester students are required to present their projects.
Basic algorithmic analysis and strategies are explored along with fundamental computing algorithms. Connections between regular languages and finite automata, context-free languages and pushdown automata, and Turing machines and computation are established. The complexity classes P and NP will also be introduced.
This course provides an in-depth overview of the field of data communications and its impact on information systems. Various types of equipment will be examined along with protocols and architectures offered by major vendors. Distributed system issues as well as local area network solutions are discussed.
This course explores the major components of an operating system. Topics covered include processes, threads, mutual exclusion and synchronization, deadlock and starvation, memory management, virtual memory, scheduling on single and multiprocessors, I/O management and scheduling, and file systems.
This course provides an introduction to the structure and functioning of the UNIX operating system. It is designed to give students a solid foundation in the design and organization of the operating system and to teach the basic set of UNIX commands.
Select one of the following
Select one of the following
This course is the first part of a two semester sequence. Students will apply the theoretical principles of software engineering to a major software project. The project will be carried through the SDLC from problem definition to implementation with the course evaluation based on deliverables. This two course sequence may be in lieu of a computer science internship.
This course is a continuation of CS413. Students will apply the theoretical principles of software engineering to a major software project. The project will be carried through the SDLC from problem definition to implementation with the course evaluation based on deliverables. This two course sequence may be in lieu of a computer science internship.
12 credit(s) from the following:
This course will give the student an overview of application development using data base management systems (DBMS). Conceptual database design, data modeling and data normalization will be presented and practiced. Structured query language (SQL) will also be practiced using MySQL or a similar tool. Relational databases will be examined, with an emphasis on those found in PC networks with client-server applications. Topics include: the rationale for using databases, the history of databases, logical definition and structure for efficient access, physical definition of the data, using SQL and QBE (query by example) to access databases, data security and backup strategies.
This course examines key aspects of embedded system design including microcontroller selection, assembly-language programming, the use of higher-level languages for system development, interfacing, transducers, and key supporting analog circuits.
This course focuses on 3D game programming using C++ and Unreal Engine. Game play, game loops, lighting, cameras, translation, rotation, movement, 3D physics, state machines, game artificial intelligence, object pooling and performance optimization techniques are covered through the implementation of a series of 3D games.
This course provides an introduction to the theories, methods and problems of AI. Knowledge representation, natural language processing, computer vision, neural networks, path finding (A*, navigation meshes) and machine learning will be covered. Discussion of concepts such as intelligence, cognition, personality, and the Winograd/Turing test will be addressed. Practical implementations will be explored in the context of game AI.
An examination of the relationship between hardware and software. The compiler writer's viewpoint as well as the architect's viewpoint are analyzed in various areas, including instruction set design and addressing modes. Advanced topics in operating systems, especially interrupt mechanisms, memory management and processor management are also discussed. Various commonly used architectures will be compared.
This course introduces the basic concepts and algorithms of three-dimensional interactive computer graphics. Topics include projection, vertex arrays, buffer objects, color perception, clipping, 2D/3D transformations, animation, culling, quaternions, convexity, interpolation, 3D surfaces, lighting, shading, texture mapping, pixel manipulation, and special effects. Practical implementation of the topics are realized with OpenGL programming and GLSL shader programming.
This course will examine theories of advanced graphics techniques used to aid research methods. Applied and theoretical algorithms including plotting of directed and undirected graphs with and without cycles, clustering algorithms, automatic layout techniques, graphics compression, and other research algorithms will be covered. Students will first understand theory and then program implementations of the graphical algorithms and concepts.
After a review of digital principles and logic, modern digital integrated circuit and hybrid circuit families are studied. This includes: gates, multi-vibrators, counters, comparators, Digital-to-Analog and Analog-to-Digital converters, and digital computer interface circuits. Emphasis is placed on integrating software design and interface design to achieve interactive system design with an external environment.
In this course students will be introduced to the mathematical theory underlying multi-degree-of-freedom industrial robot systems including such topics as spatial descriptions and transformations, and manipulator kinematics including Denavit-Hartenberg notation. The course will also include an introduction to the topics of Industrial Automation and Machine Vision. The lab component of the course will take the students through a series of exercises that will introduce them to a 6-axis industrial robot (ABB IRB 140), the robot software systems, end-of-arm actuators, an industrial machine vision camera (COGNEX Insight 5400), and the camera-related software. A series of building-block exercises leading to the team-based final project will require the students to integrate the robot and camera systems to accomplish a specific task and will demonstrate the students' competence with these systems. Other robot types such as parallel axis robotic systems are introduced as well.
This course examines key aspects of autonomous systems including mobile robot kinematics, drive mechanisms and control, perception, sensors, localization, map making, and path planning. A particular emphasis is given to the use computer vision for robot navigation, including feature identification, camera calibration, and optical measurement. The course concludes with techniques for integrating vision, mobile robots, and robot manipulators into a complete system and a team-based final project that requires students to integrate a robot and a camera system to accomplish a specified task. The final project provides a multi-disciplinary team experience for students. Prerequisite: MAT-350 or MA-315
NOTE: Courses containing labs must be taken together.
We believe that college should change your life, not break the bank. That's why more than 90 percent of our students receive some form of financial aid, and students who qualify could receive up to $20,000 in grants and scholarships.
Southern New Hampshire University is a private, nonprofit institution accredited by the New England Association of Schools and Colleges as well as several other accrediting bodies. More...