CS - Computer Science
Undergraduate students enrolling in undergraduate computer science and information technology courses must have earned a grade of “C-” or higher in each prerequisite course with a CS prefix.
Prerequisites: Level II placement on the Basic Math Skills inventory or MATH 099, or permission by instructor.
This introduction to computer science, developed by Google and their university partners, emphasizes problem solving and data analysis skills along with computer programming skills. Using Python, students learn design, implementation, testing, and analysis of algorithms and programs. Problems will be chosen from real-world examples such as graphics, image processing, cryptography, data analysis, astronomy, video games, and environmental simulation. Students get instruction from a world-class computer science professor, delivered remotely through video and interactive media, then work on collaborative projects in groups with coaching by their instructors. Prior programming experience is not a requirement for this course.
Credits
3.0
Core
Scientific Thought-Non-Lab
Offered
Fall Semester
Prerequisites: Level II placement on the Basic Math Skills Inventory or MATH 099 or permission of the instructor. An introduction to computational thinking by developing computer programs to create images, animations, visualizations, and interactive art. Topics include computational thinking, problem solving, programming in the Processing language, impact of technology on society and contemporary issues.
Credits
3.0
Core
Scientific Thought-Non-Lab
Offered
Both Semesters
Prerequisites: Level II or higher math placement or MATH 099 or permission of the instructor. An introduction to the use of computers applied to music; using applications and developing computer programs to create, record and edit musical information. This course combines computational thinking, music theory and algorithmic composition. Topics include computational thinking, problem solving, programming in the Chuck language, impact of technology on society, and contemporary issues.
Credits
3.0
Core
Scientific Thought-Non-Lab
Offered
Spring Semester
Prerequisite: CS 100 or the equivalent introduction computer science.
This course introduces students to the importance of gathering, cleaning, normalizing, visualizing and analyzing data to drive informed decision-making, no matter the field of study. Students will learn to use a combination of tools and techniques, including spreadsheets, SQL and Python to work on real-world data sets using a combination of procedural and basic machine learning algorithms. They will also learn to ask good, exploratory questions and develop metrics to come up with a well thought-out analysis.
Credits
3.0
Offered
Spring Semester
Prerequisites: Level III placement on the Basic Math Skills inventory or MATH 120 (may be taken concurrently). General programming techniques for students who have had some previous experience with computer programming. Topics include: algorithmic problem solving, top-down design, object-oriented programming and design, and an introduction to abstract data types. Instruction in a high-level programming language.
Credits
4.0
Offered
Both Semesters
Prerequisites: CS 201 and MATH 207 (or concurrent enrollment) or permission of the instructor. An introduction to the structuring and manipulation of information with implementation in the high-level programming language Java. Topics include: linked lists, sets, stacks, queues and trees; basic manipulation techniques including sort/merge and search algorithms; an introduction to algorithm efficiency analysis.
Credits
4.0
Offered
Both Semesters
Prerequisite: CS 202 and MATH 207 Intensive introduction to object-oriented programming and advanced data structures. Topics include heaps, priority queues, hash tables, B+, B* trees and graphs. Emphasizing advantages and disadvantages of design and implementation choices, and the way these choices affect software quality. Instruction will be in the C++ programming language.
Credits
3.0
Offered
Both Semesters
Prerequisites: CS 201 and MATH 207 or permission of the instructor. A comprehensive introduction to the general organization, architecture and functional characteristics of computer systems. Topics include machine level representation of data, assembly level machine organization, memory systems organization and architecture, alternative architectures and device interfaces.
Credits
3.0
Offered
Fall Semester
This course is a general topics course in computer science allowing faculty and students to study particular special interests.
Credits
1.0 - 3.0
Offered
As Needed
Prerequisites: Completion of the Social and Behavioral Analysis section or Historical Analysis section or Philosophical Inquiry section of the Core or permission of the instructor. Computer technology is a driving factor in globalization. This course studies the past, present and future impact of computer and communications technology on society, education, government and the workplace around the world. Topics covered cross national, cultural, and continental boundaries.
Credits
3.0
Core
Global Perspectives
Offered
Both Semesters
Prerequisites: CS 219, MATH 201 and MATH 207 (grade of C- or higher) or permission of the instructor. Introduction to the analysis and design of algorithms. Topics include: sorting, searching, advanced tree structures, graph algorithms, network flow problems, amortized analysis, divide-and-conquer, greedy algorithms, dynamic programming, combinatorial search algorithms, computational geometry and NP-completeness.
Credits
3.0
Offered
Spring Semester
Prerequisite: CS 202 or permission of the instructor. This course will examine and discuss the life cycle of computer software. The major issues addressed are: analysis of the project, requirements specification, design, coding, testing and reliability and maintenance.
Credits
3.0
Offered
Fall Semester
Prerequisite: CS 202 permission of the instructor. Design and implementation of databases from a real world applications point of view. The course includes database concepts such as basic architectural issues, the relational model, query processing, logical database design and normalization theory and data protection issues.
Credits
3.0
Offered
Spring Semester
Prerequisite: Permission of the department. An opportunity for students to serve as teaching assistants in the computer science program. Under faculty supervision, assistants will work with students in laboratory and help sessions for introductory courses. May be repeated for a maximum of 4 credits. Grading is on a satisfactory/unsatisfactory basis.
Credits
1.0 - 2.0
Offered
Either Semester
Prerequisite: Permission of the instructor. The study of selected topics in computer science, accomplished through readings, problem assignments and projects.
Credits
1.0 - 3.0
Offered
Both Semesters and Summer
An upper-level special topics course offered at the discretion of the department. The content and methods vary with the interest of students and faculty members
Credits
3.0
Offered
As Needed
Prerequisites: 21 credits of computer science courses at the 200-level or above and permission of the department. Supervised work in computer-related projects in a governmental, private-industrial or educational setting. In order to enroll in this course, a student must meet College internship requirements. Grading is on a satisfactory/unsatisfactory basis.
Credits
3.0 - 15.0
Offered
Both Semesters and Summer
Prerequisites: MATH 213 or MATH 112 or PSY 211 or ECMG 212, and Level III Mathematics Placement, and CS 200; or Permission of Instructor
Introduces basic principles and methods for data analysis and knowledge discovery to computer science students. Topics include preprocessing, association, classification, and anomaly detection. Students develop basic skills for modeling and performance evaluation.
Credits
3.0
Cross Listed Courses
Double-numbered course; offered with graduate-level
CS 522
Offered
Fall Semester
Prerequisites: MATH 213 or MATH 112 or PSY 211 or ECMG 212, and Level III Mathematics Placement, and CS 200; or Permission of Instructor
This course provides an overview of Data Science, covering a broad selection of challenges and methodologies for working with big data. Topics to be covered include data collection, integration, management, modeling, analysis, visualization, prediction, and informed decision making. Students work on hands-on projects and case studies using real data sets from a variety of domains including science, business, engineering, social sciences, and life sciences.
Credits
3.0
Cross Listed Courses
Double-numbered course; offered with graduate-level
CS 527
Offered
Spring Semester
Prerequisite: Junior standing and CS 219 or permission of the instructor. History, fundamental principles, and future directions of A.I. Topics include state-space searching, knowledge representation, logic and deduction, natural language processing, neural networks, learning, vision, robotics, and cognitive science. Topics will be treated at a level of depth and detail appropriate for a first course in AI.
Credits
3.0
Cross Listed Courses
Double-numbered course; offered with graduate-level
CS 528
Offered
Fall Semester
Prerequisites: MATH 213 or MATH 112 or PSY 211 or ECMG 212, and Level III Mathematics Placement, and CS 200; or Permission of Instructor
Introduction to the field of modeling learning with computers. Topics included are explorations of inductive learning, learning decision trees, ensemble learning, computational learning theory, and statistical learning methods.
Credits
3.0
Cross Listed Courses
Double-numbered course; offered with graduate-level
CS 543
Offered
Spring Semester (Even Years)
Prerequisites: Junior standing and CS 428 or permission of the instructor Comprehensive examination of the theory and practice behind robot-building and the deployment of intelligent systems. Topics are divided between robot architectures (control paradigms, kinematics, sensors, actuators and navigation) and cognitive robotics (learning, decision-making, coordination and cooperation).
Credits
3.0
Cross Listed Courses
Double-numbered course; offered with graduate-level
CS 545
Offered
Spring Semester (Odd Years)
Prerequisite: CS 226 or permission of the instructor. Introduction to combinational and sequential circuit design. Topics include Boolean algebra and simplification techniques, arithmetic circuits, decoders, flip-flops, counters, registers, memory systems, analog-to-digital conversion and VHDL programming.
Credits
3.0
Cross Listed Courses
Double-numbered course; offered with graduate-level
CS 550
Offered
Spring Semester (Even Years)
Prerequisite: CS 219 or Permission of Instructor. Digital Signal Processing (DSP) is concerned with the representation, transformation and manipulation of signals using computer technology. This course will introduce the basic concepts and techniques for processing discrete-time signals.
Credits
3.0
Cross Listed Courses
Double-numbered course; offered with graduate-level CS 551
Offered
Spring Semester (Odd Years)
Prerequisites: CS 226. Foundations of networking technology and understanding of challenges faced in design and architecture of Data networks. Topics include networking principles, Transmission, Control Protocol, Internet Protocol, data encoding/decoding techniques and wireless communication.
Credits
3.0
Offered
Spring Semester
Prerequisites: CS 226 and CS 219 or permission of the instructor. An in-depth study of architectural concepts and principles including performance-based design tradeoffs. Topics to be covered include: instruction set design, arithmetic algorithms, hardwired and microprogrammed control, memory hierarchy design, input/output, pipelines, RISC, CISC, vector processors, parallel processors and superscalar machines.
Credits
3.0
Cross Listed Courses
Double-numbered course; offered with graduate-level
CS 561
Offered
Fall Semester (Odd Years)
Prerequisites: CS 226 and CS 219 or permission of the instructor. Fundamental principles of operating systems. Topics include: process management; concurrency; deadlock; CPU scheduling; memory management; disk management; files systems; security; and distributed, real-time and multiprocessor operating systems.
Credits
3.0
Offered
Spring Semester
Prerequisites: Junior standing and CS 219 or permission of the instructor. A comprehensive introduction to both the principles and the practice of parallel computing. Topics to be covered include: programming and architectural models, parallel algorithms and parallelizing compilers.
Credits
3.0
Cross Listed Courses
Double-numbered course; offered with graduate-level
CS 566
Offered
As Needed
Prerequisites: CS 226 and CS 219. A survey of the major programming paradigms and their related languages, including procedural, functional, logic and object-oriented programming. Topics include: binding, exception handling, data sharing, scope, parameter passing, type checking, runtime storage management, lexical analysis, syntactic analysis, parsing, code generation and optimization.
Credits
3.0
Offered
Fall Semester
Prerequisites: CS 329 and senior standing, or permission of the instructor. Course focuses on cultivating proficiency in technical communication, using appropriate research methods, enhancing the ability to identify computational problems, properly state research questions, critically assess scientific literature, present data and results, work in teams and improve technical writing and time management skills.
Credits
3.0
Offered
Fall Semester
Prerequisites: CS 324, CS 474 and senior standing, or permission of the instructor Students majoring in computer science complete a capstone project, serving as a culmination of their studies. The project entails the development of a significant piece of software or carrying out a research study by a student team, supervised by a designated faculty member within the department and evaluated by a faculty committee.
Credits
3.0
Offered
Spring Semester
Credits
3.0
Offered
As Needed
Prerequisite: By invitation of the department.
The departmental honors paper is a two-semester senior-year program designed for students who wish to pursue intensive research or special projects in close coordination with faculty advisers. Departmental honors students are known as the Christine P. Tischer Scholars and receive 6 credits for this work.
Credits
3.0
Offered
Both Semesters and/or Summer
Prerequisite: By invitation of the department.
The departmental honors paper is a two-semester senior-year program designed for students who wish to pursue intensive research or special projects in close coordination with faculty advisers. Departmental honors students are known as the Christine P. Tischer Scholars and receive 6 credits for this work.
Credits
3.0
Offered
Both Semesters and/or Summer