Computer Science (CPS)

CPS 120  Introduction to Computer Science  (3 Credits)  
  
45 lecture, 3 total contact hours  
In this course, students are introduced to computer science. Students learn to write, enter, compile and execute simple computer programs. Topics include numbering systems, operating systems, database, programming, networking, Internet and algorithms. Students must have basic computer literacy in order to be successful in this course. Level I Prerequisite: Academic Reading and Writing Levels of 6; Academic Math Level 3
CPS 141  Introduction to Programming Using Python  (4 Credits)  
  
60 lecture, 4 total contact hours  
In this course, students are introduced to programming using Python. Topics include applications in informatics, accessing data on the Internet and human-computer interactions. Level I Prerequisite: Academic Reading and Writing Levels of 6; Academic Math Level 3 Level II Prerequisite: Basic skills using computers including, but not limited to, using a web browser; creating, saving, and finding files on a computer.
CPS 161  An Introduction to Programming with Java  (4 Credits)  
  
60 lecture, 4 total contact hours  
In this course, students are introduced to the Java programming language. Looping, conditional logic and string manipulation are some of the basic programming concepts covered. Object-oriented concepts are covered such as objects and classes, constructors, inheritance, and polymorphism. Abstract classes and interfaces are minimally covered. CPS 261 will cover these topics in depth. Prior programming experience is recommended. Students who have no programming experience should consider taking CPS 120. Level I Prerequisite: Academic Reading and Writing Levels of 6; Academic Math Level 4
CPS 171  Introduction to Programming with C++  (4 Credits)  
  
60 lecture, 4 total contact hours  
In this course, students will be introduced to programming using the C++ language. Students learn about problem solving strategies, top-down program development and programming style. Topics include sequential, decision and iterative control structures, functions, basic data structures and an introduction to classes. Students write and execute approximately eight C++ programs. Prior programming experience is recommended. Students who have no programming experience should consider taking CPS 120. Level I Prerequisite: Academic Reading and Writing Levels of 6; Academic Math Level 4
CPS 251  Android Programming  (4 Credits)  
  
60 lecture, 4 total contact hours  
In this course, students create applications using Android Studio. These applications will run on Android devices. Students will use the latest Google-preferred programming language to develop these applications. Topics include graphical user interfaces, events, intents, view model, live data, database and other concepts for developing android applications. The title of this course was previously Android Programming Using Java. Level I Prerequisite: Academic Reading and Writing Levels of 6; CPS 161 minimum grade "C+"
CPS 261  Advanced Java Concepts  (4 Credits)  
  
60 lecture, 4 total contact hours  
In this course, students will continue exploring Java concepts. Topics covered include input/output, abstract class and Interfaces, graphical user interface (GUI) associated with JavaFX, data structures, Java Stream, multitasking (Threads) and JUnit. Students entering this class should have a good understanding of object-oriented programming concepts such as inheritance and polymorphism. This course is the second part of a two-course sequence. Level I Prerequisite: Academic Reading and Writing Levels of 6; Academic Math Level 4; CPS 161 minimum grade "B-"
CPS 271  Object Features of C++  (4 Credits)  
  
60 lecture, 4 total contact hours  
In this course, students will continue the study of C++ by learning the object-oriented features of the language. Topics include classes, constructors and destructors, operator overloading, pointers, dynamic allocation of memory, inheritance, polymorphism, file manipulation, templates, and exceptions. Level I Prerequisite: Academic Reading and Writing Levels of 6; CPS 171 minimum grade "C+"
CPS 272  Data Structures with C++  (4 Credits)  
  
60 lecture, 4 total contact hours  
In this course, students continue the C++ sequence and study more advanced computer science features as implemented in C++. Topics include advanced data structures, complexity/efficiency of algorithms, recursion and problem-solving. Level I Prerequisite: Academic Reading and Writing Levels of 6; CPS 271 minimum grade "C"
CPS 276  Web Programming Using PHP and MySQL  (4 Credits)  
  
60 lecture, 4 total contact hours  
In this course, students will build dynamic database-driven Web applications using PHP: Hypertext Preprocessor and MySQL (structured query language). Application output will be displayed in a browser. Students will be working on a Linux VM (virtual machine) server. In addition, students will be introduced to some basic HTML (Hypertext Markup Language) and limited CSS (Cascading Style Sheets). Students who have not taken the prerequisite courses, but have equivalent programming experience in any language, should request an override from the instructor or department chair. HTML knowledge is helpful.
CPS 278  Java Spring Framework  (4 Credits)  
  
60 lecture, 4 total contact hours  
In this course, students will learn about Java Spring Framework. Topics include: Inversion of Control (IoC), Spring MVC (model-view-controller), Hibernate CRUD operations (create, read, update and delete), and Spring REST (representational state transfer). Students will learn how to develop a real time project with Spring MVC, Hibernate and Spring REST. Students taking this class should have a good knowledge of Java Fundamentals. Some knowledge of database and simple HTML is not mandatory but highly recommended. The title of this course was previously Java Server Programming. Level I Prerequisite: Academic Reading and Writing Levels of 6; Academic Math Level 4; CPS 161 or CPS 261, minimum grade "B-"
CPS 298  Professional Team Programming  (4 Credits)  
  
60 lecture, 4 total contact hours  
The goal of this course is to simulate the industrial experience of working in teams. Students will work in teams using version control software (GIT, GitHub) to manage their projects. The course explores the advantages and disadvantages of leading project planning and software development methodologies, such as Agile, Waterfall, Scrum and Extreme Programming. Students will learn and apply industry practices, such as Pair Programming and Test Driven Development. Level I Prerequisite: Academic Reading and Writing Levels of 6; Academic Math Level 4; CPS 251, CPS 261, CPS 271, CPS 276, or CPS 278, minimum grade "B-"