Computer Science (CSC)
In this class, students will learn the ins and outs of the Linux Operating System from a software developer s perspective. Students will learn how to use the powerful command line tools that are available on this platform and will create different kinds of shell scripts to automate complex operations. Students will learn how to use different editors, manipulate the filesystem, transfer files between computers, use debuggers and much more. This is a foundational class that will provide a solid base of industry-relevant skills which will be built upon for the remainder of the program and beyond.
This course reinforces and extends students' understanding of current practices of developing object-oriented software. Students gain a deeper understanding of concepts from CSC110, including implementations of abstract data types, basic GUI interfaces, exception handling, recursion, and event driven programming.
In this class, students will learn the basics of the C programming language. This is a foundational class that will provide a base of knowledge that will be drawn upon for many of the other classes in the Computer Science Program. This class is intended for Computer Science majors. No prior programming experience is assumed.
This course reinforces and extends students understanding of current practices of developing object-oriented software. Students gain a deeper understanding of concepts from CS 101, including implementations of abstract data types, basic GUI interfaces, exception handling, recursion, and event driven programming.
In this class, students will dive into the details of how to create flexible and sustainable software solutions by employing standard Software Design Patterns and Principles. This hands-on class assumes a strong understanding of Object Oriented programming concepts. This class is intended for Computer Science majors and minors alike.
In this class, students will explore data structures and algorithms in more depth. Students will become familiar with the different families of algorithms and will implement many of them. There will be a strong emphasis on theory and your ability to apply it using the Java programming language.
This class will cover the basic concepts of Operating Systems and Computer Architecture. Several topics will be covered in depth through hands-on programming and exploration. Processes, threads, I/O, memory management along with several other topics will be covered.
Basic concepts and principles of software engineering, its tools and techniques, and methods for modeling software systems. Topics include requirements elicitation, prototyping, functional and non-functional requirements, requirements tracking, software evolution, design models, architectural principals and testing.
In this class, students will learn about modern, cloud-based applications. Students will learn about common architectures, platforms, frameworks and middleware that are used to build cloud-based applications that run at scale. This class includes one major project that students will iterate over for the entire semester. A weekly one-hour lab is included for instructor-led collaboration and project work.
A supervised experience designed and tailored by the student and the program's coordinator.