Computer Science

Courses

CSC 105: INTERNET HISTORY, SECURITY & TECH

Credits 3
To thrive in today’s digital world, you need to understand the system that powers it. This course, built in collaboration with Google, will explore the internet and show you how it works. This class focuses on hands-on learning of important topics like cybersecurity, networking, and programming. By the end, you’ll be able to evaluate your options for a rewarding career in technology. At minimum, you’ll be a much wiser network citizen. Prerequisite: none

CSC 105: INTERNET HISTORY, SECURITY & TECHNOLOGY

Credits 3

To thrive in today’s digital world, you need to understand the system that powers it. This course, built in collaboration with Google, will explore the internet and show you how it works. This class focuses on hands-on learning of important topics like cybersecurity, networking, and programming. By the end, you’ll be able to evaluate your options for a rewarding career in technology. At minimum, you’ll be a much wiser network citizen. Prerequisite: none

CSC 110: PROGRAMMING FOR EVERYONE I

Credits 3
This course, built in collaboration with Google, provides a gentle, but thorough, introduction to programming using Python. You will learn the core concepts and techniques needed to create programs and perform basic data analysis. By the end of this course, you’ll be ready to pursue further study in computer science and unlock more advanced programming courses. Prerequisite: none

CSC 110: PROGRAMMING FOR EVERYONE I

Credits 3

This course, built in collaboration with Google, provides a gentle, but thorough, introduction to programming using Python. You will learn the core concepts and techniques needed to create programs and perform basic data analysis. By the end of this course, you’ll be ready to pursue further study in computer science and unlock more advanced programming courses. Prerequisite: none

CSC 115: PROGRAMMING FOR EVERYONE II

Credits 3
This course, built in collaboration with Google, follows on from Programming for Everyone I. In the first half of the course, you will learn how to leverage your Python skills to treat the internet as a source of data. The second half of the course will teach you the fundamentals of Structured Query Language (SQL) and database design. By the end of the course, you will improve your programming skills and learn how to build a range of applications. Prerequisite: CSC 110 or MAT 215

CSC 200: CAREER NAVIGATION AND EXPLORATION IN COMPUTER SCIENCE

Credits 3

This course will help you find a job in Software Engineering upon graduation.  Not just any job; one that meets your personal and financial needs and makes you excited about the future.  In this course, you'll explore career paths in Software Engineering, potential salary outcomes, and different roles.  Then, you'll pick target jobs and opportunities that are the best fit for you, and make a clear plan of action toward securing them.  Prerequisites: Any programming class.

CSC 205: WEB DEVELOPMENT

Credits 3
This course, built in collaboration with Google, covers everything you need to know in order to build a website from scratch. You'll learn HTML, CSS and Javascript - the core technologies which power modern websites - and build a website of your own. By the end of this course, you'll be able to create interactive, aesthetically pleasing websites for any purpose you can imagine. Prerequisite: Any programming course, or grade of B in MAT 221 or higher

CSC 210: APPLICAITON DEVELOPMENT I

Credits 3

Modern development relies on frameworks which provide developers with powerful tools to speed up development. If you want to build apps, you need to understand how to use frameworks. This course, which has been built in collaboration with Google, will introduce you to Django - a framework used for data-driven web applications. You’ll learn the fundamentals of Django, improve your database management skills, and begin developing your own apps. Prerequisite: CSC 115, MAT 231

CSC 220: DATA STRUCTURES

Credits 3

Ever wondered how search engines like Google can find what you need in milliseconds? The secret lies in efficient data structures.  In this course, you will learn the fundamentals of data structures and why they are so crucial for optimizing performance.  You'll explore linked lists, stacks, queues, trees, and graphs, and learn where to use them.  By the end, you'll implement these structures to make your programs faster and be well-prepared for coding interviews. Prerequisites: CSC 115

CSC 300: APPLICATION DEVELOPMENT I: BACKEND

Credits 3

This course is all about equipping you with the skills to build dynamic, database-driven web applicaitons- the core of great app development.  You'll create powerful backend scripts using Java and Javascript, build RESTful APIs and develop middleware for user authentication and session management.  By the end you'll create apps that are not only functional but also beautiful, engaging, and solve real-world problems.  Prerequisites: CSC 110 or MAT 215, CSC 205.

CSC 305: INTRODUCTION TO C

Credits 3
In order to become a successful developer, you need to understand how computers interpret code. This course, which was built in collaboration with Google, will introduce you to C - the fundamental language used to write many high-level languages, including Python. By the end of this course, you will have a better understanding of how computers turn your code into ones and zeroes, and be able to use that understanding to build more efficient programs. Prerequisite: CSC 115, MAT 231

CSC 305: INTRODUCTION TO C

Credits 3

In order to become a successful developer, you need to understand how computers interpret code. This course, which was built in collaboration with Google, will introduce you to C - the fundamental language used to write many high-level languages, including Python. By the end of this course, you will have a better understanding of how computers turn your code into ones and zeroes, and be able to use that understanding to build more efficient programs. Prerequisite: CSC 115, MAT 231
 

CSC 310: APPLICAITON DEVELOPMENT II

Credits 3

This course - built in collaboration with Google - is the second part of the application development series. In this course, you will put your skills into practice and build your own application. By the end of this course, you'll have a greater understanding of the technologies that power modern apps and be able to build your own. Prerequisite: CSC 205, CSC 210
 

CSC 315: HARDWARE I- INSIDE OF A MICROPROCESSER

Credits 3

This course is intended as an introduction to computer hardware and builds upon Introduction to C. It covers the techniques used to design and build microprocessors, memory, and other elements of modern-day hardware. Students will learn the fundamentals of machine language (binary) and assembly language as well as what happens inside of a computer on a fundamental level. Students will also have the opportunity to analyze the C compiler and learn how it produces the necessary strings of ones and zeros that will run on the hardware. Prerequisite: CSC 305, MAT 221
 

CSC 320: MODERN TECHNOLOGIES

Credits 3

Ready to take your coding skills to the next level? It's time to explore the cutting-edge technologies that elevate you from a simple programmer to a software engineer.  Discover tools like Docker, Jira, cloud computing and GitHub that are essential for building scalable and secure products people can actually use.  When you understand why these technologies matter and how they impact the industry, you'll be ready to build real applications and stay ahead in tech.  Prerequisites:: CSC 110 or MAT 215.

CSC 325: ALGORITHMS

Credits 3

Imagine having to wait hours to buy a product online due to slow load speeds.  That's the world without efficient algorithms.  Algorithms are crucial for many everyday applications, such as enabling GPS systems to find the best routes and online stores to load quickly.  In this course, you'll uncover the magic behind algorithms, learning divide- and-conquer, dynamic programming, and greedy algorithms. By the end, you'll build scalable applications that won't break.  Prerequisites: CSC 220, MAT 221 or MAT 330

CSC 330: SOFTWARE DEVELOPMENT

Credits 3

Ever wondered what it takes to turn a great idea into a fully functional software product?  This course covers everything from concept to implementation.  learn to use Git for efficient code management, ensure quality with comprehensive testing, and streamline delivery with CI/CD pipelines.  Discover design patterns and apply SDLC methods.  By the end, you'll be equipped to tackle any software project with confidence and expertise.  Prerequisites: CSC 205, CSC 300

CSC 400: COMPUTER SYSTEMS

Credits 3

Curious about what happens under the hood of your computer?  This course explores the inner workings of computer systems while teaching you the C programming language.  Learn the fundamentals of operating systems, memory management, and file systems.  Explore how microprocessors execute instructions and how peripherals communicate with the main system.  By the end, you'll have an understanding of computer architecture and be able to optimize system performance using C.  Prerequisites: CSC 110 or MAT 215.

CSC 415: PRODUCT DEVELOPMENT

Credits 3

Creating software products is more than just writing code, it also requires an analysis of what your 
customers want, and how to meet their needs. As a result, understanding product development is 
key to a successful career in technology. By the end of this course (built in collaboration with 
Google), you will understand how product teams and processes work, and learn how to develop 
an idea into an actual product that delights your users. Prerequisite: Sophomore Status

CSC 420: CLOUD APPLICATIONS PRACTICUM

Credits 3

Software engineers are frequently tasked with building applications using unfamiliar elements. This course will ask you to build an application using the Google Cloud Platform (GCP) and one or more unfamiliar technologies or tools you select. By the end of this course, you will learn how to tackle unfamiliar situations, a key skill for any programmer, and improve your skills in programming and software development. This course will provide you with a project to add to your portfolio of work. Prerequisite: ITM 202, CSC 310, CSC 405

CSC 425: COMPUTER SCIENCE CAPSTONE

Credits 3

This course is intended as a culmination of all of a student’s work in their Computer Science major. Students will work in groups to launch a web app prototype that meets the following requirements:
1. Uses Database concepts from the Computer Science Core, Data Structures, and 
Algorithms.
2. Meets faculty approval.
Students will pitch their product, select the necessary technologies, work in groups to build an application, and create a webpage from which the application can be accessed. Students will be evaluated based on whether their product meets the goals they initially established, and on their internal project management processes. Prerequisite: CSC 305, CSC 310, CSC 410, CSC 415 or 
concurrent

CSS 101: PROGRAMMING FOR EVERYONE l

Credits 4
This course aims to teach everyone the basics of programming computers using Python. We cover the basics of how one constructs a program from a series of simple instructions in Python. We will explore how we can use the Python built-in data structures such as lists, dictionaries, and tuples to perform data analysis. The course has no prerequisites and avoids all but the simplest mathematics. This course will introduce the core syntax, commands, and data structures of the Python programming language. Once a student completes this course, they will be ready to take more advanced programming courses.

CSS 111: PROGRAMMING FOR EVERYONE ll

Credits 3
This course teaches students about the fundamentals of data access and management. In the first half of the course, students will learn how to leverage their Python skills to treat the internet as a source of data. Students will work with HTML, XML, and JSON data formats in Python. The second half of the course introduces students to the fundamentals of Structured Query Language (SQL) as well as database design as part of a multi-step data gathering, analysis, and processing effort. As part of the course, students will build web crawlers and multi-step data gathering and visualization processes. Prerequisites: CSS 101 or MAT 215, MAT 103, MIT 225.

CSS 201: WEB DEVELOPMENT

Credits 3
Web Development introduces students to HTML, CSS, and Javascript - the core technologies which power modern websites. Students will learn how to create interactive, aesthetically pleasing websites for a variety of purposes. This course culminates in a project which will have students build a website for a real or imaginary product of their choosing. Students concurrently enrolled in Application Development II are encouraged to build a website that corresponds with their project in that course. Prerequisites: CSS 111, MAT 231

CSS 202: APP DEVELOPMENT l-EXPLORING WEB APP

Credits 3
This is the first course in the Application Development series. Application Development I introduces students to Django - a Python-based framework used in the creation of complex, data driven websites. Students will learn the features and particularities of Django, as well as the basics of web applications including HTML, the Request-Response structure, and the internal structure of servers. Students will also review the basics of database management, and dive deeper into a variety of data structures and modules. This course is intended to prepare students for Application Development II, in which they will build their own Web Applications. Prerequisites: CSS 111, MAT 231

CSS 222: APP DEVELOPMENT ll-BUILDING WEB APP

Credits 3
This course is a continuation of the Application Development series and is divided into two parts. In the first part of the course, students work individually to build a web application to post classified ads. In the second part of this course, students will work in groups to plan and build their own unique web applications. This course heavily emphasizes project-based learning. Prerequisites: CSS 202.

CSS 302: INTR TO C-HOW COMPUTERS REALLY WORK

Credits 3
This course is intended to introduce students to C - the programming language used to develop numerous other high-level programming languages such as C++ and C#. This class introduces students to the techniques used to program in C and the necessary concepts required to understand how higher-level programming languages are developed. The concepts introduced here will help students develop an inherent understanding of how computers turn high-level code in ones and zeros and help students build more efficient programs. Prerequisites: CSS 222, MAT 321.

CSS 402: HARDWARE I-INSIDE A MICROPROCESSOR

Credits 3
This course is intended as an introduction to computer hardware and builds upon Introduction to C. It covers the techniques used to design and build microprocessors, memory, and other elements of modern-day hardware. Students will learn the fundamentals of machine language (binary) and assembly language, and understand what happens inside of a computer on a fundamental level. Students will also have the opportunity to analyze the C compiler and learn how it produces the necessary strings of ones and zeros that will run on the hardware. Prerequisites: CSS 302, MAT 330.

CSS 412: ALGORITHMS

Credits 3
An algorithm is a series of rules that are used to solve problems in a procedural manner. This course will introduce students to the types of algorithms used in order to solve a range of computational problems, and teach students how to use each most efficiently. Students will be introduced to both basic and more complex algorithms. This course includes a final project in which students will be asked to select an algorithm and solve a computational problem. Prerequisites: CSS 302, MAT 330.

CSS 414: DATA STRUCTURES

Credits 3
This course will teach students fundamental data structures using Python. Data structures allow for the storage of vast quantities of data, as well as efficient access to and modification of said data. Students will learn what a data structure is, how to perform a range of operations on them, and be introduced to the study of algorithms as it pertains to the covered data structures. Prerequisites: MAT215, CSS111, MAT321 (or Concurrent)