Computer Science (CSCI)

CSCI 110  Computer Literacy  3  

The course introduces computer hardware and software within a focus on microcomputers. Emphasizing hands-on experience with commonly used software packages, the student learns the basics of word processing, spreadsheets and databases.

Core Category: Mathematics  
CSCI 130  Special Topics  1-3  
CSCI 150  Introduction to Programming Concepts  3  

This course will teach students the introductory skills of programming, problem solving and algorithmic thinking. It has a liberal arts focus, rather than a vocational one. Topics include variables, input/output, conditional statements/logic, Boolean expressions, flow control, loops and functions.

Core Category: Mathematics  
CSCI 175  Introduction to Computer Science  3  

This course will teach students the introductory skills of programming, problem solving and algorithmic thinking in Python. Topics include variables, input/output, conditional statements/logic, Boolean expressions, flow control, loops and functions.

Core Category: Mathematics  
CSCI 200  Introduction to Computer Programming  3  

An introduction to computer programming using the Java language. The course will teach the concepts of problem solving and procedural design, and will introduce object-oriented programming through the use of Java. Students will learn to design, code, test, debug and document computer programs.

Core Category: Mathematics  
Prerequisites: Take CSCI-175 with a minimum grade of C  
CSCI 201  Data Structures  3  

This course is a continuation of CSCI 200 with a focus on objects, classes, and data structures in Java. Students will learn the implementation and use of Java objects to represent mathematical objects, as well as abstract data types in Java programs.

Prerequisites: CSCI-200; Minimum grade C  
CSCI 210  Contemporary Applications in Computers  3  

This course is an overview of contemporary computer issues as it applies to current business procedures. The course emphasizes hands-on experience with common desktop and internet-based software for creating technology- enhanced projects. Using advanced internet search techniques and evaluation of sources will also be a component. An important theme of this course also considers the ethical implications of technology's usage, and how technology relates to a Christian worldview.

Core Category: Mathematics  
CSCI 230  Special Topics  1-3  
CSCI 250  Databases  3  

This course covers database design, database management systems, and database models, particularly relational databases. Student will learn query languages including SQL and postgreSQL, as well as database implementation and management.

CSCI 310  Networking  3  

The theory and practice behind computer networking design and implementation, particularly related to the internet. Topics include: structure and components of computer networks; routing, addressing, packet switching; network protocols; flow and error control; local area networks; network security.

Prerequisites: Take CSCI-200; MINIMUM GRADE C  
CSCI 320  Operating Systems  3  

A study of the techniques and algorithms of operating systems, and implementation of these algorithms. Topics include computer organization; processes, synchronization, scheduling; I/O; memory management; file systems.

Prerequisites: Take CSCI-201; MINIMUM GRADE C  
CSCI 325  Programming Languages  3  

An introduction to the theory, design, and implementation of programming languages - the course covers the general concepts common to all programming languages. Language types (functional, procedural, object-oriented, scripting) are compared and implementation strategies are discussed.

Prerequisites: Take CSCI-201; MINIMUM GRADE C  
CSCI 330  Special Topics  1-3  
CSCI 330B  Special Topic: Software Engineering  3  

This course highlights various technological updates of recent years and provides students with highly relevant and current information as it pertains to the practice of software development. The topics addressed within course include the areas of Software Engineering best practices, dependability & security, advanced Software Engineering concepts, and software management. The course strives to set students on the journey to becoming the innovators of tomorrow and to create software that will make our world a better, safer, and more advanced place to live. The course is an introduction to Software Engineering covering development life cycle models, requirements analysis and specification design concepts and methods, testing, maintenance, CASE tools and management concerns. Additional topics may include reuse metrics, experimentation, reengineering, development environments, and standards.

CSCI 340  Software Engineering  3  

This course highlights various technological updates of recent years and provides students with highly relevant and current information as it pertains to the practice of software development. The topics addressed within course include the areas of Software Engineering best practices, dependability & security, advanced Software Engineering concepts, and software management. The course strives to set students on the journey to becoming the innovators of tomorrow and to create software that will make our world a better, safer, and more advanced place to live. The course is an introduction to Software Engineering covering development life cycle models, requirements analysis and specification design concepts and methods, testing, maintenance, CASE tools and management concerns. Additional topics may include reuse metrics, experimentation, reengineering, development environments, and standards.

Prerequisites: CSCI 200  
CSCI 360  Computer Architecture  3  

The organization and design of computer systems hardware: processor design, memory design, I/O devices, and the software/hardware interface. Includes assembly language programming, programming in C, data representation and computer arithmetic, boolean algebra.

Prerequisites: Take CSCI-201; MINIMUM GRADE C  
CSCI 400  Directed Study  3  
CSCI 405  Artificial Intelligence  3  

This course examines algorithms and systems that can learn without being explicitly programmed. Topics include: clustering, classification, prediction, supervised learning, unsupervised learning, decision trees, support vector machines, random forests, and regression. The course begins with an overview of machine learning systems, then escorts students through an end-to-end machine learning project example involving regression. Classification systems are considered and the metrics used to evaluate classifiers are discussed. The training of linear models is discussed, with special attention paid to closed-form solutions and gradient descent algorithms.

Prerequisites: Take CSCI-201; MINIMUM GRADE C  
CSCI 410  Analysis of Algorithms  3  

A study of algorithms and methods of analysis of their complexity: asymptotic analysis of complexity, searching and sorting algorithms, language processing algorithms, NP-completeness. Prerequisite: CSCI 201, MATH 161

CSCI 450  Applied Computer Science  3  

This course serves as a capstone for the Computer Science Major. Students will propose and create an end-to-end custom project. Prerequisite: CSCI 405

CSCI 495  Computer Science Internship  2-12  
CSCI 498  Teaching Assistant  1-3