Computer Science (CS)

Courses

CS 1030. Problem Solving with Computers. 3 Hours.

For any student interested in how computers are used to solve problems. This course will introduce the use of computers in problem solving including problem decomposition and algorithm construction. Students will be required to complete simple programming projects. Offered based upon sufficient student need. Course fee required. FA, SP.

CS 1400. Fundamentals of Programming. 3 Hours.

Required of all students pursuing Computer and Information Technology degrees. Open to all students with a general interest in computer programming. Covers structured programming techniques and the syntax of a high level programming language through completion of programming projects of increasing difficulty. Course fee required. FA, SP, SU.

CS 1410. Object Oriented Programming. 3 Hours.

Required of all students pursuing Computer and Information Technology degrees, open to all students with a general interest in computer programming. Introduces object oriented programming techniques through completion of programming projects of increasing difficulty. Course fee required. Prerequisite: CS 1400 (Grade C- or higher). FA, SP.

CS 2420. Introduction to Algorithms and Data Structures. 3 Hours.

Required of students pursuing a Computer Science or Information Technology degree or emphasis, open to any student with a strong interest in computer programming. Covers the design and use of common data structures, lists, stacks, queues, trees, hash tables, and graphs through completion of several challenging programming projects. Introduces computational complexity and algorithm analysis. Course fee required. Prerequisite: CS 1410 (Grade C- or higher). FA, SP.

CS 2450. Software Engineering. 3 Hours.

Required of students pursuing a Computer Science degree or emphasis, open to any student with a strong interest in computer programming. Covers current software engineering theory and practice through completion of a challenging team project. Dual listed with MIS 4450 and WEB 3450 (students may take only one course for credit). Course fee required. Prerequisite: CS 2420 (Grade C- or higher). FA, SP.

CS 2810. Computer Organization and Architecture. 3 Hours.

Required of students pursuing a Computer Science degree or emphasis, open to any student with a strong interest in computer programming. Covers digital hardware design and systems programming, including numeric representations, digital logic, processor architecture, instruction sets, assembly language, and other low-level programming topics. Course fee required. Prerequisite: CS 1410 (Grade C- or higher). FA, SP.

CS 3005. Programming in C++. 3 Hours.

For student pursuing degrees in Computer Science and Computer and Information Technologies, or any student with a strong interest in computer programming. Covers syntax and semantics of C++ programming language through completion of hands-on projects. The student must already be fluent in some other programming language. Course fee required. Prerequisite: CS 1410 (Grade C- or higher). FA, SP.

CS 3010. Mobile Application Development for Android. 3 Hours.

For students pursuing degrees in Computer Science, or other students interested in writing applications for modern mobile devices using Google's Android operating system. Prerequisites: CS 2420 (Grade C- or higher) AND CS 3005 (Grade C- or higher). SP.

CS 3020. Mobile Application Development: iOS. 3 Hours.

For students pursuing degrees in Computer Science, or other students interested in writing applications for modern mobile devices using Apple's iOS operating system. Prerequisites: CS 2420 (Grade C- or higher); AND CS 3005 (Grade C- or higher). FA.

CS 3200. Web Application Development I. 3 Hours.

For students pursuing a degree in Computer Science or an emphasis in Software Development, or other students interested in writing applications for the modern web. Covers the fundamentals of three-tier web applications, including client-side code for modern browsers, server code using representative languages, and integration with database systems; also covers the protocols that connect these components and the environments in which they run. Prerequisites: CS 1410 (Grade C- or higher) AND WEB 1400 (Grade C- or higher); OR CS 2810 (Grade C- or higher). FA, SP.

CS 3310. Discrete Mathematics. 3 Hours.

For students pursuing degrees in Computer Science, or other students interested in counting theory and applications. Covers mathematical reasoning, combinatorial analysis, sets, permutations, relations, computational complexity, and Boolean logic through homework and programming assignments. Course fee required. Prerequisite: MATH 1210 (Grade C- or higher); AND CS 1410 (Grade C- or higher). FA.

CS 3400. Operating Systems. 3 Hours.

Can be used to fulfill a requirement for students pursuing a degree or emphasis in Computer Science, and open to other students. Covers operating systems design and implementation, including processes and threads, synchronization, virtual memory, and file systems. Course taught by arrangement. Course fee required. Prerequisites: CS 2420 (Grade C- or higher); AND CS 2810 (Grade C- or higher); AND CS 3005 (Grade C- or higher).

CS 3410. Distributed Systems. 3 Hours.

Can be used to fulfill a requirement for students pursuing a degree or emphasis in Computer Science, and open to other students. Covers design and implementation of network applications, including message passing, concurrency, synchronization, scalability, and partial failure. Course fee required. Prerequisites: CS 2420 (Grade C- or higher); AND CS 2810 (Grade C- or higher). SP.

CS 3440. Software Practices. 3 Hours.

For students pursuing degrees in Computer Science, or other students interested in gaining experience in software development practices. Covers practical usage of software development tools, source code control, software debugging, third party libraries and frameworks, and effective team work. Course fee required. Prerequisite: CS 3005 (Grade C- or higher).

CS 3500. Application Development. 3 Hours.

For students pursuing degrees in Computer Science or Computer Information Technology, or others with an interest in graphical interface design and implementation. Covers the theory and practice of constructing easy to use interfaces through programming graphical environment projects in a variety of languages and platforms. Course taught by arrangement. Prerequisite: CS 3005 (Grade C- or higher).

CS 3510. Advanced Algorithms/Data Structures. 3 Hours.

Required of students pursuing a Computer Science degree or emphasis. Covers the analysis and design of algorithms and data structures, including graphs, greedy algorithms, divide and conquer algorithms, and dynamic programming. Course fee required. Prerequisites: CS 2420 (Grade C- or higher); AND CS 2810 (Grade C- or higher); AND CS 3310 (Grade C- or higher). SP.

CS 3520. Programming Languages. 3 Hours.

Required of students pursuing a Computer Science degree or emphasis. Covers the principles and concepts that characterize high-level computer programming languages, including function and data abstraction, and imperative, functional, logic and object-oriented programming techniques. Course fee required. Prerequisites: CS 2420 (Grade C- or higher); AND CS 2810 (Grade C- or higher). FA.

CS 3530. Computational Theory. 3 Hours.

Required of students pursuing a Computer Science degree or emphasis. Covers the theory of computation, including finite-state automata, pushdown automata, Turing machines, and equivalent formalisms. Also introduces complexity theory. Course fee required. Prerequisites: CS 2420 (Grade C- or higher); AND CS 2810 (Grade C- or higher); and CS 3310 (can be concurrently enrolled). FA.

CS 3600. Graphics Programming. 3 Hours.

Required of students pursuing a Computer Science degree or emphasis, and open to other interested students. Covers 2-D and 3-D model creation, transformation, and various rendering techniques through completion of programming assignments. Course fee required. Prerequisites: CS 2420 (Grade C- or higher); AND CS 3005 (Grade C- or higher). SP.

CS 4200. Web Application Development II. 3 Hours.

For students interested in writing applications for the modern web. Covers advanced concepts and topics in client-side and server-side web application development. Students will be introduced to a variety of modern software frameworks, languages, architectural patterns, and techniques in order to create interactive, data-centric web applications. Course is dual listed with WEB 4200. Students may only take one course for credit. Prerequisite: CS 3200 (Grade C- or higher). SP.

CS 4300. Artificial Intelligence. 3 Hours.

Required of students pursuing a Computer Science degree or emphasis. Introduces the broad field of artificial intelligence in computer software followed by specific applications in computer gaming strategies. Students will complete programming assignments. Course fee required. Prerequisites: CS 2420 (Grade C- or higher); AND CS 2810 (Grade C- or higher); AND CS 3005 (Grade C- or higher). FA.

CS 4307. Database Design & Management. 3 Hours.

Required of students pursuing a Computer Science degree or emphasis. Covers administration of database management systems, logical database design, implementation of database designs, and application development using a DBMS. Students will design, manage, and implement databases and applications that use databases. Dual listed with IT 4300 (students may take only one course for credit). Course fee required. Prerequisite: CS 1410 (can be concurrently enrolled). FA, SP.

CS 4310. Database Administration. 3 Hours.

This course covers the database architecture and environment. Students will be able to manage user access control. Students will be able to perform backup, restore, and recovery operations. Students will be able control performance and optimization issues. It covers updating and upgrading of a database system. Students will be able to perform the importing and exporting of data to/from a database. Dual listed with IT 4310 (only one course may be taken for credit). Course fee required. Prerequisite: CS 4307 (Grade C- or higher). FA.

CS 4550. Compilers. 3 Hours.

Required of students pursuing a Computer Science degree or emphasis. Covers compiler design and implementation, including lexical analysis, parsing, symbol table management, and generating code through challenging programming assignments. Course fee required. Prerequisites: CS 2420 (Grade C- or higher); AND CS 2810 (Grade C- or higher); AND CS 3005 (Grade C- or higher). SP.

CS 4600. Senior Project. 3 Hours.

Required of students pursuing a Computer Science degree or emphasis. Students will complete an aggressive programming project of software engineering. Course fee required. Prerequisite: Senior status. SP.

CS 4920R. Internship. 1-3 Hours.

Internship course in Computer Science and Software Development. Course fee required. Variable credit 1.0 - 3.0. Repeatable up to 3 credits subject to graduation restrictions. Prerequisite: Instructor permission. Offered by arrangement.

CS 4990. Sem in Computer Science. 3 Hours.

For students wishing instruction that is not available through other regularly scheduled courses in this discipline. Occasionally, either students need some type of non-traditional instruction, or an unanticipated opportunity for instruction presents itself. This course may include standard lectures, travel and field trips, guest speakers, laboratory exercises, or other nontraditional instruction methods. Repeatable for credit as topics vary, up to 6 credits. Course fee required. Prerequisite: Advanced standing. Offered by arrangement.

CS 4991R. Competitive Programming. 0.5 Hours.

For students interested in competing in programming contests. Covers problem analysis and classification, and efficient implementation of solutions. Repeatable up to 6 times for 3 credits. Prerequisite: CS 1400 (Grade C- or higher). FA, SP.

CS 4992. Seminar in Computer Science. 0.5-3 Hours.

For students wishing instruction that is not available through other regularly scheduled courses in this discipline. Occasionally, either students request some type of non-traditional instruction, or an unanticipated opportunity for instruction presents itself. This seminar course provides a variable credit context for these purposes. As requirements, this seminar course must first be pre-approved by the department chair; second, it must provide at least nine contact hours of lab or lecture for each credit offered; and third, it must include some academic project or paper (i.e., credit is not given for attendance alone). This course may include standard lectures, travel and field trips, guest speakers, laboratory exercises, or other nontraditional instruction methods. Note that this course in an elective and does not fulfill general education or program requirements. Fees may be required for some seminar courses and instructor permission will be optional at the request of the instructor.