Computer Science (CS)
CS-100 Introduction to Programming & Computation 4 Credits
Prerequisites: None
This course provides an introduction to computer program development for students with little to no programming experience. Covers the fundamental constructs and patterns present in all programming languages including: variables and expressions, data and control structures, algorithms, debugging, program design, and documentation. Introduces algorithmic problem solving, computational thinking, and Python programming with applications in science and engineering. Introduces key concepts that will help you to learn how to be effective in any other language including: MATLAB, C, Java, Javascript or any other language that you might encounter. The course will have traditional weekly assignments as well as a project that will be based on the students’ program of interest. A project bank will be available from which students can select their project built from contributions from a variety of disciplines.
Lecture: 3, Lab 2, Other 0
CS-101 Computing & Algorithms I 4 Credits
Prerequisites: None
An introduction to algorithmic problem solving, with emphasis on elementary program and software engineering techniques. Syntax and semantics of a modern programming language; programming and debugging at the file level; true object-orientation; Strings, arrays, sorting, and inheritance.
Lecture: 0, Lab 0, Other 6
CS-102 Computing & Algorithms II 4 Credits
Prerequisites: CS-101
A second course in algorithmic problem solving. Recursion, abstract data types, dynamic data structures, comparison-based sorting, elementary algorithm analysis, design of software projects of moderate size, and continuing development of programming skills.
Lecture: 3, Lab 2, Other 0
CS-203 Computing & Algorithms III 4 Credits
Prerequisites: CS-102 and CS-211
Minimum Class Standing: Sophomore
The design and analysis of advanced data structures and algorithms are covered. Topics include: algorithm design and analysis techniques, advanced data structures, advanced sorting, and applications to various problem domains.
Lecture: 3, Lab 2, Other 0
CS-211 Discrete Mathematics 4 Credits
Corequisites: MATH-101
Prerequisites: None
Propositional and first-order logic; logical equivalence and inference are covered. Course topics include: proof techniques, mathematical induction and principle of diagonalization; set operations, relations, functions; introduction to graphs and trees and their applications to computer science; lattice structures and Boolean algebras; and truth tables and minimization of Boolean expressions.
Lecture: 4, Lab 0, Other 0
CS-231 Programming Language Paradigms 4 Credits
Prerequisites: CS-102
This course examines imperative and functional programming paradigms. Imperative paradigm topics include: data representation, dynamic structures, parameter passing, memory management, and I/O. Functional paradigm topics include: lists, first class and higher order functions, lazy evaluations, and infinite data structures.
Lecture: 3, Lab 2, Other 0
CS-300 The Computing Professional 4 Credits
Prerequisites: COMM-101 and (CS-102 or CE-210)
Minimum Class Standing: Sophomore
An examination of the profession of computing from historical and ethical perspectives. Overview of the history of computing, from the earliest computational devices and theoretical foundations to modern developments. Discussion of the social impact of computing on society and the ethical implications for computing professionals, including analysis of case studies.
Lecture: 4, Lab 0, Other 0
CS-312 Theory of Computation 4 Credits
Prerequisites: CS-102 and CS-211
Minimum Class Standing: Sophomore
Topics covered in this course include: regular languages and grammars; finite-state machines and transducers; relationships between finite-state automata and regular languages; context-free languages and grammars; language recognition with stack machines and parsers; properties of formal languages; computability and undecidability; introduction to computational complexity.
Lecture: 4, Lab 0, Other 0
CS-320 Computer Graphics 4 Credits
Prerequisites: (MATH-101 or MATH-101X) and CS-102
Minimum Class Standing: Sophomore
An introduction to computer graphics. Topics include: rendering and curve drawing techniques; clipping algorithms; light and reflection models; object transformations; and introduction to three-dimensional graphics.
Lecture: 4, Lab 0, Other 0
CS-341 Web Software Tools 4 Credits
Prerequisites: CS-102
Terms Offered: Winter/Spring, alternate years
The skills and tools needed to create dynamic web-based applications using World Wide Web programming tools are covered in this course. Topics include: various markup languages, several scripting languages, web services, web servers and relational databases.
Lecture: 4, Lab 0, Other 0
CS-351 Cloud Computing 4 Credits
Prerequisites: CS-102
This course focuses on the foundations of modern networking, including: network architecture and routing protocols, mobile and wireless networks, distributed computing and virtualization, cloud computing platforms, services,architecture and security.
Lecture: 3, Lab 2, Other 0
CS-385 Introduction to Game Design 4 Credits
Prerequisites: CS-102
The technology, science, and art involved in the creation and design of computer games is studied. The course will emphasize hands-on development of games and consider a variety of software technologies relevant to games.
Lecture: 4, Lab 0, Other 0
CS-391 CS Special Topics 4 Credits
Prerequisites: None
Lecture: 4, Lab 0, Other 0
CS-415 Cryptography 4 Credits
Prerequisites: CS-203
Minimum Class Standing: Junior
A study of modern data security. Mathematical foundations of cryptography. Classical cryptographic systems and computer attacks on these systems. Cryptographic security over unsecure communication paths: cryptographic protocols, oblivious transfers, proofs of identity, signature schemes. Modern cryptographic systems: data encryption standards, public-key systems, key generation and management. External considerations are presented and discussed: security organizations role in security, privacy considerations, import/export issues.
Lecture: 4, Lab 0, Other 0
CS-420 Introduction to Virtual Reality 4 Credits
Prerequisites: CS-320
An introduction to the basics of multimedia design and development. Topics include 3D mesh modeling, animation, video editing, audio editing, and the development of interactive virtual environments.
Lecture: 3, Lab 2, Other 0
CS-425 Parallel Programming and Algorithms 4 Credits
Prerequisites: CS-231
Parallel computing has long played a vital role in addressing the performance demands of high-end engineering and scientific applications. Over the last decade, parallel computing has become important to a much broader audience as nearly all computer systems are being built using chips with multiple processor cores. The goal of CS-425 is to introduce students to the foundations of parallel computing including the principles of parallel algorithm design, analytical modeling of parallel programs, programming models for shared - and distributed - memory systems, parallel computer architectures, along with numerical and non-numerical algorithms for parallel systems. The course will include material on emerging multicore hardware, shared-memory programming models, message passing programming models used for cluster computing, data-parallel programming models for GPUs, and problem-solving on large-scale clusters using MapReduce. A key aim of the course is for students to gain a hands-on knowledge of the fundamentals of parallel programming by writing efficient parallel programs using some of the programming models learned in class. There will be different projects in CS-425 and CS-625. Students may not receive credit for both CS-425 and CS-625.
Lecture: 4, Lab 0, Other 0
CS-431 Compiler Design and Construction 4 Credits
Prerequisites: CS-102
Minimum Class Standing: Junior
A study of compiler design techniques; scanning, parsing, error recovery and intermediate code generation and optimization; tools for compiler construction, including scanner generators and compiler-compilers. Construction of a working compiler front-end.
Lecture: 4, Lab 0, Other 0
CS-441 Foundations of Data Science 4 Credits
Prerequisites: CS-102
The concepts, principles, issues and techniques for big data and cloud computing are introduced in this course. This course will provide a foundation in data science based on data curation and statistical analysis. The primary goal of this course is to introduce data analysis concepts and techniques that facilitate making decisions from a rich data set. Students will investigate big data concepts, metadata creation, interpretation, and basics of information visualization.
Lecture: 4, Lab 0, Other 0
CS-451 Operating Systems 4 Credits
Prerequisites: (CS-202 or CS-231)
Operating system function and services; architectural elements of operating systems; process management and synchronization; CPU scheduling; real and virtual memory management; case studies of historical and modern operating systems.
Lecture: 3, Lab 2, Other 0
CS-455 Computer and Network Security 4 Credits
Prerequisites: CS-102
Minimum Class Standing: Junior
A study of security in computing systems, including policies, audit, and protection. Physical and personnel security, security of network services, firewall construction and evaluation. Incident response.
Lecture: 3, Lab 2, Other 0
CS-457 Wireless and Mobile Security 4 Credits
Prerequisites: CS-102
Terms Offered: Summer/Fall, alternate years
Topics for this course encompass information and network security in wireless and mobile environments, including wireless ad-hoc, mesh and sensor networks, smartphones, and mobile communication systems.
Lecture: 4, Lab 0, Other 0
CS-458 Computer and Network Forensics 4 Credits
Prerequisites: CS-102
Forensic analysis, evidence collection and data reconstruction for computing systems and networks. Document preparation for use in the legal system.
Lecture: 3, Lab 2, Other 0
CS-461 Database Systems 4 Credits
Prerequisites: CS-102
Minimum Class Standing: Junior
Database design and implementation, entity-relationship model, relational model, object-oriented model, logical rules, relational algebra and logic, relational query languages, physical data organization, design theory for databases, distributed and Web-based databases.
Lecture: 4, Lab 0, Other 0
CS-465 Information Retrieval and Data Mining 4 Credits
Prerequisites: CS-102
Minimum Class Standing: Junior
Information retrieval and data mining topics, including information storage and retrieval, file structures, precision and recall, probabilistic retrieval, search strategies, automatic classification, automatic text analysis, decision trees, genetic algorithms, nearest neighbor method, and rule induction.
Lecture: 4, Lab 0, Other 0
CS-471 Software Engineering 4 Credits
Prerequisites: CS-102
Minimum Class Standing: Junior
Approaches and techniques for designing and developing large software systems. Software life cycles -- object-oriented and agile design techniques are emphasized. Requirements, specification, design, and documentation through design patterns and modeling languages. Software quality assurance, validation and verification. Security features designed into system. Project team organization and management. Students will work in teams on a substantial software project.
Lecture: 4, Lab 0, Other 0
CS-481 Artificial Intelligence 4 Credits
Prerequisites: CS-102
Topics covered include: Types of intelligence, knowledge representation, cognitive models. Heuristic and algorithmic techniques in problem solving, knowledge representation, reasoning under uncertainty and learning. Selected topics from natural language processing, vision processing, game playing, pattern recognition, speech recognition, robots, and other current topics in artificial intelligence. There will be different projects in CS-481 and CS-681.
Lecture: 4, Lab 0, Other 0
CS-482 Machine Learning 4 Credits
Prerequisites: CS-102
Minimum Class Standing: Junior
This course provides an introduction to machine learning. Topics include: supervised learning including generative, discriminative learning, parametric and non-parametric learning, neural networks, support vector machines; unsupervised learning including clustering, dimensionality reduction, kernel methods, learning theory bias/variance trade-offs, VC theory, large margins, reinforcement learning. The course will also include applications of machine learning to big data.
Lecture: 4, Lab 0, Other 0
CS-483 Algorithms for Deep Learning 4 Credits
Prerequisites: CS-102
Minimum Class Standing: Junior
This course provides students with the knowledge to implement the key algorithms related to deep learning. Deep learning is a branch of machine learning concerned with the development and application of modern neural networks. Deep learning is behind many recent advances in AI, including Siri’s speech recognition, Facebook’s tag suggestions, etc. Students will cover a range of topics including the foundational algorithms and data structures of neural networks, belief networks, generative learning models, convolutional and recurrent network structures, as well as overcoming issues with training and security. Graduate students will go into greater depth on certain topics and have additional readings and homework assignments, and a more complex project.
Lecture: 4, Lab 0, Other 0
CS-485 Advanced Game Development 4 Credits
Prerequisites: CS-385
This course covers essentials of developing a large size game and its delivery. The contents include game agent design and its delivery using a game engine. The game engine will be programmed to deliver GUI elements, sound, terrains, events and thus render the end game.
Lecture: 3, Lab 2, Other 0
CS-498 Computer Science Study Abroad 4 Credits
Prerequisites: None
Advanced Topics in the Computer Science. This is a transfer course taken as part of Kettering's Study Abroad Program.
Lecture: 4, Lab 0, Other 0
CS-499 Computer Science Independent Study 4 Credits
Prerequisites: None
Terms Offered: As Decided
This course facilitates depth and breadth of study in a particular area of Computer Science. Students must request and receive approval of the independent study topic with the instructor.
Lecture: 4, Lab 2, Other 0