Two male students in computer lab.

Computer Science: Software Design Track

Though students use cutting-edge software development technologies, the curriculum focuses on the concepts and principles embodied by those technologies that persist over time.

The emphasis of the software design track at Saint Mary's is on providing students with an education that guides them to be proficient in core programming skills and to be experienced in project-based software development. Students will also acquire critical information technology skills which will lead to the construction of quality software. 

Students who earn a degree in the software design track will graduate with data analysis skills from multiple perspectives and technologies and an understanding of the scientific, cultural, and political role that technology plays in our global society.

Career Options

Graduates who possess a degree in the software design track are prepared for careers in the web development, computer programming, and software engineering industries.

High School Preparation

High school coursework that will support a student in his or her pursuit of degree in the software design track includes experience in Mathematics, Science, and Writing.

Enhance Your Experience

Students who earn a degree in this track will oftentimes pursue a minor or double major in mathematics or statistics

Computer Science Minor

computer science minor is also available at Saint Mary's, giving students in many majors the chance to explore the field of computer science and to gain career-enhancing skills in programming. The minor complements major areas in businessmathematics, and the sciences.

Degree Requirements

A. Computer Science Core

CS101 Computer Science Fundamentals (3 cr.)

This course provides a foundation in computing and algorithmic principles. Students are introduced to the basic conceptual building blocks of computer hardware and software systems. The tools and principles of algorithmic problem solving and systems design are explored. In the second half of the semester, students gain experience with simple programming challenges.  

CS110 Computer Science I: Introduction to Programming (3 cr.)

This course introduces students to the practice of software development. Students learn the fundamentals of programming, algorithm development, and basic design principles.

CS210 Computer Science II: Advanced Programming and Data Structures (3 cr.)

This course is a continuation of CS110. CS210 expands on the programming techniques covered in CS110, adding discussion of recursion and data structures such as lists, stacks, queues, balanced trees, graphs and heaps. Specific algorithms that use these structures efficiently and general algorithm techniques and their analysis are also covered.

CS220 Discrete Mathematics (3 cr.)

This course provides the theoretical foundation of modern computer hardware and software. It provides that foundation in the form of mathematical tools and concepts geared toward computer science applications. Topics covered include: logic and set theory; functions and relations; simple algorithm analysis; and an introduction to graph theory.

CS255 Database Design (3 cr.)

A study of fundamental database management systems. Course topics include: data modeling, database design and structured query language (SQL), transaction management, data integrity and security. Object-relational mapping techniques and technologies will also be covered.

CS300 Networking (3 cr.)

This course examines computer networks and data communication.  Topics include: telecommunications history; transmission media; transmission characteristics; error detection and correction; local and wide area networking applications; standard network models; industry standards; protocols; network management; wireless and mobile networks; network security.

CS307 Introduction to Cybersecurity (3 cr.)

This course provides an overview of modern security concepts. Topics covered will include security terminology, risk management, security policy and strategy, security awareness, cryptography, operating system security, network security, physical security and digital forensics. The course will contain a lab component where students will investigate current hardware and software tools for vulnerability analysis and penetration testing.

B. All of the following:

CS305 Server Systems (3 cr.)

This course will cover the basics of server operating systems. Topics will include installation, active directory, user management, file management, device management, data storage, group policies, data and system recovery, performance monitoring, and security. Students will complete hands on projects utilizing file servers, web servers, email servers, database servers and network services.

CS310 Web Systems I (3 cr.)

This course will introduce the essential topics of Internet programming. Students will design interactive web pages using HTML, CSS, JavaScript, and other client-side script technology. Concepts such as cookies, manipulating multimedia, and publishing and managing a remote site will be discussed.

CS320 Computer Architecture (3 cr.)

This course will introduce the function and design of the various components necessary to process information digitally as well as the study of computer organization focusing on how various electronic circuits and components fit together to create working computer systems. Concepts of machine level representation of data, assembly level machine organization, and memory system organization are also included. 

CS325 Computer Science III Software Design and Testing (4 cr.)

This third course in the three-semester programming sequence emphasizes the principle and practices of software design and testing which result in quality software. Concepts introduced in CS2 such as lists, stacks, queues, balanced trees, graphs and heaps are reinforced. This class highlights the connection between software design and software reliability. 

CS380 Web Systems II (3 cr.)

This course will advance the web site design and development skills introduced in Web Systems I.  Topics include web forms, database implementation, server-side scripting, web server implementation and configuration, design frameworks and discussion of design and development issues.

CS485 Systems Design (3 cr.)

This course introduces established and evolving methodologies for the analysis, design, and development of an information system.  Emphasis is placed on system characteristics, managing projects, prototyping, object-oriented tools and techniques for describing process flows, data flows, data structures, file designs, input and output designs, program specifications, and systems development life cycle phases.

CS490 Capstone Project (3 cr.)

In this project-oriented course, students complete a capstone project, serving as a culmination of their studies within the major.  The project entails the development of a significant piece of software or completion of technology project by a student and supervised by a designated faculty member within the department.

C. Six Credits of Computer Science electives or Internship