Computer Science (CS)

CS 0101 Introduction to Computing3 Credits

This course introduces the concept of computing to students with no prior computer experience. The main ideas of computing are explored and students learn the most essential information about computers and technology in today's digital world and the latest computing trends and skills with live code exercises. Students will explore key ideas of coding at an introductory level. Topics include computer architecture, digital media, network, web, big data, computer security, and basic computer programming.

CS 0131 Fundamentals of Programming3 Credits

Attributes: BUEL Business Elective, ENPC Digital Journalism Production Component

This course introduces the object-oriented programming. Topics include data types, control structures, arrays, I/O, file handling, GUI, and the OOP concept of encapsulation, inheritance, polymorphism, packages, interfaces, and inner classes.

CS 0152 Introduction to Computer Game Modeling3 Credits

This is an introductory computer games modeling course which examines the basics of computer game design and visual effects. Students will use graphics software modeling packages to create characters and visual effects, and to develop a computer game idea, including storyline and plots. Basic programming techniques may also be taught.

CS 0231 Programming Workshop3 Credits

Corequisite: CS 0231L or CS 0231P.

Prerequisite: CS 0131.

This course covers advanced programming concepts in one or more current programming languages, including syntax and theories. It prepares students for adapting to various programming environments and coding in an efficient manner. Lab work will accompany the course.

CS 0231L Programming Workshop Lab1 Credit

Corequisite: CS 0231.

This lab accompanies the Programming Workshop course for hands-on practice with course concepts.

CS 0231P Programming Workshop PLG0 Credits

Corequisite: CS 0231.

This peer learning group accompanies the Programming Workshop course for hands-on practice with course concepts.

CS 0232 Data Structures3 Credits

Corequisite: CS 0232L or CS 0232P.

Prerequisite: CS 0131.

This course covers abstract data structures such as queues, stacks, heaps, linked lists, trees, graphs, hash tables and sorting. Students apply data structure concept in advanced programming.

CS 0232L Data Structures Lab1 Credit

Corequisite: CS 0232.

This lab accompanies the Data Structures course for hands-on practice with course concepts.

CS 0232P Data Structures PLG0 Credits

Corequisite: CS 0232.

This peer learning group accompanies the Data Structures course for hands-on practice with course concepts.

CS 0250L Computer Science Sophomore Clinic1 Credit

Corequisite: SW 0304.

This sophomore clinic provides faculty guidance and supervision beyond the scope of existing courses. Students learn how to develop and structure their deliverables, as well as how to use computer science tools in the context of real-world or research projects.

CS 0331 Operating Systems3 Credits

Prerequisite: CS 0232.

This course introduces the internal operation of modern operating systems. The topics cover a brief history of operating systems, the major components of modern operating systems, and the object-oriented methodology on UNIX-like platform. Various UNIX tools will be used in the course and participants study examples using object-oriented programs as well as large system integration by object-oriented methodology.

CS 0333 Introduction to Cybersecurity3 Credits

Prerequisite: CS 0231.

In this course, students will be given an extensive overview of the various components of Cybersecurity including software development, operating systems, databases, and networks. They will learn Cybersecurity concepts, issues, and tools that are critical in solving problems in the computing security domain. The course will use lectures, reading assignments, and interactive lab exercises to re-enforce the concepts that are introduced.

CS 0342 Theory of Computation3 Credits

Attributes: MAEL Math Major Elective Course

Prerequisite: MA 0231.

This course explores what computers can and can't do by examining simple mathematical models of computation. Topics include finite state machines, regular expressions, non-determinism, pushdown automata, context-free grammars, and Turing machines. We will see that there are limits to what computers can do, and in doing so, we will learn about what a computer really is; you may be surprised.

CS 0343 Design and Analysis of Algorithms3 Credits

Prerequisite: CS 0232.

This course introduces various algorithms and analyzes the complexity and efficiency of the algorithms. Topics cover classic and heuristic algorithms, searching, sorting and parsing techniques, and algorithm complexity analysis.

CS 0350L Computer Science Junior Clinic I1 Credit

Corequisite: SW 0300.

This first junior clinic provides faculty guidance and supervision beyond the scope of existing courses. Students learn how to develop and structure their deliverables, as well as how to use computer science tools in the context of real-world or research projects.

CS 0351L Computer Science Junior Clinic II1 Credit

Corequisite: SW 0301.

This second junior clinic provides faculty guidance and supervision beyond the scope of existing courses. Students learn how to develop and structure their deliverables, as well as how to use computer science tools in the context of real-world or research projects.

CS 0354 Theory of Programming Languages3 Credits

Prerequisite: CS 0232.

Topics in this course include the design of programming languages; organization, control structures, data structures; run time behavior of programs; and formal specification and analysis of programming languages. The course includes a comparative survey of several significantly different languages.

CS 0355 Artificial Intelligence3 Credits

Prerequisite: CS 0232.

This course, which examines computational and theoretical accounts of human intelligence, includes knowledge representation, commonsense reasoning, planning, natural language understanding, machine learning, and deep learning.

CS 0397 Internship1-3 Credits

The internship program provides computer science majors with an opportunity to gain practical, career-related experience in a variety of supervised field settings. Internships can be in any one of a number of areas, such as software applications or hardware applications. Interns spend a minimum of 10 hours per week in on-site work, complete a required academic component specified by a faculty advisor, and satisfy the University Internship Policy requirements. Students may register for internships during the summer session and/or one to two full semesters and may earn a maximum of six internship credits. Open to seniors only; requires approval of the field placement supervisor and the School of Engineering. An internship may not replace a computer science elective to fulfill the requirement for a major in computer science.

CS 0398 Internship1-3 Credits

The internship program provides computer science majors with an opportunity to gain practical, career-related experience in a variety of supervised field settings. Internships can be in any one of a number of areas, such as software applications or hardware applications. Interns spend a minimum of 10 hours per week in on-site work, complete a required academic component specified by a faculty advisor, and satisfy the University Internship Policy requirements. Students may register for internships during the summer session and/or one to two full semesters and may earn a maximum of six internship credits. Open to seniors only; requires approval of the field placement supervisor and the School of Engineering. An internship may not replace a computer science elective to fulfill the requirement for a major in computer science.