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 algorithmyic thinking in Python. Topics include variables, input/output, conditional statements/logic, Boolean expressions, flow control, loops and functions. We will use the Cloud 9(http://c9.io) integraded development environment (IDE).

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 or MATH-240  
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 220  Advanced Programming  3  
CSCI 230  Special Topics  1-3  
CSCI 250  Databases  3  

This course covers database design and the use of databases in applications: database models, particularly relational databases; Query languages including relational algebra and SQL; 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 330A  Advanced C++  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 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  

The course will cover the basic concepts of artificial intelligence. Topics will include language processing, search, reasoning and machine learning.

Prerequisites: Take CSCI-201 and MATH-161; 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 498  Teaching Assistant  1-3