Computer Science (CSC)

CSC104  Linux Programming Environment  (3 course hours)  
In this class, students will learn the ins and outs of the Linux Operating System from a software developer's perspective. Students will learn how to use the powerful command line tools that are available on this platform and will create different kinds of shell scripts to automate complex operations. Students will learn how to use different editors, manipulate the filesystem, transfer files between computers, use debuggers and much more. This is a foundational class that will provide a solid base of industry-relevant skills which will be built upon for the remainder of the program and beyond.
CSC106  Object Oriented Programming  (3 course hours)  
This course reinforces and extends students' understanding of current practices of developing object-oriented software. Students gain a deeper understanding of concepts from CSC110, including implementations of abstract data types, basic GUI interfaces, exception handling, recursion, and event driven programming.
CSC110  Introduction to Programming in C  (3 course hours)  
In this class, students will learn the basics of the C programming language. This is a foundational class that will provide a base of knowledge that will be drawn upon for many of the other classes in the Computer Science Program. This class is intended for Computer Science majors. No prior programming experience is assumed. REGISTRATION: Students should have a minimum of 3 years of high school math before registering for this course.
Course offered: FA  
CSC111  Computing in Context  (3 course hours)  
This course offers a broad survey of computing in the context of modern life, including business and communication technologies, the structure of computers, technology stacks, smart devices, computer ethics, and the integration of these. Students in this course will engage in computational thinking, where they consider ways to leverage computer technology to address real-world problems. This course will also introduce core concepts of CS including basic coding and computer architecture.
CSC202  Data Structures and Algorithms  (3 course hours)  
This course explores the fundamental data structures and algorithms in computer science. Students learn to implement arrays, linked lists, stacks, queues, trees, heaps, and hash tables. They also study and analyze the time and space complexity of algorithms for searching, traversing trees, hashing, and sorting.
Pre-requisites: C or better in CSC110  
CSC205  Software Design Patterns/Principles  (3 course hours)  
In this class, students will dive into the details of how to create flexible and sustainable software solutions by employing standard Software Design Patterns and Principles. This hands-on class assumes a strong understanding of Object Oriented programming concepts. This class is intended for Computer Science majors and minors alike.
Pre-requisites: C or better in CSC106  
Course offered: FA  
CSC212  Database Systems  (3 course hours)  
Relational database systems, with emphasis on entity relationship diagrams for data modeling, the properties and roles of transactions, SQL for data definition and data manipulation, and the use of API's for database access. This course will include the influence of design on the use of indexes, views, sequences, joins, and triggers. The course will also survey non-relational database types. Students will work on projects individually and in groups on a challanging multi-week project.
Pre-requisites: C- or better in CSC106 and CSC202  
CSC301  Reflecting on the Conversation  (1 course hour)  
This class builds on GEN101 and prepares the student for GEN401. Drawing on their entire Judson experience students will reflect and articulate how that experience (major, general education, faith formation, co-curricular activities, etc.) is shaping them as whole persons. Through guided discussion and assignments, students will envision and articulate how the Judson experience will affect how they shape their world.
CSC302  Data Structures and Algorithms II  (3 course hours)  
In this class, students will explore data structures and algorithms in more depth. Students will become familiar with the different families of algorithms and will implement many of them. There will be a strong emphasis on theory and your ability to apply it using the C programming language.
Pre-requisites: C or better in CSC106 and CSC202  
Course offered: SP (odd yrs)  
CSC310  Computer Operating Systems and Architecture  (3 course hours)  
This class will cover the basic concepts of Operating Systems and Computer Architecture. Several topics will be covered in depth through hands-on programming and exploration. Processes, threads, I/O, memory management along with several other topics will be covered.
CSC314  Computer Networks  (3 course hours)  
This class takes a hands-on, deep dive into computer networks exploring the details of how computers communicate with each other. Several networking protocols will be explored in depth as well as application protocols that enable modern applications such as web browsing, telephony and more.
CSC410  Software Engineering  (3 course hours)  
Basic concepts and principles of software engineering, its tools and techniques, and methods for modeling software systems. Topics include requirements elicitation, prototyping, functional and non-functional requirements, requirements tracking, software evolution, design models, architectural principals and testing.
Pre-requisites: C- or better in CSC106  
CSC420  Cloud Computing  (4 course hours)  
In this class, students will learn about modern, cloud-based applications. Students will learn about common architectures, platforms, frameworks and middleware that are used to build cloud-based applications that run at scale. This class includes one major project that students will iterate over for the entire semester. A weekly one-hour lab is included for instructor-led collaboration and project work.
Pre-requisites: C or better in CSC202 and CSC212  
Course offered: SP (odd yrs)  
CSC430  Web Development  (3 course hours)  
This course teaches students the skills necessary for designing and building dynamic, interactive websites and applications. Topics include HTML, CSS, JavaScript, databases, web APIs, user experience design, responsive design, and web security. Hands-on projects provide students with the opportunity to apply their knowledge and work in teams. Upon completion, students will have a strong understanding of the web development process and the ability to create their own websites and applications.
CSC440  Artificial Intelligence and Machine Learning  (3 course hours)  
This course explores Artificial Intelligence (AI) and Machine Learning (ML). It covers a broad range of topics including the fundamentals of machine learning (supervised, unsupervised, and reinforcement learning), deep learning, neural networks (Convolutional Neural Networks and Recurrent Neural Networks, natural language processing, and ethical considerations in AI. Students will engage in hands-on projects and case studies, applying AI and ML techniques to real-world problems.
Pre-requisites: CSC106 and CSC212 and CSC302  
Course offered: SP  
CSC480  Sofware Project Development and Management Quality Assurance  (3 course hours)  
Major issues and techniques of project management, project evaluation and selection, scope management, team building, stakeholder management, risk assessment, scheduling, quality, verification and validation, rework, negotiation, and conflict management. Professional issues include career planning, lifelong learning, software engineering ethics, and the licensing and certification of software professionals.
CSC490  CS Senior Project  (4 course hours)  
A semester-long project in which students apply the expertise they have developed in prior CS courses. The project follows the software development life cycle from problem identification, analysis, and needs assessment, through implementation, testing, documentation, and delivery.
Pre-requisites: C- or better in CSC410  
CSC495  CS Internship  (4 course hours)  
An opportunity to obtain experience in software development, design, or other activities related to Computer Science in a professional setting. Students are required to secure their own internship and receive approval from the academic advisor or department chair before registering.
Per of Instruc Required  
Pre-requisites: CSC301