2024-2025 Undergraduate Catalog | 20253
Computer Science Courses
CS 1107 Introduction to Computers (3 credits)
An examination of the development of computing devices, modern computing practices, components of a computing system, common application software, and uses of computers in society. No previous experience with computers is assumed. Note: This course is not intended for Computer Science majors or minors. [Core Curriculum Goal Area 9]
Common Course Outline
CS 1309 Problem Solving and Computation (3 credits)
Introduction to general problem-solving techniques applicable to solving problems in computing, including elementary computational problems. Other techniques include using systematic lists, using diagrams, and looking for patterns. Includes fundamental computational concepts in information representation, computer organization, and social and ethical issues in computing. The two-hour lab introduces the use of software to solve a variety of problems. The prospective student should have a general understanding of computers and their operation. Prerequisite: Three years of high school mathematics (including two years of algebra) and a score on the Mathematics Placement Test appropriate for placement into MATH 1170. [Core Curriculum Goal Area 4]
Common Course Outline
CS 2270 Introduction to Web Programming (3 credits)
This course expands on basic knowledge of markup languages and web programming languages. Students learn how to use current web markup languages, aspects of various transfer protocols, and client-side scripting languages. All of these topics support the development of both web pages and web sites. Prerequisite: CS 1309.
Common Course Outline
CS 2321 Computer Science I (4 credits)
Introduction to the basic principles of software development using a modern high-level language, including using selection, looping, function calls, and recursion, along with simple data structures such as arrays and objects, to solve problems. Includes an introduction to software engineering techniques such as interactive debugging, software testing, and methods of software validation. Includes a two-hour lab. Prerequisite: CS 1309; MATH 1170 or MATH 1470 or higher.
Common Course Outline
CS 2322 Computer Science II (4 credits)
Topics include recursion and the study of object-oriented concepts including encapsulation, inheritance and polymorphism. It includes the study of fundamental data structures including strings, lists, stacks, queues, containers classes, binary trees, and hash tables. Also includes a group-oriented software design and implementation project. Includes a two-hour lab. Prerequisite: CS 2321.
Common Course Outline
CS 2750 Introduction to Data Analysis (3 credits)
This course provides an introduction to the basic concepts of data analysis and machine learning models, methods, and techniques pioneered within the fields of Artificial Intelligence and Statistical Modeling. Topics covered can include any/all of the following: statistics for data analysis, knowledge representation, data clustering, categorization and regression methods, decision trees, perceptions, and neural networks. Some student facility with mathematics and Excel is assumed. Prerequisite(s): CS 1309, or Instructor permission.
Common Course Outline
CS 2810 Computer Organization and Assembly Language Programming (3 credits)
An introduction to the register level architecture of a modern computer and programming with an assembly language for that processor. Includes a two-hour lab. Prerequisite or Corequisite: CS 2322.
Common Course Outline
CS 3270 Advanced Web Programming (3 credits)
This course builds on topics from CS 2270. Students learn server-side scripting, database connectivity, and dynamic web-page updating. Web development frameworks are also studied. Prerequisite: CS 2270.
Common Course Outline
CS 3350 Event-Driven Programming in a Windows Environment (3 credits)
Uses a language suitable for creating event-driven programs while focusing on methodology suitable for developing event handlers in windows-oriented programs. Prerequisite: CS 2322 or equivalent.
Common Course Outline
CS 3360 Object-Oriented Software Development (3 credits)
Techniques used in object-oriented software development. Key components of these techniques include design patterns, abstraction, encapsulation, modularity, message passing, polymorphism, inheritance, and incremental software development. Students translate a design into software using an object-oriented programming language. Additional topics may include applets, markup languages, multi-threaded programming, and rudimentary network programming. Prerequisite: CS 2322 or equivalent. May not be offered every year.
Common Course Outline
CS 3370 Mobile Application Development (3 credits)
A study of development techniques to address issues that arise in the development of interactive applications for mobile devices using a popular mobile application development platforms such as the iPhone and Android SDKs. Examines the specific requirements for mobile systems. Emphasizes how the requirements in mobile application development link to other core areas in computing. May not be offered every year. Prerequisites: CS 2270 and (CS 2321 or CS 3270).
Common Course Outline
CS 3380 Game Development (3 credits)
An overview of how to develop interactive games. Essential aspects of interactive fiction, sprites, animation, audio, graphics, physics, threading, scripting, and event handling in the context of game development. Students develop a game in a group. Prerequisite: CS 2322. Might not be offered every year.
Common Course Outline
CS 3507 Introduction to Databases (3 credits)
Provides an introduction to the theory and use of modern database systems, with particular focus on SQL, the relational data model, and relational database design. Prerequisite: CS 2322. May not be offered every year.
Common Course Outline
CS 3528 Data Structures and Algorithms (4 credits)
Study of advanced abstract information storage structures, including priority queues, binary trees, generalized trees, and graphs. Study of algorithm development techniques, including divide and conquer, greedy algorithms, and dynamic programming. Includes learning a programming language not used in CS 2321 and CS 2322. Prerequisites: CS 2322 and MATH 2210 or consent of the instructor.
Common Course Outline
CS 3560 Data Communications and Networks (3 credits)
Principles of data communications as applied to modern computer networks. Prerequisite: CS 2810. May not be offered every year.
Common Course Outline
CS 3752 Data Mining (3 credits)
This course will provide an investigation into common Data Mining models, methods and techniques pioneered within the field of Artificial Intelligence. Topics covered may include any/all of the following: knowledge representation, clustering schema, decision trees and neural networks. Some student facility with mathematics and basic statistics is assumed. Prerequisites: CS 3528. May not be offered every year.
Common Course Outline
CS 3931 Experimental Course (3 credits)
A course proposed for inclusion in the University curriculum. May not be offered more than two times as an experimental course.
Common Course Outline
CS 4298 Compiler Construction (3 credits)
The theory, design, and construction of a compiler. Prerequisite(s): CS 2810 and CS 3528. May not be offered every year.
Common Course Outline
CS 4360 Software Engineering (3 credits)
Software Engineering (SE) provides students with a capstone experience that integrates the theory and practice of SE. SE investigates a variety of SE models and guidelines used in industry, culminating in the design, specification and implementation of a software project of real-world import. Includes a two-hour lab. Prerequisites: CS 2810 and CS 3528.
Common Course Outline
CS 4390 Social, Ethical, and Professional Issues in Computing (3 credits)
Features strategies for analyzing the social, ethical, and professional implications of issues and decisions that computing professionals might encounter. Those strategies are practiced and refined in a variety of areas of concern for computing. Prerequisite(s): At least one CS course numbered 3000 or higher.
Common Course Outline
CS 4410 Digital Image Processing (3 credits)
This course covers techniques for image acquisition, transformation, enhancement, restoration, compression, segmentation and recognition. A brief introduction to advanced topics such as motion detection, optical flow, etc., is also included. Prerequisite(s): CS2322 and either Math 1470 or MATH 2471
Common Course Outline
CS 4627 Theory of Computation (3 credits)
Explores the theoretic roots and limits of computing. Prerequisites: CS 2322 and MATH 2210.
Common Course Outline
CS 4840 Operating Systems (3 credits)
Fundamentals of operating system design with emphasis on at least one modern operating system. Topics include scheduling, memory management, paging, file management, and mutual exclusion. Required work will include programming investigations. Prerequisites: CS 2322 and CS 2810.
Common Course Outline
CS 4910 Directed Independent Study (3 credits)
Arranged individual study.
Common Course Outline
CS 4917 DIS Tchg Assoc | (1-2 credits)
Directed Independent Study | Teaching Associate
Common Course Outline
CS 4970 Internship (3 credits)
Graded Satisfactory/Unsatisfactory only. Student internships may be either full-time or part-time in a public or private agency appropriate to the degree objective. Internships consist of closely supervised periods of service that are arranged in advance of the course registration. Students should consult their advisor concerning prerequisites.
Common Course Outline