skip to Main Content

Bachelor of Science

Computer Science

Program Overview

Graduates of the BSCS program will have the knowledge and skills needed to be successful computing professionals or to pursue graduate studies. By completing coursework and projects, they gain hands-on experiences in the profession and workplace. Successful completion of a senior project is a first step toward professional competency and developing expertise in their field of choice.

Due to the multi-faceted applications of computing, the major also incorporates learning experiences that are multidisciplinary in nature. These are acquired through various course assignments of real-world projects utilizing commensurate set of tools and techniques of computer science. The experiences and skills accumulated thereby should prepare the student to complete a senior project.

Program Details

CSCI-151: Programming 1

Computing has profoundly changed the world. However, just using a computer is only a small part of the picture. Real empowerment comes when one learns how to program computers, to translate ideas into code. In this class, we teach basic programming skills in Python with an emphasis on the computational thinking practices required to write good programs. This course will develop skill in problem solving, the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately.

The basics of the Python programming language, using Turtle Graphics will be taught. Practice writing Python programs to do basic data analysis, using Numpy, Pandas, and matplotlib.

3 units

CSCI-251: Programming 2

Object-oriented programming was invented to make software development more organized, intuitive and reusable. We will dive deep into this and the related concepts of design patterns and programming styles to better understand good coding practices. This course also expands on what was learned in Programming 1 with additional syntax and challenges to improve problem-solving skills. The course will go through the different programming styles in Python like Objects and Classes, advantage of Inheritance and Polymorphism, use common Design Patterns and techniques for improving Cohesion while reducing Coupling.

3 units

CSCI-351: Programming 3

This course builds on the foundation of object oriented programming and introduce the student to both GUI and event programming. The use of some popular Python libraries are explored including data analysis. The subject of functional programming with Python is studied along with threading and multiprocessing. Introduction to software architecture and principles of software design.

3 units

CSCI-261: Data Structures and Algorithms 1

To manage the complexity of problems and the problem-solving process, computer scientists use abstractions to allow them to focus on the “big picture” without getting lost in the details. By creating models of the problem domain, we are able to utilize a better and more efficient problem-solving process. These models allow us to describe the data that our algorithms will manipulate in a much more consistent way with respect to the problem itself. Develop skill in problem solving: the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately. Improve knowledge of the Python programming language. Apply knowledge of data structures and algorithms using Python.

3 units

CSCI-361: Data Structures and Algorithms 2

This course continues from the first course by considering more interesting structures and algorithms looking into the details of design and analysis of computer algorithms. Some of the topics will include Divide-and-conquer, dynamic programming, greedy method, backtracking. Algorithms for sorting, searching, graph computations, pattern matching, P and NP-complete problems, intractability will be presented.

3 units

CSCI-220: Computer Systems

This course provides a programmer’s view of how computer systems execute programs, store information, and communicate. Some of these computers are single board computers and handheld like phones. This course provides the landscape of different computing systems like linux and Android OS.  Students will be exposed to Android programming with Java, and embedded programming with C and Python.

3 units

CSCI-310: Databases

This course covers database design and the use of databases in applications, with a short introduction to the internals of relational database engines. It includes coverage of the relational model, relational algebra, and SQL. The course also features database design and relational design principles based on dependencies and normal forms. Other important topics from the design and application-building perspective are covered, including indexes, views, transactions, and integrity constraints.  The programming projects will explore database design and management. This course will develop ability to map user requirements into a database design and supporting queries, learn enough database theory to read current literature, become a competent SQL programmer and learn “best practices” for database application design.

3 units

CSCI-315: Web Applications

This is the second course in building web applications. The first one deals with the front side – HTML, CSS and some JavaScript. This second course will use more JavaScript for the frontend, and at the same time developing knowledge in developing the web server backend. Use of PHP or JavaScript will be used. The backend will access a SQL-based database and may also provide an API for web access.

3 units

CSCI-355: Operating Systems

The operating system provides an established, convenient, and efficient interface between user programs and the bare hardware of the computer on which they run. The operating system is responsible for sharing resources (e.g., disks, networks, and processors), providing common services needed by many different programs (e.g., file service, the ability to start or stop processes, and access to the printer), and protecting individual programs from interfering with one another. The course makes use of Python for hands-on interaction with  the operating system, especially on multithreading, multiprocessing and concurrency control. Particular emphasis will be given to three major OS subsystems: process management (processes, threads, CPU scheduling, synchronization, and deadlock), memory management (segmentation, paging, swapping), and file systems. Look into operating system support for distributed and cloud systems.

3 units

CSCI-498: Senior Project

In the junior year, students will start exploring their areas of interest and goals, assess qualifications in terms of preparation, skill, level and experience, and explore possibilities. A project proposal is written by students indicating their areas of interest, the purpose of the project and the contribution of their project.  Student will have to develop a schedule and also determine what their deliverables will be. Students will have to make a presentation of their project to an audience.

3 units

CSCI-365: Data Science 1

This course provides an overview of data analytics by applying analytic tools and methods to real-world problems.  The topics in the course will include structuring and querying data, data manipulation and enrichment, and metric development with an emphasis on statistical rigor.  The focus iis on project based learning with an end goal for students to deliver actionable insights to incorporate into the students’ portfolios. On completion of this course, the student will have the ability to read and write R programs to do basic data manipulation, an understanding of the analytic approach with data types and structures, a portfolio of analytic work that can be integrated into a website or notebook and able to practice interpreting and communicating analytic findings

3 units

CSCI-471: Artificial Intelligence 1

This is an introduction to some of the techniques associated with Artificial Intelligence. Techniques like reasoning, knowledge, planning, learning, natural language processing, perception and the ability to move and manipulate objects. An introduction to the technique and use of libraries to do natural language processing and machine learning.

3 units
  • For students in the major, to equip them with the knowledge and skills needed to be successful computing professionals.
  • For students in other science programs, to equip them with the programming skills appropriate to their major. We offer a variety of specialized Computer Science minors (e.g., a Data Science minor) that provide these skills.
  • For students in non-science programs, to equip them with basic programming skills.
  • Programming has become an important skill even for non-science majors — we offer introductory courses to meet this need.
  • Software Developer
  • Database Administrator
  • Computer Systems Analyst
  • Web Developer
  • System Administrator..
  • Computer Programmer
  • Computer Science Researcher
  • Embedded programmer for control systems
Head over to for student tools, resources, schedules and forms.


Bachelor of Science

BS in Computer Science


Computer Science Minor

Program Advisor

Dr. Muntuck Yap

Program Advisor
Faculty, Computer Science


Dr. Muntuck Yap

Lead Faculty, Computer Science, Professor, Computer Science

Adjunct Faculty

Deepak Vejendla

Adjunct, Computer Science

Dr. Albert Tsao

Adjunct, Computer Science

Dung Nguyen, Ph.D.

Adjunct, Computer Science and Mathematics

Eric Miedema

Adjunct, Computer Science and Mathematics

John Ransom

Adjunct, Computer Science

Take the Next Step

Start a conversation with Jessup about who you are, what you want to achieve and how Jessup may be the right fit for your future.

Back To Top
×Close search