Computer Science

School

School of Science, Engineering and Technology

School Dean

Teresa Beam, Ph.D.

Department

Computer Science

Department Chair

Carol Luckhardt Redfield, Ph.D.

Computer Science

Computer Science is the study of computers and computational systems, with an emphasis on the development of software programs to solve problems. The computer science major learns about computers and how they work, but with a primary focus on how to analyze, design, implement, and test software systems.  At St. Mary’s University, the computer science major is introduced to all key areas of software development, including programming languages, algorithms, files and databases, networks/data communications, software engineering, operating systems, computer architecture, and computer security.  In addition, the computer science student has the opportunity to take a number of advanced elective computer science courses that allows them to tailor their degree to their particular area(s) of interest.

The Department of Computer Science offers four undergraduate degree programs. These degrees are identical with respect to the Computer Science and St. Mary's Core curriculum requirements, but differ with respect to the mathematics requirements and the availability of open electives:

  • Bachelor of Science in Computer Science with a minor in Mathematics provides the most rigorous degree due to the mathematics requirements, and prepares students for the widest range of job opportunities in the field of computer science.
  • Bachelor of Arts in Computer Information Systems requires five business courses, providing a focus on business applications of computers and preparing students for careers in computers as they apply to business problems.
  • Bachelor of Arts in Computer Science/Application Systems offers the greatest flexibility to a computer science student, providing five open electives and thus allowing a student to earn a minor in another discipline of their choosing.
  • Bachelor of Arts in Computer Science/Teacher Certification provides a computer science degree while earning a secondary teaching certificate.

Minor in Computer Science

All courses serving as prerequisites in the School of Science, Engineering and Technology must be completed with a “C” or better in order to advance to the next sequenced course.

CS 1300. Introduction to Computers. 3 Semester Hours.

Survey of computer systems and their integration and application in society. The fundamentals of software development are discussed and applied through word processing, spreadsheet, slide presentation, and database applications.

CS 1301. Computer Science Principles. 3 Semester Hours.

Includes a variety of computing topics with some programming and computational thinking.

CS 1310. Programming I in C. 3 Semester Hours.

Fundamentals of the software development process with emphasis on program design (algorithm development), structured programming techniques and code and test using a structured, modular programming language. (Fall only) Students must have a minimum SAT Math >= 550 or ACT Math >= 22 or prerequisite of MT 1303 or higher. Requires access to a Windows laptop.

CS 1311. Data Structures. 3 Semester Hours.

Data structures including properties, representation, and manipulation of internal information structures including lists, queues, stacks, and trees. (Spring only) Prerequisite: C or better in CS 1310 or EG 1302. Requires access to a Windows laptop.

CS 1320. Topics in Programming Languages. 3 Semester Hours.

Various topics in computer programming, involving designing, coding, and testing computer programs using language-specific commands. May be repeated as topics change.

CS 2110. Sophomore CS Seminar. 1 Semester Hour.

Introduction to various topics in computer science and career planning/preparation, including electronic portfolio and resume preparation, interviewing skills, employer research, professional event attendance/networking, and presentations from industry on careers in computer science, as well as internship/job opportunities. (Fall only) Prerequisite: CS major (BSCS, BSCS w/Cyber, BSCS w/Game, BACIS, BAAS, and BACSTC).

CS 2313. Object Oriented Programming I. 3 Semester Hours.

Introduction to object-oriented programming (OOP) concepts using the C++ programming language. Topics include classes, objects, exception handling, operator overloading, inheritance, polymorphism, templates (generics), stream and file input/output, and the Standard Template Library (STL). (Fall only) Prerequisite: C or better in CS1311.

CS 2315. Algorithms. 3 Semester Hours.

Topics include review of C programming language concepts and theory, design, analysis, implementation, and application of fundamental computer algorithms. (Fall only) Prerequisite: C or better in CS1311.

CS 2323. Object Oriented Programming II. 3 Semester Hours.

Review of object-oriented program (OOP) concepts using the Java programming language. Topics (in addition those listed for CS2313) include graphical user interface (GUI) design and implementation, regular expressions, applets, multithreading, networking, and database access. (Spring only) Prerequisite: C or better in CS2313.

CS 2350. Computer Architecture. 3 Semester Hours.

Introduction to the logical organization and design of digital computer hardware. Topics include simple digital logic design, memory architectures, microprogramming, instruction set architecture (ISA), and assembly language programming. (Spring only) Prerequisite: C or better in CS2313 or CS2315.

CS 3110. Junior CS Seminar. 1 Semester Hour.

Extension of various topics in computer science and career planning/preparation, including electronic portfolio and resume preparation, interviewing skills, employer research, professional event attendance/networking, and presentations from industry on careers in computer science, as well as internship/job opportunities. (Fall only) Prerequisite: CS major (BSCS, BSCS w/Cyber, BSCS w/Game, BACIS, BAAS, and BACSTC).

CS 3300. Introduction to Programming for Data Analytics (in Python). 3 Semester Hours.

Fundamentals of the software development process with emphasis on program design (software structure and algorithm development), structured programming techniques, coding, and testing using the Python programming language. Topics include literals, variables, arithmetic and relational operators, selection statements, loops, functions with parameter passing, arrays, lists, sets, dictionaries, tuples, terminal and file I/O, exception handling, and introduction to domain-specific Python libraries used for data analytics, graphics, statistics, and database, as appropriate for students taking the course.

CS 3310. Intro to Systems Analysis and Design. 3 Semester Hours.

An introduction to the use of current methodologies for the analysis and design of various types of computer software systems. Methodologies studied include both the traditional and object-oriented approaches, including Universal Markup Language (UML). (Fall only).

CS 3311. Compilers. 3 Semester Hours.

Design and implementation of compilers. Prerequisite: C or better in CS1311.

CS 3320. Files and Database. 3 Semester Hours.

Database system concepts, relational data model and relational database, SQL, relational algebra, entity relationship model, UML diagrams, database programming techniques, functional dependencies and database normalization, database security. File structures, XML files, indexing, hashing, B trees, B+ trees, distributed databases, NoSQL databases, and big data. (Fall only).

CS 3330. Computer Networks. 3 Semester Hours.

Fundamentals of data communications, TCP/IP protocol architecture, media, transmission, encoding, error detection and handling, link control, flow control, multiplexing. Local area networks. WAN technology and protocols, circuit and packet switching, IP, routing. Wireless networks. Different applications. Prerequisite: C or better in CS2313 (Spring only).

CS 3335. Survey of Programming Languages. 3 Semester Hours.

Survey of existing high-level computer programming languages with emphasis on implementation of language concepts. Students design a general-purpose programming language and develop a working compiler for their language. (Fall only) Prerequisite: C or better CS2313.

CS 3340. Software Engineering. 3 Semester Hours.

Engineering approach to software development focusing on product development in a team with appropriate documentation. (Spring only) Prerequisite: C or better in CS3310 or EG 2342.

CS 3350. Operating Systems. 3 Semester Hours.

The study of the design and implementation of computer operating systems, including issues in process, memory, file system, storage, and device management. (Fall only) Prerequisite: C or better in CS2350.

CS 4110. Senior CS Seminar. 1 Semester Hour.

Further extension of various topics in computer science and career planning/preparation, including electronic portfolio and resume preparation, interviewing skills, employer research, professional event attendance/networking, and presentations from industry on careers in computer science, as well as internship/job opportunities. (Fall only) Prerequisite: CS major (BSCS, BSCS w/Cyber, BSCS w/Game, BACIS, BAAS, and BACSTC).

CS 4175. Advanced Topics. 1 Semester Hour.

Advanced topics in Computer Science including internship. May be repeated for credit when topics vary. Prerequisite: C or better in CS2313 or instructor permission.

CS 4275. Advanced Topics. 2 Semester Hours.

Advanced topics in Computer Science including internship. May be repeated for credit when topics vary. Prerequisite: : C or better in CS2313 or instructor permission.

CS 4314. Software Security. 3 Semester Hours.

Theory and practice of software security. Identification of potential threats and vulnerabilities early in the design cycle. Methodologies and tools for identifying and eliminating security vulnerabilities. Techniques to prove the absence of vulnerabilities and ways to avoid security holes in new software. Essential guidelines for building secure software: how to design software with security in mind from the ground up and to integrate analysis and risk management throughout the software life cycle. Prerequisite: C or better in CS 2313 and CS 2323.

CS 4315. Artificial Intelligence & Machine Learning. 3 Semester Hours.

An overview of the field of artificial intelligence including knowledge representations, search, natural language processing, expert systems and an emphasis on machine learning. Prerequisite: C or better in CS 2313.

CS 4325. Computer Graphics. 3 Semester Hours.

The study and implementation of computer imaging and techniques for representation, manipulation and display of graphical objects. Prerequisite: C or better in CS 2313.

CS 4335. Game Development. 3 Semester Hours.

A study of computer games and computer game development including evaluating, designing, and developing a computer video game with appropriate documentation. Prerequisites: C or better in CS2313.

CS 4345. eLearning and Gamification. 3 Semester Hours.

A study of computer based tutoring systems, intelligent tutoring systems, and the gamification of instruction. Students evaluate computer tutors and make a tutor. Prerequisites: C or better in CS2313.

CS 4361. Computer Network Security. 3 Semester Hours.

Overview of network architecture and protocols. Network specific threats and attack types. Hacking methodologies used to assess and attack a target computer system. Security for wireless networks. Introduction to cryptography. Using security tools and techniques to find and fix vulnerabilities. Network protection systems. Prerequisite: C or better in CS 2313.

CS 4362. Comp Security & Privacy. 3 Semester Hours.

Introduction to security and privacy issues. Cryptographic tools, authentication, access control; database security; malicious software, DoS, intrusion detection, firewalls and intrusion prevision systems; software security, buffer overflow, operating system security; end-to-end system security, trusted computing, multilevel security, cloud security. Prerequisite: C or better in CS 2313.

CS 4363. Cloud Computing Security. 3 Semester Hours.

Overview of cloud computing, cloud services and platforms, Hadoop and MapReduce, cloud application development. Cloud security, architecture, authentication, authorization, access control, data confidentiality, key management; provable data possession for static data, provable data possession for dynamic data; integrity verification for multiple static/dynamic data copies over cloud servers, dynamic data and mutual trust.Prerequisite: C or better in CS 2313.

CS 4364. Digital Forensics and Cyber Crime. 3 Semester Hours.

Overview of digital forensics and cybercrime, digital forensics methods and procedures, legal issues in digital forensics, disk structures, file systems, evidence acquisition and processing, OS registry and artifacts, reporting and testimony, mobile forensics, network forensics.

CS 4365. Preparation for Security Certification. 3 Semester Hours.

Security trends and general security concepts, information security and risk management, change management, privilege management, access control, security architecture and design, physical and environment security, telecommunications and network security, cryptography, public key infrastructure, standards and protocols, business continuity and disaster recovery, legal, regulations, compliance, and investigations, application security, operations security, authentication and remote access, wireless security, intrusion detection systems, security baselines, types of attacks and malicious software, e-mail and instant messaging, web components, computer forensics.

CS 4367. Cybersecurity Risk Management. 3 Semester Hours.

Risk management fundamentals, risk management frameworks, categorize information and information systems, security controls, implement security controls, assess security controls, preparing the information system for use, monitor security state, practical applications of the NIST and technology risk management framework, physical and human resources security, security auditing, legal and ethical aspects.

CS 4368. Cybersecurity Policy and Law. 3 Semester Hours.

An overview of basic legal concepts emanating from the U.S. Constitution, federal statutes, case law, administrative regulations and treaties as they address domestic cyber law with a brief introduction to emerging international cyber warfare.

CS 4369. Cryptography Principles and Practice. 3 Semester Hours.

Basic concepts of cryptography, symmetric encryption schemes, review of finite fields, number theory, and elliptic curves, advanced cryptographic schemes, public-key cryptography, MAC, hash functions, digital signature, key management and distribution, user authentication, and different applications. Prerequisite: C or better in CS 2313.

CS 4375. Advanced Topics. 3 Semester Hours.

Advanced topics in Computer Science including internship. May be repeated for credit when topics vary. Prerequisite: C or better in CS2313 or instructor permission.

CS 4385. Programming Projects. 3 Semester Hours.

Students create a series of programming and computational assignments and solutions appropriate to first programming courses such as in middle and high school.

CS 4395. Senior Project. 3 Semester Hours.

Application of software engineering techniques to the analysis, design, implementation, and testing of a comprehensive computer software development project. (Spring only) Prerequisite: CS3340 and Senior standing or higher.

Ayad Barsoum, Ph.D.
Associate Professor

Arthur Hanna, Ph.D.
Professor

Carol Luckhardt Redfield, Ph.D.
Professor