27 courses with the subject CSCI, each shown exactly as we captured it from the college's catalog, with every element we hold. Where the wording looks broken, that is our reading of the catalog, not the college's text.
CSCI 110Computer Literacy3
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.
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.
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.
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.
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.
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.
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.
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.
This course will introduce students to the administration and securing of UNIX systems using the Linux kernel. Topics will include installation, boot processes, services, firewalls, kernel module and user management.
This course will introduce students to cybersecurity topics including threats, policy, attacks, cryptography and social engineering. Students will work in the Kali Linux distribution to do penetration testing (using nmap) and computer forensics.
This course covers the fundamentals of video game development. The course will explore the various stages of the game development process, from initial concept to finished prototype. Core game development topics will be covered, such as game design, 2D and 3D graphics, input handling, basic physics and coordinate systems, scripting, and user interfaces. Additional topics include game theory, graphics programming, sound design, level design, version control, unit testing, and marketing.
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.
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.
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.
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.
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.
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
This course will introduce the field of Natural Language Processing (NLP) and its related algorithms and ideas. Students will gain experience writing NLP algorithmic code in Python, as well as working through text-based machine learning problems.
This course will build upon the content taught in CSCI 405 by diving deeper into the dominant generative AI model types, LLM architectures, and other innovations in the field.