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.
A study of machine architecture with coverage of digital logic, machine-level data, instruction representation, ALU design, and organization of the processor data path and control. The Python programming language will be used. Examines performance analysis, memory system hierarchy, pipelining, and communication.
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
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.