Academic Catalog

2018-2019 Undergraduate Academic Catalog

Computer Science Major

App View

Degree Type Offered: B.S. Major

CSCI-105 Introduction to Programming

Credits: 4 Term Offered: Fall and Spring

This course is an introduction to computer programming using Java, a contemporary object-oriented language. Topics covered include the Java programming language ad fundamental concepts for algorithm and software design. These include problem-solving methods, procedural and data abstraction, top-down modular design and proper programming style. Students gain experience using these skills to design, code, debug, and document computer programs. The course contains 3 credit hours of lecture and 2 hours of lab per week.

CSCI-200 Intermediate Programming

Credits: 4 Term Offered: Fall and Spring

This course will further develop and expand upon the topics introduced in CSCI 105. Topics will include object-oriented concepts such as inheritance, polymorphism and exception handling. Other topics include I/O, multithreading and graphical user interfaces. The object-oriented programming language Java will be used to illustrate these topics. Problem solving, algorithm development, program design, and testing are emphasized. The course contains 3 credit hours of lecture and 2 hours of lab per week. Prerequisite: CSCI-105 Corequisite: MATH-110

CSCI-205 Data Structures

Credits: 3 Term Offered: Spring Only

Advanced programming techniques will be covered with extensive use of recursion and dynamic data structures. Abstract data types including lists, stacks, queues, trees and hash tables are studied. Algorithms for searching and sorting are explored. The topics in this course provide an essential foundation for the further study of computer science. The object-oriented programming language Java will be used to illustrate these topics. Prerequisites: CSCI-200 and MATH-120

CSCI-225 Mathematical Structures for Computer Science

Credits: 3 Term Offered: Fall Only

An introduction to the fundamental mathematical concepts and structures used in computer science. Topics include propositional and predicate logic; sets, functions, and relations; mathematical induction, counting principles, and recurrences; trees and graphs. Topics will be implemented in C++, Java, Ruby, Python or mathematical programming languages such as Mathematica or MATLAB. Prerequisite: MATH-120

CSCI-320 Algorithm Analysis

Credits: 3 Term Offered: Fall Only

Impact of data structure design on algorithm design and performance. Topics covered include graph and tree algorithms, performance analysis, testing and classification of algorithms, and design techniques. Topics will be implemented in C++, Java, Ruby, Python or mathematical programming languages such as Mathematica or MATLAB. Prerequisites: CSCI-205, CSCI-225 and two math courses from the following list: MATH-130 or MATH-131, MATH-132, MATH-140, MATH-210

CSCI-330 Operating Systems

Credits: 3 Term Offered: Spring Only

This course covers principles of computer operating systems including the management of processes, memory, I/O devices, and file systems. Other topics include issues of scheduling, security, and concurrency, distributed systems and virtualization. Students will gain practical experience working with the LINUX operating system and the C programming language. Prerequisites: CSCI-205, CSCI-225 and two math courses from the following list: MATH-130 or MATH-131, MATH-132, MATH-140, MATH-210

CSCI-340 Computer Architecture

Credits: 3 Term Offered: Fall Only

Introduction to computer systems and their organization. Topics include logic, gate, component and system level organization of generic computing systems. Bus architecture, memory organization, data representation, and processor design are discussed. Includes an introduction to assembly language programming with appropriate laboratory assignments. Prerequisites: CSCI-205, CSCI-225 and two math courses from the following list: MATH-130 or MATH-131, MATH-132, MATH-140, MATH-210

CSCI-400 Software Engineering for Computer Scientists

Credits: 3 Term Offered: Spring Only

This course is a project-based course that covers the tools and processes used in modern software development. Students will work as a team to design, implement, test and document a software system for an outside client. Lecture topics include software development strategies, problem elicitation, analysis and modeling, patterns, and team communication. Prerequisites: Senior standing in the computer science major or both CSCI-205 and permission by instructor

CSCI-440 Networks and Security

Credits: 3 Term Offered: Spring Only

Covers network organization and layered networking protocols including common Internet protocols such as TCP, IP and SMTP. Other topics include wireless communications, distributed programming, network security and client/server programming. Topics implemented in C++, Java, Ruby or Python. Prerequisites: CSCI-205, CSCI-225 and two math courses from the following list: MATH-130 or MATH-131, MATH-132, MATH-140, MATH-210

CIS-250 Introduction to Information Systems

Credits: 3 Term Offered: Spring Only

Offers a general approach to the use of Information Systems in management, education, and government. Topics include computer terminology, data communications, system design, computer ethics, human-to-computer interfaces, and computer based decision support systems. Credit may not be received for both BUS-330 and CIS-250. Prerequisite: CIS-103 or permission of instructor

CIS-350 Database Management

Credits: 3 Term Offered: Fall Only

This course presents concepts and applications of database management systems. Topics include physical and logical data organization, various database models, query languages, design concerns, integrity and security, and management issues. MS Access will be used for assignments. Prerequisites: CIS-250 or BUS-330 or permission of the instructor

And two math courses from the following :

MATH-130 Survey of Calculus

Credits: 3 Term Offered: Spring Only

Differential and integral calculus for the student who needs a working knowledge of the subject but does not plan to pursue more advanced study in mathematics. Includes theory and application of limits, derivatives, and integrals. Prerequisite: MATH-120 or satisfactory performance on placement test Credit may not be received for both MATH 130 and MATH 131

-or-

MATH-131 Calculus I

Credits: 3 Term Offered: Fall and Spring

Study of differential calculus of a single variable. Applications of the derivative are made to curve sketching, max-min problems, and linear approximation, and I'Hopital's Rule. Also included are applications of the Intermediate Value Theorem and Mean Value Theorem. Credit may not be received for both MATH 130 and 131. Prerequisites: MATH-120 or satisfactory performance on placement test

MATH-132 Calculus II

Credits: 3 Term Offered: Fall and Spring

Study of integral calculus of a single variable. Included are techniques of integration and numerical methods of integration. Applications of the integral are made to computing area, volume, arc length, and selected topics. Prerequisite: MATH-131

MATH-140 Introduction to Statistics

Credits: 3 Term Offered: Fall and Spring

Basic descriptive statistics, probability, hypothesis testing, correlation, and regression. Statistical computer software is used to analyze data. Prerequisites: MATH-118, MATH-110, MATH-115, or satisfactory performance on placement test

MATH-210 Introduction to Linear Algebra

Credits: 3 Term Offered: Spring Only

Emphasis on finite dimensional vector spaces and the algebra of matrices. Vector topics include n-dimensional vectors, dot product, norm, orthogonality, lines, planes, projections and cross products. Matrix topics include systems of equations, matrix operations, Gauss elimination, determinants, eigenvalues and eigenvectors. Prerequisite: MATH-120

And 6 additional credits chosen from the following :

CSCI-230 Scripting Languages

Credits: 3 Term Offered: Fall Only

Scripting languages are regularly used in server environments to automate tasks. This course introduces the student to the Linux operating system, which is often used in enterprise servers. Students will learn how to write scripts to automate tasks using the Unix shell and other scripting languages such as Perl, Python, and Ruby. Regular expressions and their use with common Unix commands such as grep, sed and awk/gawk are discussed. Process control, file systems, redirection, pipes, and scheduling tasks with cron are also discussed. Prerequisite: CSCI-105 Alternate years: offered 2018-2019

CSCI-240 Web API Programming Using Facebook

Credits: 3 Term Offered: Spring Only

This course focuses on the JavaScript programming language. Students learn how to use JavaScript, a browser's DOM and BOM to dynamically manipulate web pages. JQuery and web application programming interfaces (APIs) for web services such as Facebook and Google Maps are also discussed. Prerequisite: CSCI-105 Alternate years: offered 2018-2019

CSCI-305 Animation and 3D Programming

Credits: 3 Term Offered: Fall Only

Introduction to 3D graphics and animation using JavaScript and the Babylon.js API. Scenes, cameras, lighting, shadows, materials, collision avoidance, and physics engines are discussed. Prerequisite: CSCI-240 Alternate years: offered 2019-2020

CSCI-300 Mobile Application Development

Credits: 3 Term Offered: Spring Only

This course is an introduction to Android application development. Students will learn the core skills and practices used to develop and test Android applications. Topics include the Android activity life cycle, user interface components and layouts, data storage, messaging, and content providers. Students are required to purchase a test Android phone for this course. Prerequisite: CSCI-205 Alternate years: offered 2019-2020

CSCI-410 Signal and Image Processing

Credits: 3 Term Offered: Spring Only

Signal and image processing are studied using modern signal and image processing function libraries to explore and program waveform analysis, convolution and correlation including FIR filters, spectrum analysis and composing linear systems. Image processing expands FIR filtering from one dimension to two dimensions and studies applications such as image contouring, edge detection, smoothing, and noise removal. Programming will be required using signal and image processing APIs. Prerequisites: CSCI-205, CSCI-225 and two math courses from the following list: MATH-130 or MATH-131, MATH-132, MATH-140, MATH-210 Alternate years: offered 2019-2020

CSCI-415 Artificial Intelligence

Credits: 3 Term Offered: Fall Only

This course is an introduction to the field of Artificial Intelligence (AI). Discusses what AI is, surveys some of the major results in the field and looks at a few promising directions. Covers AI problem-solving, knowledge representation, reasoning, planning and machine learning in detail with exercises that expose students to various AI systems and languages. Advanced topics such as natural language processing, vision, robotics and uncertainty are also covered at a survey level. Topics implemented in C++, Java, Ruby, Python, or mathematical programming languages such as Mathematica or MATLAB. Prerequisites: CSCI-205, CSCI-225 and CSCI-320 Alternate years: offered 2018-2019

CSCI-420 Cryptography

Credits: 3 Term Offered: Fall Only

This course is an introduction to cryptography. The course will present terminology, principles, algorithms and tools related to cryptography and cryptanalysis including public and symmetric key cryptosystems, key exchange, authentication protocols and digital signatures. Prerequisites: CSCI-205, CSCI-225 and two math courses from the following list: MATH-130 or MATH-131, MATH-132, MATH-140, MATH-210 Alternate years: offered 2019-2020

CSCI-445 Ethical Hacking

Credits: 3 Term Offered: Spring Only

This course covers methods attackers use to target networks, the tools attackers use, and how these methods can be used by ethical hackers to discover weaknesses in a network with the ultimate goal of securing a network. Topics include footprinting, attack vectors, and intrusion detection systems. Prerequisites: CSCI-205, CSCI-225 and two math courses from the following list: MATH-130 or MATH-131, MATH-132, MATH-140, MATH-210 Alternate years: offered 2018-2019

ART-322 Web Design and Development

Credits: 3 Term Offered: Fall Only

Design and construct websites using current HTML and CSS standards and digital tools including Brackets, Dreamweaver and Photoshop. Emphasis on design process, content development and professional workflows.

PHYS-305 Electronics

Credits: 4 Term Offered: Fall Only

Analog electronics including diode and transistor operation, mathematical circuit analysis, operational amplifier applications. Two hours in class and six hours in lab per week. Prerequisites: MATH-132 and a minimum grade of C- in PHYS-222 Alternate years: offered 2019-2020

PHYS-306 Digital Electronics

Credits: 3 Term Offered: Fall Only

Analysis and applications of digital circuits such as flip-flops, registers, counters and analog-to-digital converters leading to interfacing real-time data collection to computers. Prerequisites: PHYS-219 or PHYS-222 Alternate years: offered 2018-2019

May be taken as a dual major with mathematics.