Breadth-first study of computer science concepts. Topics include machine architecture, programming, problem-solving techniques, algorithms, operating systems, networking, security, computations, graphics, GUIs, Al, databases, software engineering, and social issues.
Become familiar with designing and writing programs in a high-level language. Programs will involve some technical applications in science and mathematics.
An introduction to computer science through python programming, especially for students planning on further study in computer science or software engineering. Emphasis is on problem solving and algorithm development as a method to understand the field of study.
Study the structured programming development methods; the data types, operators, expressions, control flow, and input and output of a specific structured programming language; and some elementary data structures and algorithms.
Study the software development life cycle; elements of the object model; object-oriented data types and functions; object-oriented enhancements to structured programming; and additional data structures and algorithms.
CS 160 with a minimum grade of C
A study of the humanitarian, social, and professional impact of computing, statistics, and data by focusing on ethical issues faced by and brought about by computing, statistics, and data professionals, including those related to statistical analysis, software, data, privacy, security, and liability.
An introduction to database concepts, emphasizing the relational database model. The course illustrates concepts and application of the entity relationship diagram, the principles and application of normalization, and the use of structured query language (SQL) to extract information from the database. Advanced database topics such as Web Database Development, Data Warehouses, and Database Administration are introduced.
CS 160 with a minimum grade of C
This course will focus on the basics of computer organization and architecture. Topics include Boolean algebra, combinational and sequential circuit design, storage mechanisms and their organization, the instruction cycle in a simple CPU, and the role of assembly language in understanding the hardware/software interface.
Internal representation and applications of lists, trees, graphs, sorting, searching, and hashing. Focus on the interactions among algorithm, data structures, and storage structures for the processing of data.
CS 160 with a minimum grade of C
Basic components of programming languages. Specification of syntax and semantics. Description of programming languages features. Examine a wide variety of languages with an emphasis on their structure, design, and use.
CS 301 with a minimum grade of C
An introduction to Linux/Unix operating system. Cover the fundamentals in command line processing for Linux and integration with other software tools. A hands-on study of basic shell commands, file systems, text editor, and shell scripting/programming.
This course introduces human-computer interaction and the design process. Students will learn methods and skills for designing and prototyping interactive systems. The course covers a design process from the initial formulation of a design problem to the creation of digital prototypes.
CS 130 with a minimum grade of C
This course covers software mobile application development, its architecture, and its lifecycle, as well as its inherent design considerations. Students will learn about mobile resources, activities, views, layouts, and intents in addition to interacting with the location-based services, messaging services, multimedia interfaces, and sensors available on the mobile device.
Study concepts of engineering software systems. Design and implement a software system project using the team approach.
CS 200 with a minimum grade of C
Topics in computer science that reflect the specific interests of available instructors and the specific needs of the students.
An introduction to the logical and mathematical foundations of computation. Topics discussed will include finite-state automata and context-free languages. The course material will be presented in an inquiry-based context in which students will solve problems, prove theorems, and present their solutions to the class.
A plan should be submitted and approved by all computer science faculty. Individualized investigation under the direct supervision of a faculty member. (Minimum of 37.5 clock hours required per credit hour.)
Special Notes
Maximum concurrent enrollment is two times.
This course introduces the fundamentals of cyber security. A broad survey of cybersecurity concepts, tools, technologies, and best practices will be presented. Students will use hands-on activities to become familiar with and practice cybersecurity techniques and procedures.
Study operating systems history, concepts/structure and design; process, processor, memory, file system and input/output management; and representative operating systems.
CS 301 with a minimum grade of C
Study data communications; network structure, design and architectures; network services and standardization; and respective networks all in the framework of the OSI model.
CS 301 with a minimum grade of C
This course considers the use of machine learning and data mining algorithms to discover knowledge embedded in datasets. Topics include techniques such as classification, clustering, predictive and statistical modeling.
This course examines state-of-the-art AI approaches to deep learning using neural networks. Students will learn to design neural network architectures and training procedures via hands-on assignments and projects.
This is a project course in data science and related fields. Interdisciplinary teams will analyze a new data science problem, develop a model, and control for error and overfitting.
This course provides the opportunity to integrate the knowledge gained from courses taken in the Computer Science curriculum. An exploration of important topics in Computer Science will be discussed. In addition, students will work in teams to produce software programs and related artifacts by applying one or more established software frameworks and following a software development methodology.
CS 350 with a minimum grade of C
A significant computer project will be developed and implemented under the guidance of a computer science professor. A project proposal should be submitted and approved by all computer science faculty.