View course descriptions for

Important note

Courses that do not have a term notation are not offered on a set rotation. The number of semester credit hours which a course carries is listed in parentheses following the course title.

CS 101 Introduction to Computer Applications (1) Offered Fall, Spring. The student will develop a basic knowledge of computer applications through hands-on experience. The student will be able to produce documents using word processing, spreadsheet, and presentation software. Meets 2 hours a week. Required for BA 330; ED 306; OA 201, 411; PW 305; SE 313.

CS 130 Introduction to Information Technology (2) Offered Fall, Spring. Students will study the history of information technology, ethical and legal issues related to computer technology, and computer equipment and software. Students will also learn logic and basic strategies for problem solving.

CS 202 Introduction to Programming (3) Offered Fall, Spring. This course will discuss the basic data and control structures found in programming languages. Students will learn proper design and coding methods to produce projects that are correct, complete, and clear. This course is designed to prepare students for the various programming languages and concepts they will learn in future courses. Meets 4 hours a week. Required for CS 214, 367, 368, 376; SE 313.

CS 211 Introduction to Web Design (3) Offered Fall, Spring. Students will be introduced to the fundamentals of web page design and creation using basic HTML and CSS. Required for CS 333, 367, 368.

CS 214 C Programming (3) Offered Spring. Prereq.: MA 121 or higher or placement into MA 130 or higher; and credit for or concurrent enrollment in CS 202. The student will construct a variety of programs using the C programming language. The data and control structures available in C will be explored using practical exercises. File I/O, string manipulation, arrays, and pointers are among the concepts examined in this course. Meets 4 hours a week. Required for CS 227, 333, 344, 351, 442.

CS 227 Data Structures and Algorithms (3) Offered Fall. Prereq.: At least “C-” in CS 214. Students will develop an understanding of data structures commonly used in computer programming, along with algorithms to implement them in C-language programs. They also will learn advanced C-language programming. Topics examined include stacks, queues, linked lists, memory management, string handling, bit manipulation, recursive programs, binary tree manipulation, multidimensional arrays, arrays of pointers, etc. Students will write programs to demonstrate mastery of these concepts. Required for CS 246, 303, 321, 326, 431, 451.

CS 246 Object-Oriented Programming and Design (3) Offered Spring. Prereq.: At least “C-” in CS 227. This course demonstrates to students the important concepts necessary to successfully apply object-oriented design techniques and to produce properly structured object-oriented solutions. Such object-oriented concepts as encapsulation, inheritance, and polymorphism will be demonstrated in projects using the C++ programming language. Other object-oriented languages and environments will be discussed also. Required for CS 331, 335, 361, 364, 431.

CS 271 Computer Security (3) Offered Fall. Prereq.: Sophomore or above. Students will study the principles and implementations of computer security to increase their knowledge of security at various levels of computer systems. Students will also examine application of effective security management policies while addressing issues related to privacy, ethical behavior, and law in relation to computer security. Required for CS 272, 373, 471.

CS 272 Cybersecurity (3) Offered Spring. Prereq.: CS 271. Students study threats to the security of information systems as well as the responsibilities and basic tools for information security. Topics include a discussion of the new risks, threats, and vulnerabilities associated with how businesses, governments, and individuals operate in a cyber-environment today with the goal of mitigation. Students will also learn to identify attack phases, understand the adversary’s motivations, and learn principles for mitigating threats. Required for CS 379.

CS 303 Database I (3) Offered Fall. Prereq.: Credit for or concurrent enrollment in CS 227. The student gains the skills necessary to design and produce efficient databases and learns proper methodologies for designing various types of databases and solving common database configuration problems. This course also introduces SQL and gives special attention to the various database models, especially the relational model. Required for CS 306, 414, 451.

CS 306 Database II (3) Offered Spring odd. Prereq.: CS 303. Students gain practical database programming experience using popular commercial database management systems such as Oracle, Microsoft SQL Server, and MySQL. Students will develop several projects using various technologies to retrieve and manipulate data from these systems. Database administration topics such as performance tuning, security, and advanced SQL will also be discussed.

CS 321 Assembler Language Programming (3) Offered Fall. Prereq.: Credit for or concurrent enrollment in CS 227. The students will develop insight into the complexities of high-level programming as they explore the low-level interactions of the CPU with a variety of programming examples. 80x86 assembly language is used to introduce the student to fundamental assembler concepts. The course will also address other assemblers and issues on other computing platforms. Required for CS 432.

CS 326 Operating Systems (3) Offered Spring. Prereq.: CS 246 and junior or senior. Students will develop the skills necessary to manage, use, and control computing resources. Problems of resource allocation, process scheduling, memory management, file handling, and concurrency will be analyzed.

CS 331 Python Programming (3) Offered Fall. Prereq.: CS 246. Students will learn the Python programming language and will write multiple applications implementing various concepts within the core Python language and standard library.

CS 333 Human-Computer Interaction (3) Offered Fall. Prereq.: CS 211 and 214. Students will learn fundamental approaches to creating effective computer software interfaces. This course will focus on techniques to design, prototype, and evaluate graphical user interfaces.

CS 344 Networks I (3) Offered Fall. Prereq.: CS 214. This course introduces the OSI model of networking and provides the student with practical insight into each layer through programming projects. Local area network hardware and software will be demonstrated. Network administration and network security concepts will be demonstrated, and students will interact with and configure various network services through programming projects. Required for CS 346, 373.

CS 346 Networks II (3) Offered Spring. Prereq.: CS 344. The student, from a firm foundation of the OSI model and knowledge of LAN and Internet communications, will develop projects that demonstrate proficiency in data communications concepts. Data communication protocols will be examined, and students are required to develop projects that demonstrate concepts such as internetwork routing and messaging. Popular Internet programming/scripting languages will be used to illustrate network access implementation differences.

CS 351 Software Engineering I (3) Offered Fall. Prereq.: CS 214 and sophomore or above. This course discusses the methodologies of software engineering including software specification, prototyping, design, coding, and testing. Students will learn how to analyze software requirements and formulate a formal specification for software projects of various sizes. Software development in a team-based setting will be discussed. Required for CS 352.

CS 352 Software Engineering II (3) Offered Spring. Prereq.: CS 351. Students examine advanced software engineering topics from a project management perspective. The material in Software Engineering I is expanded, and additional specification, design, and testing methods are covered. Various forms of software review techniques will be practiced. Required for CS 451.

CS 361 Java Programming (3) Offered Fall even. Prereq.: CS 246. Students will gain experience writing both Java applications and applets. Multithreading, client/server processes, and other common development techniques will be presented and applied in projects.

CS 364 .NET Programming (3) Offered Spring. Prereq.: CS 246. This course will demonstrate the development of event-driven programming and graphical user interfaces (GUI) on the Windows platform. The class is taught using an object-oriented approach in the Visual Studio .NET development environment. An emphasis will be placed on current Microsoft Windows programming techniques and technology.

CS 367 Client-Side Web Programming (3) Offered Spring even. Prereq.: CS 202 and 211. Students will learn client-side web programming used in web applications. Emphasis will be placed on client-side scripting and browser compatibility issues.

CS 368 Server-Side Web Programming (3) Offered Spring odd. Prereq.: CS 202 and 211. Students examine topics in server-side programming. Server-side scripting languages are used to demonstrate various ways of creating dynamic web pages. Projects require database integration of web pages. Students create web applications that are based on dynamic data access and storage.

CS 373 Computer System Administration (3) Offered Spring even. Prereq.: CS 271 and 344. Students will perform common system administration tasks and develop a system security policy. Required for CS 379.

CS 376 Introduction to Applied Cryptography (3) Offered Fall odd. Prereq.: CS 202 and MA 326. Students will explore the application of symmetric and asymmetric cryptography within and between information systems. Topics include cryptographic protocols, tools, and techniques for strengthening security across the various important aspects of computer information systems. Students will also explore various types of attacks against encrypted data and will discuss appropriate policies and processes to defend against them.

CS 379 Ethical Hacking (3) Offered Fall even. Prereq.: CS 272 and 373. Students learn principles, methods, and techniques related to ethical hacking and penetration testing. Students learn how to utilize various tools to discover and exploit system vulnerabilities with the intent of preparing students to defend information systems against today's cyber threats. Emphasis will also be placed on both the legal and ethical implications related to engaging in these types of activities. Required for CS 472.

CS 400 Computing Internship (1) Offered Both sem., Interterm, and Summer. Prereq.: Junior or senior; computing major; and approval from chair of engineering and computer science. Students receive practical experience in this elective course conducted for a minimum of 40 hours at an approved off-campus facility. Students document their involvement and contemplate details related to problem solving, teamwork, and current practice observed in the computer field.

CS 401 Computer Science Seminar (1) Offered Spring. Prereq.: Junior or senior computing major. Students analyze, present, and discuss selected topics from current literature and activities in the area of computer science.

CS 405 Computer Hardware Maintenance (3) Offered Fall, Spring. Prereq.: Junior or senior. This course will allow the student to demonstrate practical experience in analyzing, installing, troubleshooting, and repairing personal computer hardware and software through hands-on projects. Projects will focus on installing a variety of hardware including video boards, sound cards, network cards, RAM, and many other system-related devices. The various personal computer architectures and how they affect the installation of hardware and software will be discussed.

CS 414 Systems Design (3) Offered Spring. Prereq.: CS 303 and senior cybersecurity or information technology concentration in last two semesters, or approval from chair of engineering and computer science. The purpose of this course is to train students in developing a small business computer application. The students will participate in teams to consider the current and future requirements of the application. The teams will develop the entire application including analysis, design, planning, coding, testing, documenting, and implementing. Student may not have concurrent enrollment in CS 452.

CS 431 Theory of Computation (3) Offered Fall. Prereq.: CS 246 and MA 224 and at least “C-” in CS 227. The students will examine the mathematical foundation of computation. Through the study of automata of varying complexity, the student will explore the bounds of what is and what is not computable. An emphasis is placed on parsing and recognition of formal languages and grammars by various classes of automata, culminating with an in-depth coverage of the Turing Machine.

CS 432 Computer Architecture (3) Offered Spring. Prereq.: CS 321. The functioning of computers on the hardware level is examined in detail. Students will learn how computer hardware components interact in a computer system. The conversion of source code into machine language will be discussed and used in projects. An emphasis will be placed on understanding data flow through the various types of current and past microprocessors, storage devices, computer memory, and other hardware components.

CS 442 Programming Languages (3) Offered Spring. Prereq.: CS 214. This course will expose the students to a variety of lesser-known programming languages. The various concepts and theories of programming languages will be explored, and students will produce several projects demonstrating these concepts and theories. The languages explored include Python, FORTH, Prolog, Lisp, and Awk. Other popular languages and concepts will be introduced as the subject warrants.

CS 451 Software Engineering Project I (3) Offered Fall. Prereq.: At least “C-” in CS 227, credit for or concurrent enrollment in CS 303 and 352, and computer science concentration in last two semesters, or approval from chair of engineering and computer science. This course is the first of two capstone courses for computer science students. Students will use material from previous courses to design, create, test, implement, and maintain a large software system. The focus of this course will be the completion of the initial phases of software development in a team setting. Students will complete the requirements analysis, specification, design, and prototyping phases of the project. Students will gain experience in presenting their work both orally and in writing for each of these stages of the process. Initial coding will be started in this course and completed in CS 452 the following semester. Required for CS 452.

CS 452 Software Engineering Project II (3) Offered Spring. Prereq.: CS 451. This course is the second of two capstone courses for computer science students. Students will continue and complete the development, coding, and testing of the software projects started in CS 451. Students will develop both the final software project and appropriate support documentation for both customers and future developers. The final product will be tested using a variety of techniques, and a set of tests capable of being used for ongoing product maintenance will be developed. Students will gain experience presenting their final system to their peers and faculty members at the annual Software Expo. Student may not have concurrent enrollment in CS 414.

CS 471 Information Security Management (3) Offered Fall even. Prereq.: CS 271 and junior or senior computing major. Students learn the fundamentals of security from a managerial perspective with regards to design, implementation, maintenance, and disaster recovery. Students learn commonly used frameworks and methods and evaluate the suitability of these for addressing today's organizational security needs.

CS 472 Digital Forensics (3) Offered Spring odd. Prereq.: CS 379. Students will learn tools and techniques for incident response as well as forensic examination and presentation within the legal framework.