Computer Science (CPSC)

CPSC 1101 Introduction to Computing 3 Credits

In this course, students learn computational problem-solving techniques through the process of design, implementation, testing, and documentation using the programming language Python. 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. Students will get an understanding of the breadth of computing as a discipline and how it exists in the world by identifying computing applications in society and exposing them to a variety of computing topics. Previously CS 0101.

CPSC 1131 Fundamentals of Programming 3 Credits

Attributes: BUEL Business Elective, ENPC Digital Journalism Production Component

This course introduces programming constructs and techniques in a logical progression beginning with small problems and basic algorithms through larger scale programs and design. While not an object oriented course, classes and objects are used in an ancillary capacity while working on broader topics of software architecture. Complete programs will be designed, coded, and debugged in both Java and the C programming language, developing skills necessary to work with more complex software systems. Previously CS 0131.

CPSC 1152 Introduction to Computer Game Modeling 3 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. Previously CS 0152.

CPSC 1201 Technical Skills for Liberal Arts Majors 3 Credits

Students today will need skills in a variety of computer programs and software applications. This course is designed for those in the liberal arts (humanities and social or behavioral sciences) who will need these technical skills for their future workplace. Specific skill sets include software for word processing, spreadsheet, presentation, conferencing, web page coding, and web page design; other software may be included. The course serves those students going into business, publishing, non-profit careers, and a variety of other enterprises for which the liberal arts training must be augmented with specific cyber-related technical competence. Open to students with majors in the humanities or social/behavioral sciences only. Previously CS 0201.

CPSC 2231 Programming Workshop 3 Credits

Corequisite: CPSC 2231L.

Prerequisite: CPSC 1131.

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. Previously CS 0231.

CPSC 2231L Programming Workshop Lab 1 Credit

Corequisite: CPSC 2231.

This lab accompanies the Programming Workshop course for hands-on practice with course concepts. Previously CS 0231L.

CPSC 2232 Data Structures 3 Credits

Corequisite: CPSC 2232L.

Prerequisite: CPSC 2231.

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. Previously CS 0232.

CPSC 2232L Data Structures Lab 1 Credit

Corequisite: CPSC 2232.

This lab accompanies the Data Structures course for hands-on practice with course concepts. Previously CS 0232L.

CPSC 2250L Computer Science Sophomore Clinic 1 Credit

Corequisite: CPSC 2304.

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. Previously CS 0250L.

CPSC 2304 Web Development 3 Credits

Attributes: ENPC Digital Journalism Production Component

Prerequisite: CPSC 1131.

This course introduces the student to developing applications for use on the World Wide Web. Students learn basic n-tier concepts for designing distributed applications and gain hands on experience through the construction of web-based applications. The course covers concepts that allow communication over the Web. This includes designing and authoring web pages, markup languages, the client-side document object model, usability, search engine optimization, and client-side dynamic web pages. Graduate equivalent: SWEG 5304. Previously CS 0304.

CPSC 3333 Introduction to Cybersecurity 3 Credits

Prerequisite: CPSC 2231.

In this course, students will be given an extensive overview of the various components of cybersecurity, including software development, operating systems, databases, and networks. Students 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 reinforce the concepts that are introduced. Graduate equivalent: SWEG 5333. Previously CS 0333.

CPSC 3343 Design and Analysis of Algorithms 3 Credits

Prerequisite: CPSC 2232.

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. Previously CS 0343.

CPSC 3349 Cloud Computing 3 Credits

Prerequisite: Junior standing.

This course will introduce the foundations of cloud computing, and familiarize students with the core concepts needed to build, deploy and manage applications in a cloud. Besides the theoretical underpinnings, emphasis will be put on practical experience of using cloud resources and services. Concepts like microservices and containers will be discussed in depth, as well as best practices for building successful cloud native applications and implications for development and operational processes. The course will be a combination of lectures and hands-on experience of a public cloud. Graduate equivalent: SWEG 5349.

CPSC 3351L Computer Science Junior Clinic I 1 Credit

Corequisite: SWEG 3301.

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. Previously CS 0350L.

CPSC 3352L Computer Science Junior Clinic II 1 Credit

Corequisite: SWEG 3302.

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. Previously CS 0351L.

CPSC 3354 Theory of Programming Languages 3 Credits

Prerequisite: CPSC 2232.

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. Previously CS 0354.

CPSC 4305 Mobile Application Development 3 Credits

Prerequisite: CPSC 1131.

This project-oriented course examines the fundamental aspects of mobile computing, application architecture, and mobile application design and development. Students will learn application development on the Android platform. Students will complete a hands-on project building a prototype mobile application. Topics include user interface design and building, input and data handling, and network techniques and GPS and motion sensing. Students are expected to work on a project that produces a professional-quality mobile application. Projects will be deployed in real-world applications. Graduate equivalent: SWEG 5305. Previously CS 0305.

CPSC 4314 Network Security 3 Credits

This course is intended for individuals who need an understanding of the client-server environment, with any emphasis on network security. The OSI Model, network concepts, and network architecture are discussed. The components that make up a network, including cabling, wiring hubs, file servers, bridges, switches, routers, network interface cards, network operating systems, and network software and hardware configurations are discussed. Network architectural concepts, wide area networks, remote access, and segmentation are discussed. Operating systems will be discussed and demonstrated. Featured is the seven-layer OSI model, the foundation of today’s communication protocols. Students will work with various security protocols and configure routers and switches with security methods. Previously CS 0314.

CPSC 4315 Computational Biology 3 Credits

Prerequisite: Junior standing.

This course is designed to benefit computational and experimental biologists to understand the principles of analyzing biological data, building models and testing hypotheses using computer science paradigms. Students will learn how to build computational tools that are used to analyze DNA content, identify protein binding patterns, compare sequences, and discover variation within genomes. Graduate equivalent: SWEG 5315. Previously CS 0315.

CPSC 4317 Computational Statistics for Biomedical Sciences 3 Credits

Prerequisite: Junior standing.

This course will provide a practical introduction to analysis of biological and biomedical data. Basic statistical and machine learning techniques will be covered, including descriptive statistics, linear regression, non-linear regression, classification/prediction, and biomedical data visualization. Emphasis will be on how to choose appropriate data analysis models and how to assess statistical significance. This course will benefit data scientists to apply data science techniques to analyze biomedical data or clinical data. In addition, this course is also designed to benefit computational and experimental biologists to understand the principles of analyzing biological data, building models and testing hypotheses using computer science paradigms. To visualize data and carry out data analysis, students will learn R or Python, and other programming languages for statistical computing and graphics. The class will be a combination of lecture and computer lab. Graduate equivalent: SWEG 5317. Previously CS 0317.

CPSC 4322 Visual Analytics 3 Credits

Prerequisite: Junior standing.

In this course, students investigate visual analytics tools and techniques used to synthesize information and derive insight from massive, dynamic, ambiguous, and often conflicting data and to communicate the findings effectively for decision-making. Extensive use of case studies based on real-world events will be used to illustrate course concepts. Students will apply visual analytics techniques toward a focused research problem in a real-world application or a domain of interest. Graduate equivalent: SWEG 5322. Previously CS 0320.

CPSC 4331 Operating Systems 3 Credits

Prerequisite: CPSC 2232.

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. Previously CS 0331.

CPSC 4355 Artificial Intelligence 3 Credits

Prerequisite: CPSC 2232.

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. Graduate equivalent: SWEG 5355. Previously CS 0355.

CPSC 4357 Database Management Systems 3 Credits

Prerequisite: CPSC 2232.

This course examines data formats, organizations, representations and structures; design and analysis of searching, sorting, and other algorithms; data management systems; relational database model; domains and relational integrity; structured query language; database design, logical and physical; entity-relationship diagrams; normalization; transaction processing; and database administration. Graduate equivalent: SWEG 5357. Previously CS 0357.

CPSC 4360 Machine Learning 3 Credits

Prerequisite: Junior standing.

This course will provide a practical introduction to machine learning applications such as face recognition, clinical diagnosis, speech recognition, natural language processing, or image classification. Topics such as regression, classification, neural networks, deep learning, and ensemble methods will be discussed. Emphasis will be on how to choose appropriate machine learning and deep learning models and how to evaluate their performance. The class will be a combination of lecture and computer lab. Graduate equivalent: SWEG 5360.