Skip to main content area Skip to main navigation Skip to institutional navigation Skip to footer

Computer Science

Course Descriptions

CSC 1510 Introduction to Information Technology 4 cr.

This course introduces students to how Information Technology can be leveraged for storing, managing, and exploring data in the Information age. Topics include: how computers work, information management, networks, operating systems, the Web, and a short introduction to computer programming. Not open to computer science majors. Satisfies the mathematics and science distribution requirement. Four hours per week.

CSC 1610 (Formerly CS 161A) Computer Science I 4 cr.

An introduction to computer science techniques with an emphasis on algorithm development and structured programming. Topics include program development, modularity, streams, control structures, functions, recursion and arrays. Satisfies the mathematics and science distribution requirement. Four hours per week.

CSC 2001, 2002, 2003, 2004 Information Technology Internship 1 cr. ea.

Student interns are placed in the Merrimack College Information technology Center and are expected to work 4 hours per week for 15 weeks under the supervision of the manager of User Services.

CSC 2210 Introduction to Computational Science 4 cr.

A course that will introduce modeling and simulation as a tool for solving problems. Students will be introduced to several modeling and simulation tools and learn how to decompose problems so they can be represented and solved with the tools. Agent models and system models will be introduced. This course will be of interest to students in engineering, mathematics, science, economics, and other disciplines concerned with the study of complex systems. Students completing the course will be able to model complex systems with various tools and will attain rudimentary programming skills, but not at the level of those learned in CSC 1610. No previous programming experience or computer science background is expected. Prerequisite: MTH 1016 or permission of the instructor. Four hours per week.

CSC 2555 Theory of Computation 4 cr.

A study of the theoretical foundations of computer science and computability. Students will explore formal languages (regular and context free languages), their acceptance by finite state automata, and their description by regular expressions and context free grammars. Turing machines will be studied and the Church-Turing Thesis. The limitations of algorithmic computation will be examined. Students will apply theoretical concepts to concrete problems. Prerequisite: CSC 2820a, MTH 1314. Four hours a week.

CSC 2620 (Formerly CS 262A) Object Oriented Programming 4 cr.

A study of object oriented design and its key concepts: data abstraction, inheritance, information hiding, polymorphism, and encapsulation. Object oriented design and analysis concepts will be introduced and implemented using UML. Programs illustrating key concepts will be written in Java. Prerequisite: CSC 1610 with a minimum passing grade of C or consent of the instructor. Four hours per week.

CSC 2820 (Formerly CS 162A) Data Structures 4 cr.

Basic concepts in the representation and manipulation of data. Topics include: data abstraction and classes, dynamic memory, linked lists, stacks, queues, trees, sorting techniques and graphs. Prerequisite: CSC 1610 with a minimum passing grade of C or consent of the instructor. Corequisite: MTH 1314. Satisfies the mathematics and science distribution requirement. Four hours per week.

CSC 3120 (Formerly CS 312A) Programming Language Principles 4 cr.

This course explores the underlying nature of computer programming languages and how they are processed. Topics include language syntax and semantics, parsing, variable binding and scope, functions and parameter passing, control flow, recursion, and data types. Alternative paradigms of programming, including functional languages and scripting languages, will be explored in case studies, labs, and regular programming assignments. Prerequisite: CSC 2820. Four hours per week.

CSC 3320 (Formerly CS 332A) Operating Systems 4 cr.

This course will provide a clear description of the concepts that underlie any operating system. Topics discussed will include process management, input/output, memory management, the file system, protection and security, concurrency, and distributed systems. Examples drawn from UNIX and Microsoft Windows will be used. Programming projects will introduce students to system level programming. Prerequisite: CSC 2820. Four hours per week.

CSC 3335(Formerly CS 333A) Artificial Intelligence 4 cr.

This course explores the concept of the thinking machine, capable of its own reasoning and extending itself beyond the limits of its programming. Core topics focus on extending a machine’s ability to search for its own solutions through the exploration of problem spaces and the use of reasoning through propositional and first-order logic. Advanced topics may include game theory, expert systems, machine learning, artificial life, and natural language understanding. Course time is also spent on discussing the impact of the idea of the thinking machine on philosophy, ethics, and society. Prerequisites: CSC 2820 and MTH 1314. Four hours per week.

CSC 3500 Human Computer Interaction 4 cr.

This course introduces the students to user-centered design. Topics include: cognitive principles (perception, memory, problem solving), understanding the users of a system, designing and developing effective interfaces, ergonomics, usability testing, and usability standards. Prerequisite: CSC 1001, CSC 1510, CSC 1610 or permission of the instructor. Four hours a week.

CSC 2710 (Formerly CS 371A) Analysis of Algorithms 4 cr.

Introduction to the basic principles and techniques for analyzing algorithms. A discussion of the asymptotic complexity of algorithms using standard measures in the best, average and worst cases. Applications of the basic principles and techniques and study of upper and lower bounds of standard computer science problems including: searching, sorting, graph, string matching, polynomial, and matrix algorithms. Basic strategies for developing algorithmic solutions to problems using divide and conquer, dynamic programming, and greedy techniques will be covered. Introduction to nP-completeness problem will also be discussed. Prerequisites: MTH 1314 and CSC 2820 or consent of instructor. Four hours per week.

CSC 37200 (Formerly CS 372A) Computer Architecture 4 cr.

The course covers the analysis and design of the major elements of a digital computer. The specification of the interconnection of these elements to form a digital computer is also covered. This specification is accomplished with the aid of a special purpose register-transfer language (similar to a programming language). Control of the register-transfer sequence is treated from both the hardwired and microprogrammed viewpoints. Interrupts and I/O are treated. The MIPS assembly language will also be covered throughout the course. Prerequisite: CSC 1610, EEN 1200 with a minimum passing grade of C in both classes. Four hours per week.

CSC 3725 / MTH 3725 (Formerly MA 328A, CS 328A) Numerical Analysis 4 cr.

Theory and application of selected topics from numerical analysis. Topics include: solutions of equations and systems of equations, interpolation, numerical differentiation and integration, and numerical solution of differential equations. Error bounds are treated. Emphasis given to methods that can be implemented on a computer. If time allows, other topics may be added such as least Squares and Eigen Values. Prerequisites: MTH 1218 and CSC 1610 or consent of the instructor. Four hours per week.

CSC 3810 (Formerly CS 381A) Database Principles 4 cr.

The study of the concepts and structures necessary to design and implement a Database Management System (DBMS) focusing on modern relational database models. Data design and models will be examined. Topics include relational database models, database modeling concepts, schemas, normalization, DDL and DML (primarily SQL), file organizations, concurrency control, security controls, and object-oriented databases. Prerequisite CSC 2620. Four hours per week.

CSC 3875 System Administration, Privacy, Ethics, and Technology 4 cr.

This course puts the student in ethical situations through hands on laboratory exercises and research. It also addresses specific privacy and ethical concerns that the average user may not be aware of in their day to day activities. In addition, this course also is an introduction to the linux operating system which will include the internals of how Linux boots, runs and operates; system administration tasks; monitoring system resources; kernel loadable modules; configuration settings, and understanding the desktop GUI. This is a required course for It majors, a major elective for EE Majors, and an open elective for all others. Prerequisites: EITHER CSC 4055 (Network Security) OR CSC/EEN 3935 (Data Networking). Four hours lecture/lab a week.

CSC 3925 (Formerly CS 392A) Data Communications 4 cr.

An introduction to the fundamentals of data communications for the computer scientists. Topics include asynchronous and synchronous transmission, analog and digital transmission of data, modulation and demodulation, multiplexing, transmission median, common carriers, communication devices, error control and recovery, message switching, packet switching, LANS, polling techniques, protocols, distributed data processing, High Speed LANS, network Security, Spread Spectrum, and Cellular Wireless networks. Prerequisites: CSC 1610 and Junior standing. Four hours per week.

CSC 3935/een 3935 (Formerly CS 486A/ee 486A) Data Networking 4 cr.

The Internet is the mainstream pathway for data communications today. The major components studied include both the hardware elements: hubs, switches, bridges, and routers and the major software elements: Five layer TCP/IP stack. The student will learn about all of these in detail during class and laboratory assignments. Prerequisite: CSC 3925. Four hours per week.

CSC 3950 Web Technologies 4 cr.

An introduction to the programming tools and skills required to build and maintain web applications. Topics include: the World Wide Web, the HTTP protocol, Web standards, HTMl and XHTMl, CSS, client-side programming using Javascript, server-side programming, an introduction to ASP.NET and database access through the Web. Prerequisite: CSC 2620. Four hours per week.

CSC 4055 Computer and Network Security 4 cr.

This course is a survey on network and computer security technology. all of the basic building blocks of network security, including access control, intrusion prevention, malicious software, conventional and public key cryptography, authentication, digital signature, and many of the techniques used to protect computers will be covered. Prerequisites: CSC 1610 and Junior Standing. Four hours per week.

CSC 4205 Parallel Computing 4 cr.

This course provides an introduction to parallel computing. topics will include parallel architectures, parallel programming techniques and languages, the study of existing parallel computing systems, and performance analysis. Students will use a group of multicore computers to explore current libraries and methods used for parallel programming. Students will also implement a significant parallel program of their choice on a group of multi-core computers or other parallel hardware. Prerequisite CSC 3320 or permission of instructor. Four hours per week.

CSC 4805 (Formerly CS 490A) 2 cr.

Directed Study

CSC 4815 (Formerly CS 490A) Directed Study, Special Projects 4 cr.

Qualified students may propose a course of individual study and work to be conducted under the direction of a faulty member. May be taken more than once. Prerequisite: Consent of the instructor with approval of department.

CSC 4905 (Formerly CS 491A) Computer Science Seminar 4 cr.

Special topics class.

CSC 4910 (W)(Formerly CS 460A) Software Engineering 4 cr.

An in-depth study of the methodologies involved in designing, developing, and maintaining software systems, particularly large systems with multiple developers who must cooperate effectively to produce a quality product. Core topics include requirements analysis, specification, user interface design, software design, testing, implementation and maintenance. The major focus of the course is a semester-long project where the students work in software development teams to produce a small software system using object- oriented analysis and design methods. This course serves as a capstone experience calling on a variety of knowledge and skills and involving significant practice in professional writing in both collaborative and individual environments for different audiences: the team, the manager, the client, and the user. Prerequisites: CSC 2620 and JR or SR. standing Four hours per week.

CSC 4920(W) Information Technology Systems 4 cr.

A capstone course for Information Technology majors that focuses on a semester-long experience exploring the process by which information technology systems are selected, researched, implemented, and maintained. Students will work in teams to create and support a complete system that addresses a concrete problem. Threaded throughout this experience is an emphasis on professional conduct, skills, and both written and oral communication - with a client, with a team, with superiors, and with end-users. Prerequisite: CSC 2620 and JR or SR standing. Four hours per week.