27 courses with the subject CS, each shown exactly as we captured it from the college's catalog, with every element we hold. Where the wording looks broken, that is our reading of the catalog, not the college's text.
CS 101Computational Thinking
The primary goals of this course are to introduce the building blocks of Computer Science, the fundamentals of computers, and to present the idea of computational thinking. Topics include an overview of the discipline of Computer Science, computer hardware, models of computation, and the process of algorithm design. Robot and C++ programming projects are used to explore the topics discussed in the class. Includes a one-hour recitation per week. Prerequisite: None.
This is the second course in the computer science major software development sequence. The course covers the fundamental concepts of structured programming, with a focus on problem solving strategies and implementation. Prerequisite: CS 101.
This course will help students develop the essential Python coding skills that every data scientist should have, using the same tools and software packages employed by data professionals. Topics include: conditional statements, iteration, common data structures, comprehensions & generators, functions & lambdas, custom classes, and error handling. A selection of data science related topics will be studied as time permits, including: string pattern matching, advanced data visualization, and scraping data from the web. Prerequisite: DS 101.
The purpose of this course is to expand the knowledge and expertise of students so they may become more technologically competent. Students will learn how to use software to solve a variety of problems. Topics will include textual design, mathematical design, information design and research design. Prerequisite: None.
This course provides an introduction to gaming. Specific topics covered include the history of games, game design theory, the game design process and the game production process. This course also covers the basics of actual game creation with various concepts illustrated by building 3D games. Prerequisite: C- or better in CS 150.
This is the third course in the computer science major software development sequence. The course utilizes the object-oriented design approach to building applications, which emphasizes the creation and utilization of reusable software tools (objects). Specific topics covered include: I/O, and linear data structures (lists, stacks, and queues). Prerequisite: C- or better in CS 150.
This course gives students an overview of the field of Cloud Computing, its enabling technologies, the various service modules (Software as a Service (SaaS), Platform as a Service (PaaS), and 201
This first portion of this course covers the fundamentals of the electronic circuits that are used to build computers. Both combinational and sequential circuit analysis and design are covered. Several logic gates, memory circuits and processor circuits are introduced. Hands-on lab exercises and practical application design are emphasized. The second portion of this course covers the fundamentals of computer architecture. The design, selection, and interconnection of hardware components, along with the co-designing of the hardware/software interface, in order to create a computer that meets functional, performance, and energy consumption goals is covered.
This course is a broad introduction to the field of Artificial Intelligence (AI). Students will study the design of computer systems that exhibit traits normally associated with intelligence in human behavior, such as the ability to solve complex problems, strategize against an opponent, reason effectively, plan for the future, and understand natural language. Additional topics will be included from the subfield of Machine Learning, in which systems learn from vast quantities of data – identifying patterns and making decisions with minimal human intervention. Students will have the opportunity to implement intelligent systems using Python and popular software packages.
This course emphasizes the concepts and structures necessary for the design and implementation of database management systems. Topics include data models, data normalization, data description languages, query facilities, file organization, security, data integrity, and reliability. Prerequisite: C- or better in CS 150 or CS 201.
Mobile computing devices have become ubiquitous in our communities. This course introduces the basics of contemporary mobile application development using Apple’s iOS. Specific topics include the Xcode IDE, the Swift programming language, Apple’s Model/View/Controller paradigm and supporting classes. The class will cover proper techniques for accessing back-end web services via the Internet using iOS. Since this is a class that uses Apple's iOS platform, students must have a Macintosh MacBook or iMac running a current version of the iOS with the most recent version of Apple's Xcode IDE installed, or be prepared to complete all of the programming projects in the College’s Digital Imaging Lab. Note: it will not be possible to use a Windows or Linux computer for this 202
This course will teach students the algorithms and mathematics underlying the most popular machine learning models. Students will study machine learning within the broad framework of optimization and loss minimization using techniques such as maximum likelihood estimation and gradient descent via backpropagation. The major theoretical machine learning concepts will be introduced, such as model fit and regularization, generalization, and bias-variance tradeoff. The ML models studied will include k-nearest neighbors, decision trees and forests, linear regression and logistic regression, hard- and soft-margin support vector machines, and neural networks. Students will use Python to implement basic versions of ML models and optimization algorithms by hand. As time permits, additional topics may include ensemble methods, bagging and boosting, dimensionality reduction, the use of kernels, and reinforcement learning. Prerequisite: Students are expected to have a strong grasp of Python programming and Students must have received a C- or better in both MATH/DS 312: Math for Data Science and CS 301: Artificial Intelligence (Also offered as DS315/MATH 315).
This course will first introduce students to philosophical ethics and criticisms of them—such as consequentialism, deontology, and Nietzsche’s genealogy of morality—after which we will apply these approaches to a number of contemporary ethical issues or problems raised by developing technologies. For example, how might consequentialists evaluate the use of expensive medical technologies that extend human life beyond what was ever previously possible? Would deontologists extend the rights currently offered to humans to non-human robots or AI systems? From a Marxist perspective, do the technologies used to create, manage, and regulate financial markets serve to reinforce or reproduce the growing gap between rich and poor? The goal of the course is not to persuade students to adopt any particular moral or ethical position, but rather to show them how each ethical ideology potentially produces various social effects; given a particular way of ethical thinking, who stands to gain and who stands to lose. Offered as a Gateway Course.
This course is designed to provide both a theoretical and practical approach to data structures and algorithms. Topics covered include algorithm analysis, searching and sorting algorithms, hashing, binary trees, b-trees, Merkle trees, tries, and graphs. The C++ programming language is used.
This course covers a broad range of important topics within Human Computer Interaction (HCI) and the implications for the design of interactive systems. It focuses on the design of interactive systems and human computer interfaces based on a multi-disciplinary approach through a synthesis of computer science, cognitive science, and psychology and utilizing analytical and empirical techniques to assess, create, and evaluate user experiences. Prerequisite: C- or better in CS 250. 203
This course provides an introduction to 2D and 3D computer graphics. Topics include 2D raster graphics, 2D transformations, 3D transformations, hierarchical modeling, and geometric representations of curves and shapes that are necessary to create 3D content. The course also covers various algorithms for lighting, reflection, shading, and texture mapping. In addition, an introduction to animation techniques: keyframing, motion capture, and character rigging is presented. The OpenGL API is used for all the graphic programming assignments. Prerequisite: C- or better in CS 250.
This course provides an in-depth experience with modeling and animation using Maya. Specific topics covered include modeling (polygons and NURBS), shading, texturing, lighting, rigging and animation. Prerequisite: C- or better in CS 150.
This course provides both a theoretical and practical approach to networks and security. The theoretical topics include data and packet transmission, the architecture of networks and protocols, security and network applications. The practical components of the course include exercises related to the construction, configuration, and administration of a network using appropriate hardware and software systems. Prerequisite: Pass CS 350.
This course provides an introduction to the principles and practice of cyber security with a focus on both fundamentals and practical information. The key topics of this course are applied cryptography; protecting users, data, and services; Internet security; IoT security; and common threats and defense strategies. Students will complete several practical lab assignments involving security tools (e.g., OpenSSL Wireshark, Metasploit and Nessus). The course will also involve assignments that require students to think both as an attacker and a defender, including writing secure code and exploiting insecure code. Prerequisite: Pass CS 380.
Data Mining studies the algorithms and computational paradigms that allow computers to find patterns and regularities in databases, perform prediction and forecasting, and generally improve their performance through interaction with data. This course introduces the basic concepts, principles, methods, implementation techniques, and applications of data mining, with a focus on two major data mining functions: (1) pattern discovery and (2) cluster analysis. Since data mining is also regarded as the key element of a more general process called Knowledge Discovery that deals with extracting useful knowledge from raw data, this course will also examine the knowledge discovery processes by examining the tasks of data selection, cleaning, coding, using different statistical and machine learning techniques, and visualization of the generated structures. Special emphasis will be given to the machine learning methods as they provide the real knowledge discovery tools. Important related technologies, such as data warehousing and on-line analytical processing (OLAP) will also be discussed. Current data mining software will be used. Prerequisite: MATH 120, CS 301 and CS 302. 204
CS 435Operating Systems and Embedded Systems Applications
This course provides an introduction to operating systems and embedded systems. Specific operating system topics covered include memory management, process management, device management and file management. The basic concepts related to embedded systems are reviewed. Specific embedded system topics covered will be related to programming robots. Prerequisite: CS 350
This course covers a collection of methods which embody an "engineering" approach to the development of computer software. Topics presented include: the nature of software and software projects, software development models, software process maturity, project planning, management, and various perspectives on software quality -- what it means, how to measure it, and how to improve it. Methods for analysis, design, testing, and implementation of large, complex software systems are discussed. The major work of the course is a group project. Prerequisite: Pass CS 350.
This course covers the knowledge and skills necessary to develop a complex enterprise web application. This course will support the understanding of the data that drives the enterprise web development, which includes the analysis of web traffic and usage, and the personalization of the web experience. This course focuses on the development of an enterprise web application with specific emphasis on the server-side enterprise web application programming and an n-tier system approach. The students in teams will design and develop a full enterprise web application including an n-tier implementation over the lifetime of the course. The development aspect will include server programming languages and systems (such as PHP, Django, Node) and database support (such as mySQL) as well as appropriate front-end development. Prerequisite: CS302.
This course is a required capstone course for all senior computer science majors. Each student will design and complete a major project. Prerequisite: CS 450.