Computer Science

School

School of Science, Engineering and Technology

School Dean

Winston F. Erevelles, Ph.D.

Department

Computer Science

Department Chair

Pamela Fink, Ph.D.

Computer Science

Computer Science studies digital computer hardware and software and emphasizes the software development process (computer programming) used to solve problems. A computer program implements an algorithm which specifies exactly how input data is converted to output data required by the problem being solved. The computer science major learns about computer architecture and about how to write programs to solve problems important to industry, government, military, and entertainment. Computers are ubiquitous in today's society, so entry-level job opportunities abound for computer science graduates, including writing business and scientific applications, developing operating systems, programming database applications, writing software for embedded control systems, and developing smart phone apps.

The Department of Computer Science offers three undergraduate degree programs. The three degrees are identical with respect to upper division Computer Science and St. Mary's Core curriculum requirements, but differ with respect to minor:

  • Bachelor of Science in Computer Science with a minor in Mathematics for students interested in a career writing scientific and/or gaming programs.
  • Bachelor of Arts in Computer Information Systems (minor in Business) for students interested in applying computers to business-related problems.
  • Bachelor of Arts in Computer Science/Application Systems (unrestricted minor) for students who want the flexibility to choose their minor.

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 1310. Programming I. 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. Students must have a minimum SAT Math >= 520 or ACT Math >= 22 or prerequisite of MT 1303.

CS 1311. Programming II. 3 Semester Hours.

Properties, representation, and manipulation of internal information structures including lists, queues, stacks, and trees. Prerequisite: CS 1310. (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 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. Prerequisite: CS major (BSCS, 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). Prerequisite: CS1311. (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 2315. Algorithms. 3 Semester Hours.

Topics include review of C programming language concepts and theory, design, analysis, implementation, and application of fundamental computer algorithms. Prerequisite: CS1311. (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 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. Prerequisite: CS2313. (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 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. Prerequisite: CS2315. (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 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. Prerequisite: CS major (BSCS, BACIS, BAAS, and BACSTC).

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).

CS 3311. Compilers. 3 Semester Hours.

Design and implementation of compilers. Prerequisite: CS1311 (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 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. Prerequisite: CS2323. (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 3340. Software Engineering. 3 Semester Hours.

Engineering approach to software development focusing on product development in a team with appropriate documentation. Prerequisite: CS2313 and CS2315. (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 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. Prerequisite: CS2313.

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. Prerequisite: CS major (BSCS, BACIS, BAAS, and BACSTC).

CS 4175. Advanced Topics. 1 Semester Hour.

Advanced topics in Computer Science. May be repeated for credit when topics vary. Prerequisite: Instructor permission.

CS 4275. Advanced Topics. 2 Semester Hours.

Advanced topics in Computer Science. May be repeated for credit when topics vary. Prerequisite: Instructor permission.

CS 4315. Artificial Intelligence. 3 Semester Hours.

An overview of the field of artificial intelligence including knowledge representations, search, natural language processing and expert systems. Prerequisite: CS 2313.

CS 4320. Files & Databases. 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, and B+ trees.

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: CS 2313.

CS 4330. Data Communication. 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.

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: CS2313. (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 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: CS2313. (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 4375. Advanced Topics. 3 Semester Hours.

Advanced topics in Computer Science. May be repeated for credit when topics vary. Prerequisite: Instructor permission.

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. Prerequisite: CS3340 and Senior standing or higher. (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.).

Ayad Barsoum, Ph.D.
Assistant Professor

Pamela Fink, Ph.D.
Associate Professor

Arthur Hanna, Ph.D.
Professor

Carol Redfield, Ph.D.
Professor