Computer Science (CS)

CS-101  Computing & Algorithms I    4 Credits

Prerequisites: None
Terms Offered: Summer, Fall, Winter, Spring
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
Terms Offered: Summer, Fall, Winter, Spring
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-202  Systems Programming Concepts    4 Credits

Prerequisites: CS-102
Minimum Class Standing: Sophomore
Terms Offered: Winter, Spring
Fundamental system programming concepts are examined using the C programming language. Topics include: machine organization, data representation, interrupt handling, I/O, file management, dynamic structures, parameter passing, memory management, system calls, process creation, process control, interprocess communication, and language interfaces.
Lecture: 3, Lab 2, Other 0

CS-203  Computing & Algorithms III    4 Credits

Prerequisites: CS-102 and CS-211
Minimum Class Standing: Sophomore
Terms Offered: Summer, Fall
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
Terms Offered: Summer, Fall, Winter, Spring
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-300  The Computing Professional    4 Credits

Prerequisites: COMM-101 and (CS-102 or CE-210)
Minimum Class Standing: Sophomore
Terms Offered: Summer/Fall
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
Terms Offered: Summer/Fall
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
Terms Offered: Winter/Spring, alternate years
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: 3, Lab 2, 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 coverd in this course. Topics include: various markup languages, several scripting languages, web services, web servers and relational databases.
Lecture: 3, Lab 2, Other 0

CS-385  Introduction to Game Design    4 Credits

Prerequisites: CS-102
Terms Offered: Winter/Spring, alternate years
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: 3, Lab 2, Other 0

CS-398  Special Topics in Computer Science    4 Credits

Prerequisites: None
Terms Offered: As needed
Advanced Topics in the ComputerScience. This is a transfer course taken as part of Kettering's Study Abroad Program.
Lecture: 4, Lab 0, Other 0

CS-415  Cryptography    4 Credits

Prerequisites: CS-203
Minimum Class Standing: Junior
Terms Offered: Summer/Fall, alternate years
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
Terms Offered: Summer/Fall, alternate years
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-431  Compiler Design and Construction    4 Credits

Prerequisites: CS-102
Minimum Class Standing: Junior
Terms Offered: As needed
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: 3, Lab 2, Other 0

CS-435  Functional Language and Parsing    4 Credits

Prerequisites: CS-102
Terms Offered: Winter/Spring
Introduction to contemporary functional programming languages and techniques: lists, first class and higher order functions, lazy evaluation, and infinite data structures. Introduction to context free languages and parsing techniques: LL(k), LR(k). Construction of hand written parsers and use of automated tools for parser construction.
Lecture: 4, Lab 0, Other 0

CS-451  Operating Systems    4 Credits

Prerequisites: (CS-102 and CS-202)
Terms Offered: Summer, Fall
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
Terms Offered: Winter/Spring, alternate years
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-458  Computer and Network Forensics    4 Credits

Prerequisites: CS-102
Terms Offered: Summer/Fall, alternate years
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-459  Secure Software    4 Credits

Prerequisites: CS-102
Terms Offered: Winter/Spring, alternate years
Software security analysis. Construction of secure and re-engineering of insecure software. Secure code and cryptographic best practices. Operating system and compiler security interfaces. Documentation.
Lecture: 3, Lab 2, Other 0

CS-461  Database Systems    4 Credits

Prerequisites: CS-102
Minimum Class Standing: Junior
Terms Offered: Winter/Spring, alternate years
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: 3, Lab 2, Other 0

CS-465  Information Retrieval and Data Mining    4 Credits

Prerequisites: CS-102
Minimum Class Standing: Junior
Terms Offered: Winter/Spring, alternate years
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: 3, Lab 2, Other 0

CS-471  Software Engineering    4 Credits

Prerequisites: CS-102
Minimum Class Standing: Junior
Terms Offered: Winter/Spring
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. Project team organization and management. Students will work in teams on a substantial software project.
Lecture: 3, Lab 2, Other 0

CS-481  Artificial Intelligence    4 Credits

Prerequisites: CS-102
Terms Offered: Winter/Spring, alternate years
Topics covered include: types of intelligence, goal-based systems, heuristic search and games, hill climbing algorithms, constraint propagation, first order logic and inference, knowledge representation, expert systems, and learning systems.
Lecture: 3, Lab 2, Other 0

CS-485  Advanced Game Development    4 Credits

Prerequisites: CS-385
Terms Offered: Summer/Fall, alternate years
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
Terms Offered: As needed
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-541  Web Technology    4 Credits

Prerequisites: CS-461
Terms Offered: Summer, Fall
The concepts, principles, issues and techniques for web technology are covered in this course. The main principles and protocols in internet, the key components in XHTML, JavaScript, PERL, CGI, Java Applets, XML will be taught. Students will also learn web database applications using MySQL and PHP.
Lecture: 4, Lab 0, Other 0

CS-571  Software Requirements Engineering    4 Credits

Prerequisites: CS-471
Terms Offered: Summer, Fall
An in-depth investigation of the requirement and specification phase of the software engineering process is covered in this course. Topics include requirement determination, analysis and change techniques, requirement specification modeling with the aid of CASE tools, software quality assurance issues, walkthroughs and inspections. Case studies will also be presented and analyzed.
Lecture: 4, Lab 0, Other 0