Below is just a small sample of courses you’ll take as a Computer Science major at Jessup. This list is not a guide for course selection. It was created to give you a peek at the program’s academic offerings. For official program requirements, please see the current course catalog.
Core Courses (36 units)
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. This course teaches basic Python programming — control structures, simple data types, and data structures. We use Turtle Graphics to build fun programs that illustrate fundamental ideas in programming.
Object-oriented design; encapsulation and information-hiding, data abstraction; separation of behavior and implementation; classes, subclasses, and inheritance; polymorphism; class hierarchies; practices and design of software development.
Introduction to the principles of software design and architecture. Study the elements of GUI programming along with the layout of widgets, and event programming. Elements of file processing and database processing. Usage of some libraries like Numpy, SciPy and other libraries.
Study the concept of abstract data type and its implementation of particular structure of data. Consider the common data structures that are used in various computational problems. You will learn how these data structures are implemented in a language like Python. This will help you to understand what is going on inside a particular built-in implementation of a data structure and what to expect from it. You will also learn typical use cases for these data structures.
Design and analysis of computer algorithms. Divide-and-conquer, dynamic programming, greedy method, backtracking. Algorithms for sorting, searching, graph computations, pattern matching, P and NP-complete problems, intractability.
A mobile application is a computer program designed to run on a mobile device such as a phone/tablet or watch. Mobile applications run directly on the mobile device. Use of Android system and SDK. Considerations of foreground and background processing. Considerations of network programming.
This is an introductory class on the use of R for doing Data analysis, Modeling/statistics and prototyping. The subject of data cleansing is touched. The focus in on techniques for data analysis and presentation of the analysis in useful visualization forms.
An introduction to the design and analysis of computer communication networks from a programmer’s perspective. Local area networks, high-speed networks, hubs, switches, and bridges. Wide area networks, routers, and inter-networking. Emphasis on the network protocols in internet stack with references to the OSI model. Issues of network security, reliability, and performance.
This course covers a detailed examination of the use of database management systems. The topics covered include conceptual design, data models, SQL query language, logical database design, and introduction to query optimization. Emphasis for this course is on the relational database and SQL including the use of Python as the language interfacing with a relational database.
Principles of operating systems. Effective management of machine resources including resource allocation and scheduling, mutual exclusion, deadlock avoidance, memory management policies, devices and file systems, client-server systems, and virtualization.
Senior project is an independent research and development project undertaken by student with the guidance and supervision by a member of the faculty. The results of this study is documented like a mini-thesis.
Math Courses (16 units)
Continues in topics of calculus including integrals and transcendental functions, techniques of integration, first order differential equations, infinite sequence and series, and parametric equations.
Linear systems, matrices, vectors and vector spaces, linear transformations, inner products, norms, eigenvalues and eigenvectors, orthogonality and applications. Provides a foundation for many areas of study in mathematics, computer science, engineering, and science.
An introduction to the tools of statistics covering such topics as frequency distributions, variability, probability, and hypothesis testing.
A practical introduction to formal mathematical proof emphasizing preparation for advanced study in mathematics. Special attention is paid to reading and building proofs using standard forms and models within the context of specific examples.
Elective Courses (Select One)
Data science is an emerging interdisciplinary field that draws from computer science, statistics, business, as well as other fields. This course is a continuation of CSCI 361: Data Science 1 and continues the use of R for data analysis and data visualization. Examination of the combination of mathematics, statistics, programming, and the context of the problem to come up with different insights. Examination into the management issue relating to the gathering and cleansing of data. Advanced statistical concepts like linear and logical regression, classification, cluster analysis and forecasting will be studied. Familiarize student with the set of data science libraries and the different set of real case analysis.