Catalogs & Handbooks

Computer Science (CSI)

CSI SCE  Senior Capstone Experience  2 Credits  
The Senior Capstone Experience in Computer Science can take one of three forms: a senior thesis and oral/poster presentation on a topic in theoretical computer science, a senior programming project with a written exposition and oral/poster presentation, or preparation for, and successful passing of, a technical interview akin to those expected in industry. Each major choosing the thesis option will research and write a senior thesis with the supervision of a faculty member and will make an oral presentation on the thesis at a departmental seminar or present a poster at a departmental poster presentation session. Each major choosing the thesis option should have a thesis topic selected and approved by the end of their junior year. Double majors are often able to combine their thesis from another department to write only one senior thesis. Each major choosing the programming project option will complete the project with the supervision of a faculty member and will also complete a written exposition and make an oral or poster presentation on the project at a departmental seminar. Each major choosing the programming project option should have a project selected and approved by the end of their junior year. The Senior Capstone Experience in computer science is graded as Pass, Fail, or Honors. Students must do a thesis or programming project and make an oral presentation to earn the grade of honors.
Term(s) Offered: All Terms, All Years
CSI 100  Basics of Computing  4 Credits  
This course introduces computer programming in a modern, high-level programming language. Objectives include proficiency in the language (including variables, functions, types, flow control, and basic data structures) as well as familiarity with common computer science problem solving strategies. Students will also gain experience in team programming and in program design for practical problem solving. This course counts for distribution but does not count towards the major in computer science.
Term(s) Offered: Other, Non Conforming
CSI 104  Introduction to Game Design  4 Credits  
A study of games and game design with a specific focus on building, iterating and breaking down a variety of game and game types. The tools applied in this class can be applied to many types of storytelling and they will be particularly analyzed and applied to board games and video games. A student will gain some experience with and use of at least one digital game platform. Groupwork, discussion, presentation and iterative development are heavily required in this course. This course counts for distribution but does not count towards the major in computer science,
Term(s) Offered: Other, Non Conforming
CSI 111  Computer Science I  4 Credits  
The objectives of this course are threefold: to introduce programming concepts and algorithmic development, to teach an object-oriented programming language, and to teach how to design, code, debug and document programs using the techniques of good programming style.
Cross-listed as: CSI 201/CSI 111
Term(s) Offered: All Terms, All Years
CSI 112  Computer Science II  4 Credits  
The objectives of this course are twofold: (a) to study data structures, such as stacks, queues, trees, dictionaries, tables, and graphs, their efficiency, and their use in solving computational problems; and (b) to gain proficiency in an object-oriented programming language. Exercises in that language will provide an opportunity to design and implement the data structures.
Cross-listed as: CSI 202/CSI 112
Term(s) Offered: All Terms, All Years
CSI 194  Special Topics  4 Credits  
Topics not regularly offered in a department's normal course offerings, chosen based on current student interest and faculty expertise. Special topic courses can only be offered 3 times; after this, the course must be approved as a regular course. Graded A-F or Pass/Fail.
Term(s) Offered: All Terms, All Years
CSI 195  On-Campus Research  4 Credits  
An agreement between a sponsoring faculty member and a student researching a topic of interest that is relevant to a student's major or minor. Research is conducted on campus. Students must be enrolled before the research can begin. Graded A-F or Pass/Fail. 45 hours are required per credit.
Term(s) Offered: Summer, All Years
CSI 210  Object Oriented Programming  4 Credits  
This course gives a deep understanding of object-oriented design and programming, and the design and coding of applications programs using Java. The use of Java for graphics and graphical user interfaces, multithreading, connectivity with databases and across networks will be covered. Students will be required to design and write a large application for a final course project that incorporates GUIs and a selection of the principles taught.
Cross-listed as: CSI 203/CSI 210
Term(s) Offered: Fall, All Years
CSI 220  Data Science  4 Credits  
The heart of data science is going from a deluge of numbers to ever-elusive insight. In this introduction we focus on first principles: asking good questions, being aware of our assumptions, and understanding what it means to do good science. Topics include exploratory analysis/descriptive statistics, statistical testing, and data visualization. The course concludes with an introduction to recent data-driven machine learning models. We discuss ethical issues pertaining to data and machine learning throughout the course, using current events and articles as they arise. The course is both math and programming intensive, although in a heavily applied manner.
Cross-listed as: CSI 220/MAT 220
Term(s) Offered: Fall, All Years
CSI 230  Applied Decision Analysis  4 Credits  
The course comprises an introduction to decision analysis and data-driven decision-making. The instruction includes hands-on experience with developing decision support applications programs. A computational approach will be used to teach and demonstrate the basic principles of descriptive and inferential statistics, linear programming, the design and implementation of databases, and rudimentary differential and integral calculus. With these, students learn how to acquire and clean data, develop models, perform optimization, simulation, statistical testing, goal-seeking and what-if analysis of the models, and will communicate their results in writing and verbally.
Term(s) Offered: Other, Non Conforming
CSI 240  Discrete Mathematics  4 Credits  
An introduction to logic, reasoning, and the discrete mathematical structures that are important in computer science. Topics include proposition logic, types of proof, induction and recursion, sets, combinatorics, functions, relations, and graphs.
Cross-listed as: MAT 240/CSI 240
Term(s) Offered: All Terms, All Years
CSI 250  Intro Comp Organization & Architecture  4 Credits  
Principles of computer organization and architecture are introduced, including interfacing and communication, register and memory organization, digital logic, representation of data, and introduction to assembly language.
Term(s) Offered: Other, Non Conforming
CSI 252  Scientific Modeling & Data Analysis  4 Credits  
This course serves as a focused introduction to programming for scientists and engineers. Topics include algorithm development, statistical tests, the fast Fourier transform (FFT), simulating the dynamics of systems represented by coupled ordinary differential equations (e.g. planetary motion via Runge-Kutta methods), numerical integration, root finding, fitting functions to experimental data, and the creation of publication-quality graphics. Students choose and complete an independent research project on a topic related to their major. This course enables students to integrate computation into advanced courses in theoretical and/or experimental science. Programming language: Python.
Cross-listed as: PHY 252/MAT 252/CSI 252
Term(s) Offered: Spring, All Years
CSI 294  Special Topics  4 Credits  
Topics not regularly offered in a department's normal course offerings, chosen based on current student interest and faculty expertise. Special topic courses can only be offered 3 times; after this, the course must be approved as a regular course. Graded A-F or Pass/Fail.
Term(s) Offered: All Terms, All Years
CSI 295  On-Campus Research  4 Credits  
An agreement between a sponsoring faculty member and a student researching a topic of interest that is relevant to a student's major or minor. Research is conducted on campus. Students must be enrolled before the research can begin. Graded A-F or Pass/Fail. 45 hours are required per credit.
Term(s) Offered: Summer, All Years
CSI 297  Independent Study  4 Credits  
An agreement between a sponsoring faculty and a student letting the student study a topic of interest not offered at WC. 45 hours are required per credit.
Term(s) Offered: All Terms, All Years
CSI 310  Database Systems  4 Credits  
An introduction to the design and use of databases together with insights into the key issues related to the use of database systems. The course covers the entity relationship model; the hierarchical, network, and relational data models, and their languages; functional dependencies and normal forms; the use of SQL language, and the design and implementation of relational databases using MS ACCESS and MySQL.
Cross-listed as: CSI 310/CSI 360
Term(s) Offered: Other, Non Conforming
CSI 320  Theory of Computation  4 Credits  
Formal models of computation such as finite state automata, pushdown automata, and Turing machines will be studied along with corresponding formal languages and context-free languages. Uncomputability, including the halting problem, and computational complexity including the classes P and NP and NP-completeness will be studied.
Cross-listed as: CSI 320/CSI 350
Term(s) Offered: Other, Non Conforming
CSI 330  GUI and Mobile Programming  4 Credits  
Covers the fundamentals of existing mobile development frameworks, including data storage, the cloud, security, hashing, accessibility and the nature of user interaction. Other topics may include industry standards for GUI and mobile programming such as the model-view-controller framework, XML, and JSON.
Term(s) Offered: Other, Non Conforming
CSI 350  Graph Theory and Combinatorics  4 Credits  
This course introduces elementary combinatorial techniques used to enumerate large but finite discrete sets, including some of the following: permutations, the binomial theorem, partitions, bijections, and well-known sequences. It also presents the fundamentals of graph theory: trees, networks, paths and connectivity, matchings, colorings, and optimization algorithms. There is a significant proof-writing component plus computations and opportunities for coding.
Cross-listed as: CSI 350/MAT 350
Term(s) Offered: Other, Non Conforming
CSI 360  Machine Learning  4 Credits  
This is a class in finding patterns. Machine learning methods fit models to data to build representations of the underlying relationships. These models can then be applied to do tasks like classification, regression, and generation. As an undergraduate-level introductory course we focus on the core ideas and applications of the most important models, such as linear and logistic regression, nearest-neighbor methods, and support vector machines. We will give special emphasis to a variety of new deep learning techniques.
Term(s) Offered: Spring, Odd Years
CSI 380  Design & Analysis of Algorithms  4 Credits  
The topic of this course is the design of computer algorithms and techniques for analyzing their efficiency and complexity. Types of algorithms include greedy algorithms, divide and conquer algorithms, dynamic programming, searching and sorting.
Term(s) Offered: Other, Non Conforming
CSI 390  Computer Science Internship  4 Credits  
A learning contract is developed prior to enrollment in an internship. Evaluation of student performance is completed by the faculty mentor based on the fulfillment of the contract terms and written evaluation by the internship site supervisor. Students must work at least 45 hours for each internship credit and be enrolled in the course prior to beginning work. Graded A-F or Pass/Fail.
Term(s) Offered: All Terms, All Years
CSI 394  Special Topics  4 Credits  
Topics not regularly offered in a department's normal course offerings, chosen based on current student interest and faculty expertise. Special topic courses can only be offered 3 times; after this, the course must be approved as a regular course. Graded A-F or Pass/Fail.
Term(s) Offered: All Terms, All Years
CSI 395  On-Campus Guided Research  4 Credits  
An agreement between a sponsoring faculty member a
Term(s) Offered: Summer, Non Conforming
CSI 396  Off-Campus Research  4 Credits  
An agreement between a sponsoring faculty member and a student researching a topic of interest that is relevant to a student's major or minor. Research is conducted off-campus. Students must be enrolled before the research can begin. Graded A-F or Pass/Fail. 45 hours are required per credit.
Term(s) Offered: Summer, All Years
CSI 397  Independent Study  4 Credits  
An agreement between a sponsoring faculty and a student letting the student study a topic of interest not offered at WC. 45 hours are required per credit.
Term(s) Offered: All Terms, All Years
CSI 410  Computer Graphics  4 Credits  
Introduces the principles of computer graphics, including transformations, viewing and modeling. Other topics may include perspective calculations, memory coherence, z-buffering, texturing, lighting and other fundamentals required to work with emerging graphics systems. Students write programs using a graphics library like OpenGL or DirectX.
Term(s) Offered: Other, Non Conforming
CSI 420  Artificial Intelligence  4 Credits  
Explores the principles and techniques involved in programming computers to do tasks that usually are thought of as requiring intelligence when done by people. State-space and heuristic search techniques, logic and other knowledgeable representations, and statistical and neural network approaches are applied to problems such as game playing, planning and understanding of natural language, and computer vision.
Cross-listed as: CSI 420/CSI 460
Term(s) Offered: Other, Non Conforming
CSI 430  Operating Systems  4 Credits  
Introduction to operating systems including tasking, memory management, process scheduling, file systems, protection, and distributed systems.
Term(s) Offered: Other, Non Conforming
CSI 440  Computer Networks  4 Credits  
This course covers the principles, structure, and operation of computer networks. Emphasis is placed on understanding the protocols and mechanisms used in the Internet, and in local and wide-area networks. Students write application-level programs running on the LINUX or Windows operating systems.
Cross-listed as: CSI 440/CSI 470
Term(s) Offered: Other, Non Conforming
CSI 450  Data Ethics and Practicum  4 Credits  
This course, intended to be taken near the end of the Data Science major, focuses on gaining hands-on experience on real problems. Students select and work a series of data analysis projects in groups. Class time focusses on technical troubleshooting, ethical reflection, and presentations of work. The class seeks to expand students' imagination around their own role as ethical agents in the process of doing data science..
Term(s) Offered: Spring, Non Conforming
CSI 460  Software Engineering  4 Credits  
The topic of this course is the systematic process for creating software products as opposed to simply coding programs. The course covers project and product management, software architecture and design patterns, working in teams and effective communication. The course provides individualized and collaborative experience and a broad understanding of the practical skills necessary to be an effective software engineer in a professional environment.
Term(s) Offered: Spring, All Years
CSI 470  Computer Networks  4 Credits  
this course covers the principles, structure, and operation of computer networks. Emphasis will be placed on understanding the protocols and mechanisms used in the Internet, and in local and wide area networks. The student will write application-level programs running on the LINUX or Windows Operating systems.
Cross-listed as: CSI 440/CSI 470
Term(s) Offered: Spring, All Years
CSI 490  Computer Science Internship  4 Credits  
A learning contract is developed prior to enrollment in an internship. Evaluation of student performance is completed by the faculty mentor based on the fulfillment of the contract terms and written evaluation by the internship site supervisor. Students must work at least 45 hours for each internship credit and be enrolled in the course prior to beginning work. Graded A-F or Pass/Fail.
Term(s) Offered: All Terms, All Years
CSI 494  Special Topics  4 Credits  
Topics not regularly offered in a department's normal course offerings, chosen based on current student interest and faculty expertise. Special topic courses can only be offered 3 times; after this, the course must be approved as a regular course. Graded A-F or Pass/Fail.
Term(s) Offered: All Terms, All Years
CSI 495  On-Campus Guided Research  4 Credits  
An agreement between a sponsoring faculty member and a student researching a topic of interest that is relevant to a student's major or minor. Research is conducted on campus. Students must be enrolled before the research can begin. Graded A-F or Pass/Fail. 45 hours are required per credit.
Term(s) Offered: Summer, Even Years
CSI 496  Off-Campus Research  4 Credits  
An agreement between a sponsoring faculty member and a student researching a topic of interest that is relevant to a student's major or minor. Research is conducted off-campus. Students must be enrolled before the research can begin. Graded A-F or Pass/Fail. 45 hours are required per credit.
Term(s) Offered: Summer, All Years
CSI 497  Independent Study  4 Credits  
An agreement between a sponsoring faculty and a student letting the student study a topic of interest not offered at WC. 45 hours are required per credit.
Term(s) Offered: All Terms, All Years