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.
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.
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.
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.
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.
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.
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.
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.
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.
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