Requirements & Courses
-
Major Requirements
Thirty-six credits which must include:
-
CSC-120, 121, 204, 230, 240 and 310
-
Fourteen additional credits as follows:
- Eight credits from CSC-410, 420, 430 or 440.
- Electives may be chosen from any CSC course numbered 114 or above; MTH-336; and COG-120.
- Cognates: MTH-120, 220 and any additional MTH course numbered 113 or higher (MTH-336 cannot be counted for this requirement and as a CSC elective).
- The senior comprehensive examination includes three parts: successful completion of the Major Field Test in Computer Science, submission of an approved writing sample and an approved oral presentation.
-
-
Note: No more than six credits from CSC-114, 117, and COG-120 may be applied to satisfy major requirements.
-
Program Considerations
Graduate school bound students are strongly encouraged to take CSC-420, 430, 440, and to minor in mathematics. Many graduate schools expect undergraduate research as part of entering students’ background; thus, a senior thesis is also encouraged. Consult carefully with your advisor. Students seeking a technical professional position upon graduation are strongly encouraged to take CSC-410, 420, 430, 440 and MTH-116 and 117; a practicum is recommended.
-
Minor Requirements
Twenty-four credits which must include:
-
CSC-120 and 121
-
At least eight upper level credits
-
Cognate: MTH-120
-
-
Four credits from CSC 120 or higher, with the exception of practicum or independent study courses, count towards the Distributive Requirements in the Natural Sciences - Mathematics/Computation.
Courses
-
CSC100.Computer Systems2 creditsIntroduction to the use of modern computer systems. Basics of word-processing, graphics, spreadsheets, Internet access and Web development software. Use of computer peripherals such as printers, scanners and digital cameras. Taught in a laboratory setting.
-
CSC105.Modern Spreadsheets2 creditsPrerequisite: MTH-100 or PlacementIntroduction to the use of modern spreadsheets, with a particular emphasis on business applications. Taught in a laboratory setting.
-
CSC116.Programming With Data4 creditsIntroduction to programming techniques for the manipulation and analysis of digital data. Programming topics include: digital representations of data, types of data, programming decision and repetition, functions and libraries for storing and manipulation data in the language of instruction (e.g. the pandas library of Python). Data topics include: common formats (e.g. CSV, JSON, XML, database), missing data, cleaning data, exploratory data analysis. Visualizing and presenting data to support an argument.
-
CSC117.Image and Reality4 creditsPrerequisite: MTH-100 or PlacementExplores the current reality of artificial intelligence and visions of what it is and will be. Examination of current artificial intelligence systems. Particular emphasis on robotics, with projects involving robot design, creation and programming. Laboratory.
-
CSC118.Media Computation4 creditsPrerequisite: MTH-100 or PlacementIntroduction to media programming and computation. Exploring computer programming for manipulating images, sounds, movies, e-text, and other digital media. Skills and knowledge will involve problem-solving, data representation, and programming principles including recursion, user-interaction, and object-oriented design. Introduction to computer science hardware and software fundamentals. CSC-118 and 120 may not both be taken for credit in the major. Laboratory.
-
CSC120.Object-Oriented Programming I4 creditsPrerequisite: MTH-100 or placementFundamentals of object-oriented programming in the language of instruction (e.g., Java). Topics include: basic computation, input and output, control structures, classes and object instantiation, methods and parameter passing, arrays and strings, sorting and searching. Laboratory.
-
CSC121.Object-Oriented Programming II Techniques4 creditsPrerequisite: CSC-120Focuses on object-oriented design, encapsulation and inheritance. Programming topics such as recursion and event-driven programming. Basic data structures such as a stacks, queues and linked lists.
-
CSC204.Social and Ethical Issues2 creditsPrerequisite: Any CSC course or PermissionStudies social and moral problems arising from the use of computing technologies, with a particular focus on the Internet. Topics such as free speech, privacy, communications interception, encryption, intellectual property, liability for software and hardware malfunction, and for information content.
-
CSC230.Software Engineering4 creditsPrerequisite: CSC-121Software development: requirements, specification, modern design techniques, program testing methods, software metrics as used in quality evaluation, and project management.
-
CSC235M.Computer Game Design4 creditsPrerequisite: CSC-121 or permissionExplores the process by which computer games go from conception through formal design to implementation and testing. Uses coursework and team projects to cover aspects of the design process including brainstorming and narrative development, game programming, art and sound design, and marketing.
-
CSC240.Algorithms and Complexity4 creditsPrerequisite: MTH-120Advanced data structures and algorithms, algorithmic analysis, and an introduction to distributed and parallel algorithms.
-
CSC280.Topics in Computer Science2-4 creditsPrerequisite: CSC-121 and PermissionTopical study in computer science. While topics vary, the course usually introduces a particular computer programming language (e.g., C, C++, Prolog, etc.).
-
CSC310.Computer Organization4 creditsPrerequisite: CSC-121Advanced introduction to assembly languages and structure and organization of digital computers, including addressing schemes, digital representation of data and computer arithmetic. Course fee.
-
CSC315.Machine Learning4 creditsPrerequisite: DAT 116 or CSC 121, and MTH 242, or PermissionPrinciples and techniques for machine-based decision and prediction from large datasets. Algorithms for and applications of classification, regression, and unsupervised learning. Introduction to neural networks and deep learning. Use of machine learning libraries in languages such as Python and R.
-
CSC335.Computer Graphics4 creditsPrerequisite: CSC-121 and MTH-220Introduction to techniques of computer graphics including three-dimensional representations, perspective, computer animation, computer art and applications of computer graphics to various other disciplines.
-
CSC345.Artificial Intelligence4 creditsPrerequisite: CSC-121Survey of major topics in artificial intelligence. Emphasis on fundamental concepts: search, knowledge representation, problem solving and logic. Additional topics such as expert systems, learning, natural language processing, neural networks, planning, theorem proving and vision. Programming in an AI language.
-
CSC380.Topics in Computer Science2-4 creditsPrerequisite: CSC-335 or Permission
-
CSC399.Computer Science Independent Study1 creditRequires instructor permission.
-
CSC410.Database Management4 creditsPrerequisite: CSC-230In-depth study of techniques for storing, selecting and retrieving data. Topics selected from file and database organization, safety and recovery, privacy, security and commercial systems.
-
CSC420.Operating Systems4 creditsPrerequisite: CSC-310Survey of major concepts of operating systems. Investigation of relationships among the operating system, the architecture and the systems programs of a computer system.
-
CSC430.Theory of Computing4 creditsPrerequisite: CSC-120 and either MTH-220 or MTH-223In-depth study of the main components of the theory of computation: finite automata and computability.
-
CSC440.Languages and Translators4 creditsPrerequisite: CSC-310An in-depth study of the principles of programming languages and language-translation. Includes major programming paradigms in historical and modern contexts and explores language translation via interpreters and compilers, including lexical, syntactic, and semantic analysis.
-
CSC499.Computer Science Independent Study1 creditRequires instructor permission.
-
CSC500.Senior Thesis1 creditRequires instructor permission.