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