Computer Science Course Descriptions
Designed for majors in computer science and minors in computer science and computer information systems. This course introduces the student to a general methodology for computer programming. Course content includes problem solving techniques, algorithm development, structured and objectoriented programming methodology, pseudocode, data types, selection, iteration, and arrays. Elementary file structures are also examined. Corequisite: MAT 141 or math placement level 3. Four hours.
Foundations of computing with an introduction to design and analysis of algorithms and an introduction to design and construction of programs for engineering problemsolving. The MATLAB software will be used as the programming language of choice for preengineering students. Prerequisite: MAT 141 or math placement level 3. Four hours
This course examines programming methods of greater sophistication. Topics include data abstraction, data structures, and simple recursion. Program design issues including commonality and variability analysis, coupling, and cohesion will be examined. Object oriented (OO) techniques such as data hiding and polymorphism will be emphasized. This course provides the necessary foundation for further study in computer science. Prerequisite: COS 130 or COS 131 or the permission of the instructor. Four hours.
This course provides an overview of discrete structures appropriate for work in computer science. Topics covered in this course include logic and proofs, set theory, inductive and recursive definitions and arguments, fundamentals of counting, discrete probability, relations, graphs and trees. Emphasis is placed on applications to algorithms and programming problems. Prerequisite: COS 130 or 131, or the permission of the instructor Four hours.
This course provides an indepth study of data structures and algorithms. Data structure topics include: stacks, lists, queues, trees, and graphs. Algorithms include: various sorts and searches, greed, divide and conquer, Dijkstra, etc. Programming techniques will include multiway recursion. Big O notation for the analysis of techniques will be emphasized. This course requires a student laptop – see Department Laptop Policy. Prerequisite: COS 210 or permission of the instructor. Four Hours
This course is an introduction to computer organization with an emphasis upon viewing the computer in a hierarchical fashion, with virtual machines built on top of the features of lower level virtual machines. There will be an emphasis upon interactions among hardware, software, firmware, and operating systems. The basic organization of a computer; its central processing unit, memory, and input/output devices all tied together by a system bus, will be learned in theory, and that theory will be applied in practice to understanding the more important computer architectures of today. Students will also learn to program in C/C++, with those languages being used as a means of communicating many of the ideas in the course. This course requires a student laptop – see Department Laptop Policy. Prerequisite: COS 230. Four hours.
Considers the impact of computer use on society. Discusses ethical use of software and protection of intellectual property rights. Topics will include: technology in scripture; distinctions between technology and science, technology and economics, technology and development; mankind’s use of technology in relation to the cultural mandate; and man as a creator. A major topic will be the responsibility of professionals based an examination of the IEEE / ACM professional code of ethics. Three hours. ‘W’
Opportunities for study in various topics of interest within the field of computer science. These may be shortterm courses offered during the semester or during the summer term. Topics will be decided by the department faculty as need and interest arise. This course requires a student laptop – see Department Laptop Policy. Prerequisites: to be determined. Credit to be determined.
A study of the nature and application of database processing. The physical representation of databases, the primary structured models used in organizing a database, commercially available database management systems, and the factors involved in implementing and using a database are covered. Students will design and work with a database using one of the database management systems on the Covenant College computing network. This course requires a student laptop – see Department Laptop Policy. Prerequisite: COS 150 or the permission of the instructor. Four hours.
This course studies the nature of computer and information security by presenting a unifying paradigm of threats, vulnerabilities, and countermeasures. Theoretical foundations that underlie principles of security are covered. In addition, current practical and applied security subjects are also addressed. Topics include protection mechanisms, authentication, access control, confidentiality, integrity, malicious logic, intrusion detection, assurance, privacy and anonymity. Prerequisite: COS 150 or permission of the instructor. Four hours.
This course introduces the basic principles of cryptography and number theory. Topics include: primes, random numbers, modular arithmetic and discrete logarithms, symmetric encryption, public key encryption, key management, hash functions, digital signatures, authentication protocols and protocols for secure electronic commerce. Elliptic curves and quantum cryptography will also be introduced. Prerequisite: COS 210 or the permission of the instructor. Four hours.
This course examines the hardware and softwarebased tools and techniques used for the protection of computer systems. In particular, the course will focus on host and network based methods and practices commonly used in the defense of cyber systems. In addition, this course examines the policies and tools common to digital forensics in successfully identifying and attributing malicious activity to particular systems and users. Topics include digital evidence collection, preservation, presentation, and preparation. Computer crime and investigation is also discussed throughout. Prerequisite: COS 150 or permission of the instructor. Four hours.
This course introduces sound security principles for incorporation into the software development process. Software security engineering includes properties of secure software, requirements analysis, design, implementation, testing, maintenance, and management. Common exploits are studied to uncover fundamental security flaws in many applications, to include security analysis techniques, buffer overruns, access controls, race conditions, input validation, network software security, testing, and software protection/antitamper technologies. Detailed explanations of common programming errors that lead to system exploitation are also covered. Prerequisite: COS 230 or the permission of the instructor. Four hours.
This course provides an introduction to operating systems, their function, development, design, and implementation. A general model of operating systems functions and development will be studied. A particular focus will be the issues of process management (concurrency, including resource locking, deadlocks, scheduling and race conditions) at both the operating system and application level. Other topics include: memory management, device management, file systems, security, fault tolerance, and performance evaluation. Prerequisite: COS 230. Four hours.
This course is an introduction to data communication networks, in both theory in practice. Theory is discussed in terms of layered protocols, organized by the OSI model. Practice is provided in two ways: a study of the various internet protocols, both in infrastructure such as TCP, IP, and DNS, and in applications such as HTTP, FTP, SMTP. The course also emphases network programming, principally using sockets, but also application level protocols. Distributed architectures such clientserver, P2P, and Ntier will be discussed. Distributed computing using RPC and remote object protocols will also be studied and practiced. Prerequisite: COS 326 or the permission of the instructor. Four hours.
Information systems are an integral part of all business activities and careers. This course is designed to introduce students to contemporary information systems and demonstrate how these systems are used throughout global organizations. The focus of this course will be on the key components of information systems - people, software, hardware, data, and communication technologies, and how these components can be integrated and managed to create competitive advantage. Through the knowledge of how IS provides a competitive advantage students will gain an understanding of how information is used in organizations and how IT enables improvement in quality, speed, and agility. Prerequisite: Common Business Core or permission of the instructor.
A survey of the significant features of existing and experimental programming languages with particular emphasis on grammars, syntax, semantics, notation, parsing, and storage arrangements. Selected examples of general purpose and special purpose languages are studied. In addition the course will cover discrete math for computing. Specifically, sets, functions, combinations, and permutations. This course requires a student laptop – see Department Laptop Policy. Prerequisite: COS 230. Four hours.
An overview of the tools, metric techniques, and team oriented methodologies necessary to support the development of large systems and application software will be given. A group project consists of the study and implementation of a large software system of the type expected in industry. This type of project requires a high degree of interaction and communication among team members, as well as rigorous coding techniques. This course requires a student laptop – see Department Laptop Policy. Prerequisite: COS 150. Four hours.
Course provides an introduction to software engineering with a focus on development process. Development process will focus on the stages of the development lifecycle including requirements, architecture, design, testing, verification and validation. Design will include an introduction to patterns. The effect of team dynamics and the need for project management will be discussed. A special focus will be made on developing professional work habits based on the Software Engineering Institutes (SEI) Personal Software Process (PSP). This course requires a student laptop – see Department Laptop Policy. Prerequisite: COS 230. Four hours.
Development of the theoretical foundations of programming: algorithms, languages, automata, computability, complexity, data structures; a broad range of fundamental topics are consolidated and extended in preparation for further study. The course includes an introduction to information theory: the understanding of the quantification of data, particularly in regards to its reliability. Implications of these theories will be developed in relation to such topics as artificial intelligence and linguistics. This course requires a student laptop – see Department Laptop Policy. Prerequisite: COS 230. Four hours.
A course offered on a subject of particular interest but unlisted as a regular course offering. The course is open to appropriate students by class standing, background, or interest, depending on the topics. All offerings are at the discretion of the department. The department uses this course to provide majors and other departments and groups with topics of current interest which are timely in the student’s development in computer science as well as other disciplines. Possible topics include artificial intelligence, the Internet, neural networks, parallel processing, expert systems, and computer graphics. This course requires a student laptop – see Department Laptop Policy. Prerequisites and credit hours will vary
An independent study required of all students majoring in computer science. The student will explore and analyze a topic related to the student’s area of interest in computer science in the light of Christian worldview. The study will result in a written thesis. Prerequisites: COS 230, Senior standing and approval by the instructor. Two hours.
(click column title to sort)
|COS||131||Computing For Engineers||MWF||1500||1550||Stern, Curt|
|COS||311||Computer and Inform. Security||MWF||1400||1450||Humphries, Jeffrey|
|COS||326||Operating Systems||T||1300||1415||Humphries, Jeffrey|
|COS||326||Operating Systems||MWF||1200||1250||Humphries, Jeffrey|
|COS||210||Discrete Struct. in Computing||T||0930||1045||Humphries, Jeffrey|
|COS||210||Discrete Struct. in Computing||MWF||0900||0950||Humphries, Jeffrey|
|COS||260||Ethical/Pro Issues-Computing||MWF||1000||1050||Hunt, John|
|COS||425||Foundations of Computer Scienc||R||1430||1545||Hunt, John|
|COS||425||Foundations of Computer Scienc||MWF||1500||1550||Hunt, John|
|COS||130||Comp Programming Methodology||R||1030||1145||Hunt, John|
|COS||130||Comp Programming Methodology||MWF||0900||0950||Hunt, John|
|COS||131||Computing For Engineers||T||1300||1415||Stern, Curt|
|COS||311||Computer and Inform. Security||T||1430||1545||Humphries, Jeffrey|