View course descriptions for
CS 101 Introduction to Computer Applications (1) Offered Fall, Spring. Students will develop a basic knowledge of computer applications through hands-on experience producing 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. Students are introduced to the basic data and control structures found in programming languages and learn proper logic, design, and coding methods. 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. Students construct a variety of programs using the C programming language, introducing them to the data types and control structures used to apply concepts such as file I/O, arrays, and pointers. 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, 431, 451.
CS 246 Object-Oriented Programming and Design (3) Offered Spring. Prereq.: At least “C-” in CS 227. Students learn to produce properly structured object-oriented solutions using concepts such as encapsulation, inheritance, and polymorphism. Required for CS 326, 331, 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. Topics covered align with the CompTIA Security+ exam objectives and prepare students for the CompTIA Security+ certification. 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. Students 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. Assembly languages are used to introduce students to fundamental assembler concepts. 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 create Java applications to gain experience in applying common development techniques in an object-oriented environment.
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. Topics covered help prepare students for the Certified Ethical Hacker certification. 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. Students gain practical hands-on experience in building, repairing, and troubleshooting personal computer hardware and software systems. Topics covered align with the CompTIA exam objectives and help prepare students for the hardware component of the CompTIA A+ certification.
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. In a team setting, students will design, create, test, and implement a large software system. In this course, students will complete the initial phases of software development while gaining experience in presenting their work both orally and in writing. The software system will be completed in CS 452. Required for CS 452.
CS 452 Software Engineering Project II (3) Offered Spring. Prereq.: CS 451. Students will complete the software system started in CS 451 and create support documentation for both customers and future developers. The final product will be tested using a variety of techniques, and 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 gain exposure to digital forensics and cyber investigations with emphasis on incident response to potentially malicious attacks in a variety of environments such as cloud, mobile devices, and enterprise networks. Students will be able to competently acquire digital evidence, examine that evidence, and render qualified opinions and findings.