## Spring 2014 Courses

- The College Catalogue has a class finder tool to search for courses by title, instructor, department, and more.
- Login to Blackboard. Instructional materials are available on a course-by-course basis.

- CSCI 1101A. Introduction to Computer Science.
- Stephen Majercik.
- What is computer science, what are its applications in other disciplines, and what is its impact in society? A step-by-step introduction to the art of problem solving using the computer and the Java language. Provides a broad introduction to computer science and programming through real-life applications. Weekly labs provide experiments with the concepts presented in class. Assumes no prior knowledge of computers or programming.
- CSCI 1101B. Introduction to Computer Science.
- Mohammad Irfan.
- What is computer science, what are its applications in other disciplines, and what is its impact in society? A step-by-step introduction to the art of problem solving using the computer and the Java language. Provides a broad introduction to computer science and programming through real-life applications. Weekly labs provide experiments with the concepts presented in class. Assumes no prior knowledge of computers or programming.
- CSCI 2101. Data Structures.
- Eric Chown.
- Solving complex algorithmic problems requires the use of appropriate data structures such as stacks, priority queues, search trees, dictionaries, hash tables, and graphs. It also requires the ability to measure the efficiency of operations such as sorting and searching in order to make effective choices among alternative solutions. Offers a study of data structures, their efficiency, and their use in solving computational problems. Laboratory exercises provide an opportunity to design and implement these structures. Students interested in taking Computer Science 2101 210 are required to pass the computer science placement examination before class starts.
- CSCI 2200. Algorithms.
- Laura Toma.
- An introductory course on the design and analysis of algorithms. Introduces a number of basic algorithms for a variety of problems such as searching, sorting, selection, and graph problems (e.g., spanning trees and shortest paths). Discusses analysis techniques, such as recurrences and amortization, as well as algorithm design paradigms such as divide-and-conquer, dynamic programming, and greedy algorithms.
- CSCI 2300. Computer Organization.
- William Silver.
- Nearly every computer that has been built in the last 60 years is a variation on one basic plan for organizing computation, known as the stored program machine. Students will gain an in-depth understanding of stored program machines through a series of programming assignments, primarily in assembly language on two popular computers, the 1960’s era PDP-8 and the contemporary ARM. We will study the architecture of processors and memory, how input/output devices are controlled to match the high speed of processors with the low speed of electro-mechanical devices, how numbers are represented and arithmetic is carried out, how one physical processor can pretend to be many virtual processors, and techniques for squeezing maximum performance from the physical devices that are used to construct the machines.
- CSCI 3250. Computational Geometry.
- Laura Toma.
- Computational geometry studies algorithms for collections of geometric objects such as points, lines, polygons, and planes. Geometric algorithms arise in areas such as computer graphics, robotics, or image processing. The class will cover the basic geometric problems and techniques: polygon triangulations, convex hulls, Delaunay triangulations and Voronoi diagrams, visibility, geometric searching and motion planning.
- CSCI 3350. Social and Economic Networks.
- Mohammad Irfan.
- Examines the social and economic aspects of today's connected world from a multitude of perspectives; namely, network science, sociology, economics, and computer science. The fundamental questions to be addressed are: What is a network? What does a real-world network look like? What are its effects on various social and behavioral phenomena, such as smoking, obesity, or even videos going viral? This course will then study the network structure of the Internet, how companies like Google search it, and how they make money doing so. Further economic implications of networks, including networked economies and markets, will also be addressed.
- CSCI 3425. Optimization and Uncertainty.
- Stephen Majercik.
- Optimization problems and the need to cope with uncertainty arise frequently in the real world. A numeric framework, rather than the symbolic one of traditional artificial intelligence, is useful for expressing such problems. In addition to providing a way of dealing with uncertainty, this approach sometimes permits performance guarantees for algorithms. Topics include constraint satisfaction, systematic and non-systematic search techniques, probabilistic inference and planning, and population-based optimization techniques (e.g., genetic algorithms and ant colony optimization).