Subject
  • CS
  • Change subject
Classes offered

Computer Science

Need more info? Visit the Computer Science website.

CS 101 Technology and Computer Science • 5 Cr.

Introduces concepts of computer science through development of fluency in modern technology, while offering students an opportunity to increase skills in a variety of information systems. Computer lab work includes operation of computers on networks, programming fundamentals, logical reasoning, web searching, multimedia applications, basic spreadsheets, and database manipulation. Prerequisite: MATH 098 or higher.

CS 194 Special Topics in Computer Science • V1-10 Cr.

No class description found.

CS 195 Special Topics in Computer Science • V1-10 Cr.

No class description found.

CS 196 Special Topics in Computer Science • V1-10 Cr.

No class description found.

CS 197 Special Topics in Computer Science • V1-10 Cr.

No class description found.

CS 199 Independent Study in Computer Science • V1-5 Cr.

Allows for special projects, student research and independent study in Computer Science by an individual student. May be repeated for a maximum of 15 credits. Prerequisite: Permission of instructor.

CS 210 Fundamentals of Computer Science I • 5 Cr.

Introduces computer science and programming for CS majors. Students learn design and implementation of algorithms and programming in a structured, modular language, with emphasis on problem solving, program design, and style. Prerequisite: MATH&142 or higher, with a C- or better,or placement by assessment in MATH&151 or above, or entry code.

CS 211 Fundamentals of Computer Science II • 5 Cr.

Continues CS 210, with data structures algorithm analysis and inheritance. Students learn to create collections, lists, binary trees, and sets. Other topics include sets, generic data types, sorting, recursion, run-time complexity, and graphical user interfaces. Prerequisite: CS 210 or entry code.

CS 212 C++ Data Structures • 5 Cr.

Completes one year sequence with data structures using C++, including lists, hash tables, stacks, queues, trees, and graphs. Contrasts the implementations of such data structures in different languages, specifically the differences between pointers versus references, templates versus generics, dynamic versus static memory allocation, multiple inheritance, and destructors. Prerequisite: CS 211.

CS 250 Management Information Systems • 5 Cr.

Provides basic concepts of information technology in modern business. Topics include data warehouses, decision support systems, electronic commerce, systems development, and risk management. Labs introduce intermediate spreadsheet and database applications in a networked environment. Enforced Prerequisite: CS 101 or entry code. Requires experience with computer databases.

CS 294 Special Topics in Computer Science • V1-10 Cr.

Covers advanced supplementary, contemporary, or focused topics related to Computer Science. Topics are announced in the class schedule. Prerequisite: Permission of instructor.

CS 295 Special Topics in Computer Science • V1-10 Cr.

Covers advanced supplementary, contemporary, or focused topics related to Computer Science. Topics are announced in the class schedule. Prerequisite: Permission of instructor.

CS 296 Special Topics in Computer Science • V1-10 Cr.

Covers advanced supplementary, contemporary, or focused topics related to Computer Science. Topics are announced in the class schedule. Prerequisite: Permission of instructor.

CS 297 Special Topics in Computer Science • V1-10 Cr.

Covers advanced supplementary, contemporary, or focused topics related to Computer Science. Topics are announced in the class schedule. Prerequisite: Permission of instructor.

CS 299 Independent Study in Computer Science • V1-5 Cr.

Allows for advanced special projects, student research and independent study in Computer Science by an individual student. May be repeated for a maximum of 15 credits. Prerequisite: Permission of instructor.

CS 300 Data Structures • 5 Cr.

This course is an introduction to the fundamental concept of data structures. It explains how to organize and store data efficiently using data structures and how to select appropriate data structures. The course further focuses on understanding the fundamental algorithms and analyzing the time and space complexity of these algorithms. Prerequisite: CS 211 and admission to BS CS program, or permission of instructor.

CS 311 Software Patterns • 5 Cr.

This course introduces software design paradigms, and design and architectural patterns essential for the creation of flexible, reusable, reliable and maintainable software applications. The course offers students a hands-on opportunity to apply creational, functional and behavioral design patterns, as well as architectural patterns, in a software design. Prerequisites: CS 211 and admission to BS Computer Science program, or instructor's permission.

CS 320 Programming Languages • 5 Cr.

This course is an introduction to the design and implementation of programming languages. The course explores organization and structure of programming languages, run?time behavior and requirements of programs, and programming language specification. The course teaches the programming models underlying different programming paradigms such as functional, logic, scripting and object-oriented languages. Prerequisites: CS 300 and admission to BC CS program, or instructor's permission.

CS 331 Database Systems • 5 Cr.

The course covers the fundamental concepts of database systems. It teaches students the internals of database systems including data model, database design, relational model, relational algebra, SQL, indexing, concurrency control, query processing, transaction management and recovery. This course also aims to teach the new directions involving NoSQL persistence models. Prerequisites: CS 211 and admission to BC CS program, or instructor's permission.

CS 341 Computer Networks • 5 Cr.

The course teaches the fundamentals of computer networks, with emphasis on the Internet. The course covers basic concepts of computer networks, layered network architecture, protocols, network programming interfaces, and concept of network performance. The course also provides students with the opportunity to having a hands-on experience by network programming.. Prerequisites: CS 211 and admission to BS CS program, or instructor's permission.

CS 351 Computer Architecture I • 5 Cr.

This course introduces the functional components of modern computer systems (processor, memory, Input/Output, etc.), characteristics and performance of these components. The course also addresses the interactions among hardware and software components. This course further allows students to develop programming skills while learning computer architecture with assembly programming assignments. Prerequisite: CS 211 and admission to BS CS program, or instructor's permission.

CS 356 Computer Security • 5 Cr.

This course covers the principles and practice of computer security using a hands-on approach. Participants will learn about techniques, methodologies and processes for the development of efficient and secure software. In addition, the course also covers security development processes, threat modeling, common software vulnerabilities, web site vulnerabilities, defensive coding practices, and security testing. Prerequisite: CS 341.

CS 360 Operating Systems • 5 Cr.

This class introduces the design and implementation of modern, process oriented operating systems, as well as systems programming basics. Primary topics include operating system structure, processes, threads, synchronization, memory management, virtual memory, file systems, I/O subsystem and device management. Prerequisite: CS 351 and admission to BS CS program, or instructor's permission.

CS 380 Web Programming • 5 Cr.

This course explores the design and development of software applications that reside on a web platform. Through hands-on experiences students will develop interactive and dynamic web pages. Both server-side and client- side web application development are covered. Recommended: CS 331. Prerequisites: CS 211 and admission to BS CS program, or instructor's permission.

CS 401 Algorithms • 5 Cr.

This course teaches the concepts and skills required to design, implement and analyze algorithms for constructing efficient computer programs. The course covers elementary data structures, searching, sorting, graph and string algorithms, and algorithm design principles such as dynamic programming, greedy, divide-and-conquer paradigms. The emphasis is on applications and scientific performance analysis of algorithms. Prerequisites: CS 300, MATH 301 and admission to BS CS program, or instructor's permission.

CS 410 Software Engineering • 5 Cr.

The course teaches the fundamental concepts and principles of software engineering, its tools and techniques, and methods for building reliable software systems. This course introduces all phases of the lifecycle of a software system, including requirements elicitation and analysis, design, implementation, integration, testing, verification and validation, deployment, and maintenance. Prerequisite: CS 300 and admission to BS CS program, or instructor's permission.

CS 411 Software Engineering Project Management • 5 Cr.

This course explores the fundamental project management concepts and behavioral skills needed to successfully launch and lead technology projects. Students will use a practical, hands-on approach to explore project management through case studies, projects and the use of project management software tools. Prerequisites: CS 410 and admission to BS CS program, or instructor's permission.

CS 420 Theory of Computation • 5 Cr.

This course introduces students to the mathematical foundations of computation and complexity for problem solving, including the concepts of automata theory, the theory of formal languages and grammars, and the notions of algorithm, decidability, complexity, and computability. Students will develop the ability to understand and conduct mathematical proofs for computation and algorithms in order to solve problems efficiently. Prerequisites: MATH 301 and admission to BC CS program, or instructor's permission.

CS 430 Image Processing • 5 Cr.

This course introduces the foundations of image processing such as sampling, enhancement, edge detection, segmentation, image morphology and image compression. Through hands-on experiences, students will use algorithms in a programming language to solve practical image processing problems for different applications. Prerequisites: MATH 208 and admission to BS CS program, or instructor's permission.

CS 441 Functional Programming • 5 Cr.

This course introduces the foundations of functional programming and explores situations when using a Functional Programming language is most beneficial. Students will have the opportunity to apply elements of the functional programming style in daily programming tasks. Prerequisites: CS 211 and admission to BC CS program, or instructor's permission.

CS 455 Cloud Computing • 5 Cr.

This course is an introduction to cloud computing. It teaches distributed computing concepts, the architecture of cloud computing, cloud services, virtualization, and cloud-based data storage. The course provides students with the opportunity to having a hands-on experience by deploying an application that uses cloud architecture for computing and data resources. Prerequisites: CS 331, CS 341, CS 360 and admission to BS CS program, or instructor's permission.

CS 460 Machine Learning • 5 Cr.

This course is an introduction to the fundamentals and applications of machine learning. The course provides students with the opportunity to have theoretical knowledge and practical experience on basic concepts of machine learning with programming assignments. The course focuses on fundamentals, not on providing mastery of specific commercially available tools. Prerequisites: CS 401, MATH 208, MATH 270 and admission to BS CS program, or instructor's permission.

CS 470 Mobile Application Development • 5 Cr.

This course is a project-oriented course on software application development for mobile devices. It teaches the basic principles of mobile application design, development and testing for resource-restricted devices. The course provides students with the opportunity to having a hands-on experience by deploying a real-world mobile application on the Android platform. Prerequisite: CS 300 and admission to BS CS program, or instructor's permission.

CS 481 Senior Capstone I • 3 Cr.

This course focuses on literature review, requirement specification, project management, initial design and prototyping of the three-quarter long computer science project. Students work in teams and are given milestones. The course includes lectures, reading assignments and guest speakers on development process, team working, report writing and emerging trends in computer science. Prerequisites: CS 410 and admission to BS CS program, or instructor's permission.

CS 482 Senior Capstone II • 4 Cr.

This course is the second in a sequence of three senior level capstone courses. This course focuses on detailed design, test plan and implementation of the project. The course includes lectures, reading assignments and guest speakers on development process, test plan, ethics, legal issues, and emerging trends in computer science. Prerequisites: CS 481 and admission to BS CS program, or instructor's permission.

CS 483 Senior Capstone III • 3 Cr.

This course is the third in a sequence of three senior level capstone courses. This course focuses on implementation, test and presentation of the project. The course includes lectures, reading assignments and guest speakers on poster design, innovation and entrepreneurship, presentation skills and emerging trends in computer science. Prerequisites: CS 482 and admission to BS CS program, or instructor's permission.

CS 485 Computer Science Co-Op/Practicum • V1-5 Cr.

Students undertake a full-time or part-time supervised work experience with an agency, firm, or organization approved by the program. Students develop a learning plan before the work project begins and submit a final written report. A written performance review by an onsite technical supervisor will be part of a student's final assessment. Prerequisite: CS 300 and admission to BS CS program, or instructor's permission.