Computer Science
Degrees and Certificates
-
Master of Science Degree in Computer Science, MS -
Master of Science in Cybersecurity, MS -
Master of Science in Data Science, MS
Mission Statement of the Computer Science Department
In accordance with the University’s mission, the mission of the Computer Science Department is to equip our students with technology competence, literacy, knowledge and skills that will bring them to “their highest potential and prepare them to meet the challenges of the new century with informed minds and understanding hearts.” As a liberal arts University, the CS curricula contribute in providing our graduates with the necessary critical thinking and problem-solving skills needed by today’s workplace and society at large.
The purpose of the Computer Science major is to prepare students to work for government agencies, healthcare institutions, private companies, and to pursue graduate degrees. The field of Computer Science is one of the professions predicted by the U.S. Department of Labor to have very high growth through the year 2020. This program emphasizes an understanding of the field of Computer Science both as an academic discipline as well as a profession. Graduates of this program will be well-versed with various areas of Computer Science that have shaped the discipline during its explosive existence. In addition, this program will provide a firm grounding in the liberal arts, while assuring in-depth study of the discipline of computer science. Topics include software engineering, computer hardware and systems software, network and data communications, computer systems analysis and design, and database management systems.
Computer Science Learning Outcomes
At the end of their program in Computer Science/Cybersecurity Students will:
- Apply their ability to make connections between using computer technologies in their lives and in societal values.
- Understand how to act as a team worker to fulfill complex projects and tasks.
- Create a computer science related project showing their knowledge of the latest developments in computer science and cybersecurity.
- Understand the scientific basis of their discipline.
- Apply quantitative and scientific reasoning in their discipline.
See the program for School of Business for more degree information.
Classes
CS 500: OBJECT ORIENTED PROGRAMMING IN C++
Credits 4CS 501: DISCRETE STRUCTURES
Credits 3CS 502: COMPUTER ARCHITECTURE AND ORGANIZATION
Credits 3CS 503: DATA STRUCTURES AND ALGORITHMS
Credits 3CS 598: ADVANCED PROGRAMMING WITH JAVA
Credits 3CS 599: ADVANCED DATABASE AND KNOWLEDGE DISCOVERY
Credits 3CS 600: ADVANCED ALGORITHM DESIGN AND IMPLEMENTATION
Credits 3CS 605: GRAPH ALGORITHMS
Credits 3CS 610: ADVANCED COMPUTER ARCHITECTURE
Credits 3CS 615: MODELS OF COMPUTATIONS AND FORMAL LANGUAGES
Credits 3CS 620: OPERATING SYSTEMS DESIGN
Credits 3CS 625: PRINCIPLES OF PROGRAMMING LANGUAGES
Credits 3This course discusses various programming language concepts, as well as design and implementation topics for several language families. Topics include introduction languages and grammars; recursive descent parsing; data types, expressions, control structures, and parameter passing; compilers and interpreters; memory management; functional programming principles. Students completing this course should be able to quickly learn to effectively use new computer programming languages. In particular, students should be able to evaluate programming language features and designs, solve problems using the functional, object-oriented, and declarative paradigms, describe the strengths and limitations of the imperative, functional and object oriented paradigms for solving different kinds of problems (or in different application domains), explain and answer questions about specific languages that illustrate different paradigms, including questions about relevant concepts and major features, and design, define, and evaluate parts of programming languages or similar systems and justify their design decisions.
CS 630: INFORMATION SYSTEMS/TECHNOLOGY AND MANAGEMENT OF DATA
Credits 3CS 631: COMPILER DESIGN
Credits 3CS 635: OBJECT-ORIENTED ANALYSIS AND DESIGN
Credits 3This course focuses on the object-oriented approach for analysis and design of software projects. It is an applied analysis and design class, addressing the use of object-oriented techniques. This course covers domain modeling, use cases, architectural design, and modeling notations, system design, object design, mapping models to code, testing and configuration management. Students will work in small teams, each team having the responsibility for analysis, design and implementation of a software system.
CS 640: PARALLEL PROGRAMMING
Credits 3CS 645: ADVANCED WEB DESIGN AND SCRIPTING LANGUAGES
Credits 3CS 650: INFORMATION AND DIGITAL SECURITY
Credits 3CS 655: ADVANCED CRYPTOGRAPHY
Credits 3CS 660: CLOUD COMPUTING
Credits 3CS 665: ARTIFICIAL INTELLIGENCE
Credits 3CS 670: ADVANCED DATABASE MANAGEMENT SYSTEMS
Credits 3CS 675: ADVANCED DATA MINING
Credits 3CS 680: COMPUTER GRAPHICS
Credits 3CS 682: Advanced Network Security
Credits 3This course introduces security testing to those who are new to the field. This course is intended for novices who have a thorough grounding in computer and networking basics but want to learn how to protect networks by using an attacker’s knowledge to compromise network security. By understanding what tools and methods a hacker uses to break into a network, security testers can protect systems from these attacks.
Both public and private companies rely on skilled professionals to conduct test attacks on their networks as a way to discover vulnerabilities before attackers do. “Ethical hacker” is one term used to describe these professionals; others are “security tester” or “penetration tester.”
CS 683: Capstone Research in Cybersecurity
Credits 3This course is the capstone course for all students in the Cybersecurity track of MS in CS which provides the student with a hands-on environment to test and apply knowledge and skills learned throughout the program. The student will be required to critically think through real-world scenarios and recognize the value of cyber security methodologies.
CS 685: GAME DEVELOPMENT
Credits 3CS 690: ADVANCED SOFTWARE ENGINEERING
Credits 3CS 691: COMPUTER HUMAN INTERACTION
Credits 3CS 692: Ethical Issues in Technology
Credits 3This course explores the issues of computer ethics on the level of the professional computer scientist. It encourages the student's development of skills in ethical analysis through the use of methodologies such as
exploration of research articles, interactive dialog, case study analysis, and the comparison and contrasting of actual codes of ethics within the profession. Topics include: review of computer crime and computer security vis a vis hardware, software, networking, telecommunications, and database management; computer hacking and the intrusion of viruses/malware/etc.; software theft and intellectual property rights; invasion of privacy on the Internet and at the workplace; software engineering ethics and professional practices; informatics and professional responsibility; computer ethics and computer law; computer and information system failures as an ethical issue; impact of artificial intelligence and expert systems.
CS 695: SPECIAL TOPICS IN COMPUTER SCIENCE
Credits 3CS 698: Graduate Internship
Credits 3The Graduate Computer Science (CS) Internship provides the student with a professional work experience in an organizational environment. The internship is an extension of the curriculum and provides meaningful experience related to the student's area of concentration. The internship responsibilities must be approved in advance by a faculty member of the CS department. The student is supervised within the work setting and also by a faculty advisor from the department of Computer Science.
Graduate Internship 1-3 credits (elective course)
Prerequisites: the student must be in the current MS in CS program.
CS 699: CAPSTONE PROJECT
Credits 3CS 700: MASTER’S THESIS IN COMPUTER SCIENCE Part 1
Credits 3CS 701: MASTER’S THESIS IN COMPUTER SCIENCE Part 2
Credits 3CS 720: Advanced Topics in Informatics
Credits 3CSEC 665: Advanced Digital Forensics
Credits 3This course introduces students to the principal activities and state-of-the-art techniques involved in developing digital forensics systems. Topics covered may include advanced file carving and reconstruction, forensic analysis of modern filesystems, network forensics, mobile device forensics, memory forensics, and anti-forensics. This course provides an advanced digital forensic topic relating to malicious software (malware), which represents an increasing information security threat to computer systems and networks. This course also introduces students to the application of forensic science principles and practices for collecting, examining, analyzing, and presenting digital evidence. The course includes selected topics from the legal, forensic, and information technology domains and utilizes lectures, assignments, and programming projects to illustrate these topics. We will explore these topics through the use of various open-source forensic tools.
CSEC 670: Advanced Penetration Testing and Cyberwarfare
Credits 3Advanced Penetration Testing is a hands-on course that focuses on attacking and defending highly secured environments such as agencies, financial organizations, federal organizations, and large companies. The Advanced Penetration Testing course teaches the cyber-attack lifecycle from the perspective of an adversary. Advanced Penetration Testing is designed as a logical progression point for those who have completed Penetration Testing or for those with existing penetration testing experience. Students with the prerequisite knowledge to take this course will walk through dozens of real-world attacks used by the most seasoned penetration testers. The methodology of a given attack is discussed, followed by exercises in a hands-on lab to consolidate advanced concepts and facilitate the immediate application of techniques in the workplace. A sample of topics covered includes weaponizing Python for penetration testers, attacks against network access control (NAC) and virtual local area network (VLAN) manipulation, network device exploitation, breaking out of Linux and Windows restricted environments, IPv6, Linux privilege escalation and exploit-writing, testing cryptographic implementations, fuzzing, defeating modern OS controls such as address space layout randomization (ASLR) and data execution prevention (DEP), return-oriented programming (ROP), Windows exploit-writing, and much more!