Computers and their applications are at the center of our everyday lives. In this course, we explore what it means to communicate effectively and engage in critical thinking and problem solving using computers as a creative tool. Students also build on their quantitative reasoning skills. Students learn how to analyze information and problem solve using Word Processing, Spreadsheet, Presentation, Database, Cloud Computing, Wiki/Blog and GPS/GIS to visualize, organize, present, document, explain, and query information. Students also learn how to create basic web pages in order to share them with a greater audience.
The ubiquity of Internet connected digital devices in the 21st century has led to an increase in computer related crimes. This course traces the history, definitions and typologies of computer network and cybercrime, focusing on the offender and victims and how the criminal justice system is investigating, prosecuting, and preventing various cybercrimes. This course introduces students to the many different types of cybercrime and how it affects its victims, be it an individual, an institution or the society. Special focus will be paid to network connected digital devices and how to recognize and protect from being a victim of network-related crimes through "hands on" activities.
Meets Social Scientific Awareness Learning Outcome (SOC)
Students build on the concepts introduced in Computing I. Students also gain a better understanding of the implementation of programming designs, and basic concepts of data structures. This course includes a laboratory component.
An introduction into the mathematical structures fundamental to various areas of computer science. Topics include introduction to logic and proofs, set theory, number theory and cryptography, functions, relations, counting, discrete probability, and graph theory. Required for Computer Science Degree programs and the Computer Science Minor program (an equivalent course can be substituted in the minor with departmental approval). This course includes a 1-hour recitation.
The goal of this course is to prepare students to analyze data and solve real-life business and scientific problems, using a software application such as Microsoft Excel as a tool. Students will move beyond the basic "point and click" and will be challenged to use critical thinking and analysis to find efficient and effective solutions to real-life situations, as well as build on information literacy.
Counts as a Computer Science elective for the Computer Science with Business Major only. Does not count towards Computer Science minor.
Designed primarily for non-majors who wish to deepen their understanding of the Internet, this course explores the fundamentals of Internet communication and the systems/applications that facilitate it. Students gain a basic understanding of the technical side of the Internet while learning how to leverage it to their advantage with subjects such as online research techniques, good privacy, latest online applications, and security practices, and an introduction to HTML and web page creation. Topics of class discussion include online ethics in an era of "free" information and safety in the face of increasing threats to information security.
This course serves as an introduction to Geographic Information Systems (GIS). Students will be introduced to the fundamental principles and practices of GIS. This course will focus on spatial data development and analysis of this data. Topics covered will include basic data structures, data sources, data collection, data quality, understanding maps, building a GIS, Global Navigation Satellite Systems, digital data, attribute data and tables, and basic spatial analysis.
The goal of this team-taught course is to introduce students to the field of remote sensing and to give them experience analyzing remote sensing data. This engaged-learning course will use GIS technology to explore spatial relationships across multiple disciplines. The class will use a scenario-based problem approach where students will examine real data and learn how to make and support spatial decisions. Learning will occur in a laboratory setting through exploration, discussion and hands-on interactive laboratory activities. Counts as an elective for all Computer Science major tracks and for the Computer Science minor.
An introduction to the fundamental concepts of data structures and the algorithms that proceed from them. Topics include the underlying philosophy of object-oriented programming, fundamental data structures (including stacks, queues, linked lists, hash tables, trees, recursion, and graphs), and the basics of algorithmic analysis.
An examination of the basic functional components found in a computer i.e., the CPU, memory systems, and I/O. Topics include CPU layout and operation, the ALU, machine instruction processing, assembly language, and alternative architectures such as parallel processing.
With the advent of the Digital Age, cybercrime has become one of the most serious threats to our nation and to the population at large. In this course, students will be introduced to the field of computer forensics where they will learn to acquire, secure, recover, validate and analyze digital information for use in criminal and civil investigations. Instruction will include lectures, hands-on activities and student presentations.
An introduction to the structure, implementation, and theoretical underpinnings of computer networking and the applications enabled by that technology. Topics include the layers of the OSI and TCP/IP stacks, common communication protocols, network architecture, internet applications, and network security.
This course is a survey of the field of Human-Computer Interaction (HCI). It focuses on design strategies for making software usable by real-world people for doing real-world work. The topics studied will include: the role of HCI in the software product life cycle, task analysis of the user's work, architectures for human-computer dialogues, new and traditional approaches to user interface design, user interface standards, human-computer interface evaluation, computer-supported cooperative work, usability issues, and ethical issues. Classes will include both lectures and hands-on lab work.
This course provides an introduction to the computational concepts that generate graphics and animations with a computing system. Students learn about the hardware, software, computer languages, and mathematical tools used in the construction of graphic images on a computer screen. Selected topics include graphics data structures, and 2-D and 3-D mathematical tools for modeling, data visualization techniques for use on the Internet.
This course is intended to give students both theoretical and practical experience with requirements analysis, systems design, development and implementation as it relates to Computer Based Information Systems. Students will gain an in depth understanding of requirements discovery, system design methods, modeling techniques, software engineering principles and processes as well as an understanding of the principles of Project Management.
An examination of the formal techniques and underlying mathematical theory behind efficient programming. Topics include asymptotic analysis of complexity bounds for both recursive and iterative algorithms, advanced tree and graph algorithms, fundamental algorithmic strategies (brute-force, greedy, divide-and-conquer, backtracking, branch-and-bound, pattern matching, and numerical approximations), and the implications of noncomputability.
Prerequisite(s):CS 213 or permission of the instructor.
A comparison of abstract machines and their physical counterparts, finite state machines, neural networks, regular expressions, Turing machines, the concept of computability and the relationship to machines, digital computers and universal machines. Mathematical proofs are an integral part of the course.
Prerequisite(s):CS 213 or permission of the instructor.
An operating system is a manager of computer resources, including the memory, the processor, the I/O devices, and the information. Topics considered include partitioned memory, paged memory, segmented memory, processor scheduling, traffic controllers, devices and virtual devices, interrupt handling and resource protection.
Prerequisite(s):CS 220 or permission of the instructor.
An introduction to the broad fields of information security in our increasingly computer-driven and interconnected world. This course focuses on the fundamental concepts necessary to understand the threat to information and possible defenses against those threats. Topics include threats, vulnerabilities and security measures to support information confidentiality, integrity and availability.
The course provides an in-depth knowledge and understanding of how the Internet and the World Wide Web (www) operate, client-server architecture, and the technical knowledge required to establish and maintain an Internet/Web site. Further, we look at the various (technical and non-technical) directions the Internet/Web is taking, and its increasing influence on our day-to-day lives. Students will be given a series of projects that apply the overviews into practice.
A study of the features of programming languages: syntax, semantics, control structures, study of types, subprograms, parameters and passing mechanisms, design issues for languages, and an introduction to classification of languages: functional, procedural, object-oriented, logic.
Prerequisite(s):CS 213 or permission of the instructor.
The course provides an overview of Data Science and Analytics, covering a broad selection of interdisciplinary challenges in and methodologies for working with data. Topics covered include data collection, data cleaning, integration, management, modeling, analysis, visualization, prediction and informed decision making. The introductory course integrates across the major disciplines of data science and analytics, including databases, statistics, mathematics, data mining, data visualization, cloud computing, and business intelligence. Cross disciplinary skills, such as communication, presentation, and storytelling with data, are emphasized. Students will acquire a broad breadth of data science principles and techniques through hands-on projects and case studies in a variety of business, engineering, social sciences, or life sciences domains. Themes centered around ethical use of data, protection of data and privacy, and teamwork are woven throughout the fabric of the course.
CS111 and one of the following: BU121, PY301, MA330, SO212, BI345, CJ200, or other approved statistics course.
An introduction to design, use, and management of databases, with an emphasis on the relational database model. Topics include database environment, data modeling, database design, data definition and manipulation languages.
Prerequisite(s):CS 101 or CS 111 or permission of the instructor.
This course introduces students to the skills necessary for conducting research in mathematics. In a topic chosen by the instructor, this course will cover how to read and absorb research papers, find open problems that are both interesting and appropriate for undergraduate research, write mathematical papers, and give a mathematics lecture.
Completion of five college mathematics courses or permission from the instructor.