Computer Science (CSC)
CSC 1010. Foundations of Computer Science. (3 Credits)
Foundations of Computer Science provides a survey and overview of Computer science via its grand ideas. The concept of a computer system as a combination of hardware, software, and people is explored in detail. The computer system as a tool for personal and professional problem solving is emphasized. Foundational computer science issues along with current technology, terminology, ethical issues, application, and hands-on computer use are explored. Students select a topic of interest as a term project to augment class discussion and laboratory experiences. CSC 1010 serves as the foundation for all further CSC courses and is suitable for all students as an introduction to the fascinating world of computer science. CSC satisfies course requirements in mathematics (except for CS/IT majors).
CSC 1050. Computer Communication. (3 Credits)
Computer Communication introduces the basic concepts of the use of the computer in business, management, and in communication. Students will become aware of the main applications programs available, including writing memos using Word, crunching numbers with Excel, presentations with PowerPoint and using the internet to do research, send/receive email and explore other technology interests. This is an introductory course that guides students in appropriate communication techniques while using technology and computers with Office Suite programs.
CSC 1070. Theory and Fundamentals of Computer Science. (3 Credits)
This course allows the student to develop expertise in applying computer systems to a wide variety of personal and professional problems. Analysis of problems and synthesis of computerized solutions is emphasized. A unit approach allows the integration of current events, technology, concepts and practice. Selected topics include: web design; robotics; intermediate Word and Excel features; computer security; programming and scripting fundamentals; advanced issues in productivity software (e.g., data conversion, macros, objects, etc.); information management and presentation; PC design and build; and graphics.
CSC 1800. Systems Integration. (3 Credits)
This course explores classic and current articles in the fields of computer science, computer information sciences, and information technology. This course provides insights into effective reading and writing techniques in order to understand science and technology. In addition to specific activities focusing on reading and writing, students will select an interesting area of science or technology to investigate as a guided independent study. Useful information sources for science and technology will be explored, and students will be challenged to read widely and well as a foundation for life-long learning. The relationship between a Christian worldview and the development of science and technology is investigated.
CSC 2000. Coding I - Fundamentals. (3 Credits)
This course allows students to explore initial computer programming concepts with an emphasis on mapping current problem solving abilities to techniques that produce efficient computer systems. Topics covered include: history of programming languages, variables, conditionals, iteration, methods, and objects. These topics are covered within the context of good problem solving techniques, algorithm design, and user experience. The use of Python, an industry standard programming language, allows students to focus on the concepts of programming while minimizing the complexity of language details. Computer certifications (such as Mendix) are explored also.
CSC 2020. Computer Architecture. (3 Credits)
This course investigates the internal hardware function and structure of a computer in depth. The programmer’s relationship to architecture and the computer scientist’s relationship to organization are studied. Major topics include: peripherals (I/O and storage), the processor (CPU and memory), ALU (computer arithmetic), and the CU (computer instruction sets). Students will construct computer circuits from component chips and carry out programming assignments in assembly language.
Prerequisites: (CSC 200 or 2000).
CSC 2050. Coding II - Algorithms. (3 Credits)
This course studies the foundational issues of computer programming in detail. The primary course emphasis is on computer control structures (selection, repetition, procedure) — how they are mathematically derived in theory and applied in the practice of problem solving. Algorithms will be transformed into modern high-level languages (such as C# and Java) by following professional programming techniques.
Prerequisites: (CSC 200 or 2000).
CSC 2400. Machine Learning and Robotics. (3 Credits)
As sub-disciplines of artificial intelligence, machine learning and robotics hold much promise for the creation of practical and useful AI systems, but the correct understanding and application of these disciplines requires careful study of their theoretical underpinnings. This course examines the underlying theory behind current machine learning and robotic applications as well as their practical implementations. Students will work with state-of-the-art algorithms for supervised, unsupervised, and reinforcement learning. Students will also complete practical assignments related to robotic construction and navigation. Moral, ethical, and worldview issues related to these topics will be addressed from a Lutheran Christian perspective.
Prerequisites: (CSC 415 or 3400).
CSC 2800. Animation I. (3 Credits)
This course will introduce students to 3D computer animation including the end-to-end development process from script/story writing, production planning, creating geometric models and surface properties, designing motion, staging and lighting the action, rendered images with 2D and 3D effects, and editing them into a short film. Open Source software will be used for animation exercises. Throughout the course, existing 2D and 3D movies will be used for learning the techniques and methods of professional animators. The course is designed for students with no previous animation skills and will lead students through a series of exercises that build on each other to learn 2D and 3D animation techniques.
Prerequisites: (CSC 150 or 1010) and (CSC 200 or 2000).
CSC 3010. Computational Dilemmas. (3 Credits)
provides the foundation for professional ethics in the fields of Computer Science and Information Technology. Students are familiarized with the doctrine of vocation and its implications for ethical attitudes, policies and behaviors. Students see their work as a means of service with social responsibilities that go far beyond the immediate legal and business-related requirements of their employer. Relevant moral criteria are presented and applied to contemporary case studies.
Prerequisites: (CSC 250 or 2050).
CSC 3020. User Experience and Interactive Systems. (3 Credits)
concerns the fundamental issue of effective and usable human computer interaction. In addition to technical issues, people and process must be understood to create effective and usable tools. As CS and IT practitioners create and manage systems as effective problem-solving tools for others, they must develop a user-centered perspective within the organizational context. To that end this course will study related issues including cognitive principles, human-centered design, ergonomics, accessibility, emerging technologies and usable environments. CSC 3020 is part of the AI concentration in the CS curriculum.
Prerequisites: (CSC 250 or 2050).
CSC 3030. Database Fundamentals. (3 Credits)
This course provides students with the background to plan, design, implement, maintain, and use database management systems. It addresses database structures, requirements, functions and evaluation of database management systems. The course focuses on the relational database model, standard SQL language, database structure normalization, conceptual data modeling, and the entity-relationship data model. Concepts of data integrity, security, privacy, and concurrence control are included.
Prerequisites: (CSC 250 or 2050).
CSC 3050. Operating Systems. (3 Credits)
This course examines the foundational concepts, functions, and structure of operating systems. The primary operating system responsibilities of supporting virtualization, concurrency, and persistence are studied in depth. Students will investigate key concepts via a number of interactive simulations. In addition, students will carry out a number of systems programming projects in order to gain hands-on experience.
Prerequisites: (CSC 250 or 2050).
CSC 3070. Software Engineering. (3 Credits)
This course is the management of the entire software development process. This course affords the student the opportunity to explore the art and science of professional software development in great detail. The foundational aspects of the creative process, idea, implementation, and interaction are investigated in the context of software development. Principles of requirements, specifications, design, implementation, and maintenance are studied. The software development lifecycle is used as a management tool for the professional creation of effective systems. Support and management issues including design patterns, user and developer documentation, coding tools, and quality assurance are investigated. Actual programming projects are analyzed along with current research in the field. Several major software projects, both individual and team, are synthesized by students using an industry methodology. Knowledge of the programming environment utilized in CSC 2050 is required. CSC 3070 is part of the AI concentration in the CS curriculum. CSC 3070 may satisfy university requirements as a Writing Intensive course.
Prerequisites: (CSC 250 or 2050).
CSC 3200. Systems Programming. (3 Credits)
examines system-level software in depth with an emphasis on translation software and database systems. The interaction between systems-level software and the computer hardware is studied. The role of computer scientist in abstracting the hardware from the computer user is explored.
Prerequisites: (CSC 300 or 4400).
CSC 3210. Programming Language Theory. (3 Credits)
surveys major topics in the design, analysis, implementation and use of high-level languages. The four major programming paradigms are studied (procedural, functional, object, and declarative). Programming projects in each paradigm are implemented.
Prerequisites: (CSC 300 or 4400).
CSC 3400. Artificial Intelligence. (3 Credits)
Applied Artificial intelligence investigates the concepts of intelligence, both human and machine, and the nature of information, its origin, description, and transmission. This course focuses on building a theoretical foundation to support the incorporation of artificial intelligence into useful applications. Included are such topics as the ethics of artificial intelligence, machine learning, language processing, expert systems, and automated planning. The nature of human intelligence and the limits of machine intelligence will be treated from a scientific, philosophical, and computational perspective.
Prerequisites: (CSC 300 or 4400).
CSC 3600. Cybersecurity. (3 Credits)
is a survey and overview of methods to safeguard the computer and information technology employed today. Computer and information systems are increasingly under attack and therefore knowledge of attacks, protection, and counter-measures is important. Students will understand and manage assurance and security measures within the enterprise. Topics include operational issues, policies and procedures, attacks and related defense measures, risk analysis, backup and recovery, and the security of information.
Prerequisites: (CSC 250 or 2050).
CSC 3610. Networks & Security. (3 Credits)
This course is an in-depth view of data communication and networking ranging from the primitive historical approaches to the ever changing modern state of the field. It includes principles of network design, using a top-down approach and focusing on technologies used in the Internet. It will help students learn to design network-aware applications using sockets, threading, and concurrency. This course will help students understand how the Internet works, from the transport layer down to the physical layer. It will help students prepare for future positions in research and development by introducing them to the latest research in Internet technologies. This course will help students become better writers by emphasizing written work where possible. Finally, CSC 3610 will also help students apply networking technology in ways that can enrich their lives and assist in spreading the gospel.
Prerequisites: (CSC 250 or 2050).
CSC 3800. Animation II. (3 Credits)
In this course, students will continue work begun in CSC 2800 with a deeper exploration of 3D computer animation and introduction of a commercial 3D animation software product, Autodesk Maya. The class is viewed as a logical continuation of CSC 2800. This course explores the core technical and artistic aspects of 3D computer animation. Students will learn character modeling, character rigging, skinning, animation, and lighting using Autodesk Maya.
Prerequisites: (CSC 210 or 2800).
CSC 4060. Advanced Database and Web Development. (3 Credits)
Databases are the primary information repositories of 21st-century information technology. This course focuses on web technologies, information architecture, digital media, web design and development, vulnerabilities, and social software.
Prerequisites: (CSC 430 or 3030).
CSC 4200. Theoretical Computer Science. (3 Credits)
provides the student the opportunity to explore the Grand Ideas of computer science in a systematic way. Senior computer science students will be exposed to a variety of fundamental computer science concepts within a sound philosophical framework. Current events and small scale projects will augment and reinforce computer science concepts. The senior computer science assessment examination will be administered in this course. Topics include, Boolean Algebra and logic, Finite State Machines, grammars, correctness proofs, Turing Machines, analysis and discovery of algorithms, Finite Automata, coding and information theory, and aspects of creation. Students are challenged to explore the relationship between a Christian worldview and the fundamental concepts of computer science and technology.
Prerequisites: (CSC 300 or 4400).
CSC 4400. Coding III - Data Structures. (3 Credits)
As sub-disciplines of artificial intelligence, machine learning and robotics hold much promise for the creation of partial and useful AI systems, but the correct understanding and application of these disciplines requires careful study of their theoretical underpinnings. This course examines the underlying theory behind current machine learning and robotic applications as well as their practical implementations. Students will work with state-of-the-art algorithms for supervised, and reinforcement learning. Students will also complete practical assignments related to robotic construction and navigation. Moral, ethical, and worldview issues related to these topics will be addressed from the Lutheran Christian perspective.
Prerequisites: (CSC 250 or 2050).
CSC 4410. Adv Artificial Intelligence. (3 Credits)
This course builds upon the foundation developed by CSC 3400 by introducing students to a variety of cutting-edge artificial intelligence applications and systems. Included are such topics as probabilistic reasoning, planning and decision-making, natural language processing, robotic navigation, and deep learning. In addition, the ethical and moral implications of advanced artificial intelligence systems will be examined from both scientific and philosophical perspectives. The limitations of artificial intelligence will be examined via the framework of the Epistemological Assumption and a Christian worldview
Prerequisites: (CSC 415 or 3400).
CSC 4600. Penetration Testing. (3 Credits)
This course provides students with an introduction to the principles and techniques associated with the cybersecurity topics of penetration testing and ethical hacking. The course covers planning, reconnaissance, scanning, exploitation, and reporting from a “red team” offensive security posture. Students will learn how system vulnerabilities can be exploited and defended against in a variety of environments and operating systems.
Students will develop an understanding of current cybersecurity issues and ways that human errors, system errors, and programming errors can lead to vulnerabilities in systems and organizations. The course will be divided between theoretical classroom learning and practical, hands-on lab and possible project work. Course Topics include: Email security, application security. Incident response, computer forensics, fuzzing, malware, ransomware, mobile malware, honeypots, cryptography, and change management.
Prerequisites: (CSC 250 or 2050).
CSC 4800. Animation III. (3 Credits)
this course is an advanced level course designed to advance animation knowledge developed in CSC 2800 and CSC 3800. The emphasis in this course is on extending the Maya skills developed in CSC 3800 by examining and demonstrating advanced skills such as Fluids, Particles, nParticles, Fur, nHair, Bifrost, and mental rays. CSC 4800 will also introduce and utilize Maya extensions and toolsets such as RenderMan, which provides the ability to add photo-realism to your creations.
Prerequisites: (CSC 315 or 3800).
CSC 4900. Internship. (1-3 Credits)
consists of supervised work in a given area of computer science in an industrial or business setting. The topic of the internship is determined in conjunction with the responsible faculty, the on-site supervisor, and the student.
CSC 4950. Capstone Project. (3 Credits)
This course provides the student the opportunity to showcase computer science problem-solving skills by synthesizing an acceptable project. Students choose an acceptable problem and then fully implement the solution to that problem following professional programming practice. Students present their progress and project in both written reports and oral presentations.
Prerequisites: (CSC 250 or 2050).