Course Descriptions


CSC 150: FOUNDATIONS OF COMPUTER SCIENCE

provides a survey and overview of computer science via its Grand Ideas. Computer Science is the study of problem solving, which is the focus of CSC 150. The view 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 concepts along with 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. The relationship between a Christian worldview and a technological society is investigated. CSC 150 serves as the foundation for all further CSC courses and has no prerequisites; it is therefore suitable for all students as an introduction to the fascinating world of computer science and information technology.

CSC 150 satisfies the core mathematics requirement (except for CS and IT majors).

3 credits.


CSC 175 INFORMATICS: APPLICATION OF TECHNOLOGY

is the continuation of CSC 150 with a focus on tools and techniques for the advanced application of computer technology to real-world problems. Both hardware (eg, robotics, computer construction, game consoles, etc) and software (eg, image manipulation, macro development, databases, etc) will be used to create productive and efficient solutions to actual problems. Informatics allows the student to develop expertise in effectively applying computer technology to a wide variety of personal and professional problems. Analysis of problems and synthesis of automated solutions is emphasized. A unit approach allows the integration of current events, technology skills, science concepts, and human factors into viable practice. The relationship between a Christian worldview and the application of technology is investigated.

Prerequisites: CSC 150 with a grade of C or better.

3 credits.


CSC 180: READINGS IN SCIENCE AND TECHNOLOGY

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.

Prerequisites: CSC 150 with a grade of C or better.

3 credits.


CSC 200: FOUNDATIONS OF PROGRAMMING

allows students to explore computer programming concepts within the genre of video games. An industry standard development environment is used which allows students to create visually stunning video games while learning the basics of computer programming. Topics covered include: variables, conditionals, iteration, methods, and threads. These topics are covered within the context of good problem solving techniques, algorithm design, and user experience. The use of a development environment allows students to focus on the concepts of programming while minimizing the complexity of language details.

Prerequisites: CSC 150 with a grade of C or better.

3 credits.


CSC 210: THE ART AND SCIENCE OF COMPUTER ANIMATION

This course will introduce students to 3D computer animation including the endto-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 and CSC 200 with a grade of C or better.

3 credits.


CSC 250: COMPUTER SCIENCE, THEORY AND PRACTICE I

studies the foundational issues of computer programming in detail. The primary course emphasis is on computer control structures (selection, repetition, procedure, etc) — 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 150 and CSC 200 with a grade of C or better.

3 credits.


CSC 300: COMPUTER SCIENCE, THEORY AND PRACTICE II

explores advanced topics of computer programming in some detail. The primary course emphasis is on computer data structures (stacks, queues, linked-lists, etc) – how they are mathematically derived in theory and applied in the practice of problem solving. Additional concepts to be studied include: encapsulation, information hiding, data abstraction, and efficient representation and manipulation of data. CSC 300 is a continuation of CSC 250 using a similar programming environment.

Prerequisites: CSC 250 with a grade of C or better.

3 credits.


CSC 313: THE IT EXPERIENCE – INFORMATION TECHNOLOGY

is a service organization and profession. An IT professional solves problems for other people by applying and managing technology (both hardware and software). An effective IT practitioner understands both technology and people. The IT professional is able to effectively communicate with users in order to understand the problem and provide a solution. CSC 313 allows students to develop a number of problem-solving strategies by administering the technology used in the Computer Science department.

Prerequisites: CSC 250 with a grade of C or better.

1 credit


CSC 325: COMPUTER ORGANIZATION AND ARCHITECTURE

investigates the internal hardware function and structure of a computer in depth. Thes 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 150 and CSC 250 with a grade of C or better and upper-division status.

3 credits.


CSC 350: COMPUTER OPERATING SYSTEMS

examines the foundational concepts, functions, and structure of operating systems. The primary operating system jobs of resource management, interfacing, and command interpretation are studied in depth. The roles of computer scientist and systems software are investigated using both a microcomputer operating system and a large computer operating system. Students carry out a systems level programming project.

Prerequisites: CSC 150 and CSC 250 with a grade of C or better and upper-division status.

3 credits.


CSC 370: SOFTWARE ENGINERING

affords the student the opportunity to explore the art and science of the programming process in great detail. Principles of design, support and management of software projects are investigated. The software development lifecycle is used as a vehicle for the study of the software development process from conception through birth and into maintenance, with an emphasis on design considerations, user and developer documentation, coding tools, and quality assurance. Actual programming projects are analyzed along with current research in the field. Two major software projects, one individual and one team, are synthesized by students using ‘‘professional programming practice.’’ The relationship between a Christian worldview and the development of software is investigated. Knowledge of the programming environment utilized in CSC 250 is required.

Prerequisites: CSC 150 and CSC 250 with a grade of C or better.

3 credits.


CSC 390: SPECIAL TOPICS IN COMPUTER SCIENCE

explores new and interesting topics developed in computer science. Course content varies by semester. This course may be repeated with change of topic and consent of department chair for additional credit.

Prerequisites: CSC 150 and CSC 200 with a grade of C or better.

3 credits.


CSC 400: INTERNSHIP

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.

Prerequisites: CSC 150, CSC 200, and permission of department chair.

1 credit.


CSC 410: ETHICAL COMPUTING

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 150, CSC 175, CSC 180, CSC 200, and upper-division status

3 credits.


CSC 415: 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 practical approaches to incorporating artificial intelligence into useful applications. Included are such topics as face recognition, speech recognition and robotic construction. The nature of human intelligence and the limits of machine intelligence will be treated from a scientific, philosophical, and computational perspective.

Prerequisites: CSC 150, CSC 175, CSC 200, and upper-division status.

3 credits.


CSC 420: HUMAN COMPUTER INTERACTION

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.

Prerequisites: CSC 150, CSC 175, CSC 200, and upper-division status.

3 credits.


CSC 425: COMPUTER ORGANIZATION AND ARCHITECTURE II

is a continuation of CSC 325. Advanced topics in organization and architecture are treated in depth. Concepts include: external interfacing, bus design, CU and ALU function and structure and parallel processing. Students will specify, design, and construct a hardware project.

Prerequisites: CSC 150 and CSC 325 and upper-division status.

3 credits.


CSC 426: DATA SECURITY

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 150, CSC 175, CSC 200, and upper-division status.

3 credits.


CSC 430: DATABASE SYSTEMS

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 150, CSC 175, CSC 180, CSC 200, and upper-division status.

3 credits.


CSC 440: NETWORKING

is an in-depth analysis 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 as they understand the transport layer down to the physical layer.

Prerequisites: CSC 150, CSC 175, CSC 200, CSC 250, and upper-division status.

3 credits.


CSC 450: SYSTEMS SOFTWARE

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 150, CSC 325, and CSC 350.

3 credits.


CSC 460: WEB SYSTEMS

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 150, CSC 175, CSC 180 and CSC 200.

3 credits.


CSC 470: PROGRAMMING LANGUAGES

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 150, CSC 300, CSC 370.

3 credits.


CSC 490: SENIOR SEMINAR I

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. Finally, groundwork preparation for the CSC 491 project will be laid. Students are challenged to explore the relationship between a Christian worldview and the fundamental concepts of computer science and technology.

Prerequisites: Senior Standing in CS (consent of department chair).

3 credits.


CSC 491: SENIOR SEMINAR II

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 370 and Senior Standing in CS (consent of department chair).

3 credits.