Course Descriptions
Other courses:
Mathematics
Computer Science Courses

CSCI 107: Introduction to Web Programming
A broad introduction to World Wide Web programming and related technologies. Topics include Internet history and its architecture, managing an account on a Web server, HTML markup, use of style sheets (CSS), page layout design, introduction to interactive programming with JavaScript, the document object model (DOM), and HTML forms. This is a general audience course suitable for those with no prior programming experience. 
CSCI 109: Intro to Programming for Robots
This course introduces the basic elements of computer programming by using the Mindstorms programming environment. Students work in teams, writing programs to make their robots perform assigned tasks. The standard building blocks of programming (sequencing, repetition, selection) are developed in the userfriendly, iconbased, draganddrop Mindstorms environment. During the second half of the course, students program robots in Python and Java. Each student must have a laptop computer for each class session. This is a beginning course, designed for students with no programming experience. (Not open to students who have completed FIYS 113 or CSCI 112. Does not satisfy requirements for the CSCI major or minor.) 
CSCI 112: Computer Science I
Introduction to computer science. Topics include the basic building blocks of problem solving (sequence, selection, repetition), objectoriented programming, basic data structures and algorithms. A prior knowledge of computer science is not required, although a good background in high school Mathematics is recommended. Students may receive credit for this course based on the AP computer science exam. 
CSCI 212: Computer Science II
Continuation of Computer Science I. Emphasis on advanced data structures, algorithms, and objectoriented design. Topics include linked data structures, recursion, algorithm analysis, interfaces, and inheritance. Prerequisite: Computer Science 112 with a grade of C or better. 
CSCI 213: Intro to Computer Architecture
Computer architecture, including digital logic, modern CPU design, memory layout, assembly language programming, addressing techniques, input/output design, and interfacing with highlevel languages. Prerequisite: Computer Science 112. 
CSCI 214: Principles of Digital Logic
Basic logic, digital electronics, microcomputer architecture, and interfacing, with handson laboratory activity. Prerequisite: Computer Science 213. 
CSCI 260: Symbolic Logic
An introduction to propositional and predicate logic. Topics include formal semantics, translation, natural deduction, quantification theory, and completeness. The relevance of logic to computer theory and artificial intelligence is stressed. 
CSCI 270: Web Development
This course builds upon Web programming fundamentals. Review of HTML fundamentals and introduction to HTML 5. Review of CSS fundamentals. Detailed coverage of CSS topics including cascade, selectors, box model, positioning, and pure CSS page layout. Introduction to grid design and wireframing. Review of JavaScript fundamentals. Introduction to using prewritten DHTML widgets and JavaScript frameworks such as JQuery. Introduction to serverside scripting with PHP. Prerequisites: Art 142 and CSCI 107. Students are encouraged to take CSCI 112 before this course. 
CSCI 277: Web Design and Development
In a project and laboratorybased format, this course focuses on the intersecting skills sets and theoretical knowledge of the graphic artist and Web programmer. Core concepts covered include Web site conceptualization, design conventions and usability considerations, constructing graphical mockups, progressing to XHTML/CSS integration and template construction. Additional topics include Web standards and validation, open source content management systems, dynamically server generated pages, and data collection with XHTML forms. Students will gain proficiency with software such as Adobe's Illustrator and Dreamweaver. A computer laboratory fee will be assessed for this course. Prerequisites: CSCI 107 and Art 142.Crosslisted as: ART 277 
CSCI 312: ClientServer Web Applications
An indepth study of building Web applications using the clientserver model. Topics include an overview of HTML and HTML forms for collecting user data, clientserver interaction, CGI programming, storage and manipulation of server data using databases, and returning dynamic content to the client. Preprocessed HTML documents with PHP or Java Server Pages and Web session control with cookies and other useful objects. Additional topics may include the distributed object framework, XML for data extensibility, and an overview of Microsoft's Active Server Pages (ASP) and .NET platform for distributed Web applications. Prerequisite: Computer Science 212.  jump to top

CSCI 317: Data Structures and Algorithms
The study of advanced data structures and algorithm analysis. Topics include trees, hash tables, heaps, sorting algorithms, and graph algorithms. The emphasis will be on applying data structures to design and implement efficient algorithms. Additional topics may include dynamic programming and computational complexity. Prerequisite: Computer Science 212.

CSCI 318: Programming Languages
A study of different problem solving paradigms, and representative programming languages. Topics include imperative vs. functional vs. eventdriven vs. declarative paradigms, markup vs. computation, typing, memory organization, scope, and lifetime management. Lab exercises focus on working in the various paradigms, and the tradeoffs involved. Prerequisite: Computer Science 212. 
CSCI 323: Cryptography
An introduction to cryptology and cryptanalysis, the making of codes and the breaking of codes. History and basic concepts. Classical ciphers and attacks on classical ciphers. Onetime Pad. Modern ciphers including DES, AES. Public key ciphers including RSA and DiffieHellman. Digital signatures. Additional topics may include Elliptic Curve systems, knapsack systems, and other cryptographic systems. Prerequisites: Mathematics 230 and Computer Science 212, or permission of the instructor.Crosslisted as: MATH 323 
CSCI 334: Theory of Computation
This course covers fundamental ideas in the theory of computation, including formal languages, computability, complexity, and reducibility among computational problems. Topics include formal languages, finite state automata, Kleene's theorem, formal grammars, pushdown automata, contextfree languages, Turing machines, computability, Church's Thesis, decidability, unsolvability, and NP completeness. Prerequisites: CSCI 212 and Mathematics 230.Crosslisted as: MATH 334 
CSCI 336: Operating Systems
An introduction to modern operating systems and their most important features. Topics include multiprocessing, virtual memory, multithreading, concurrency, I/O, networking, security, and distributed computing. Students construct a major component of an operating system in C or C++. Prerequisites: Computer Science 212 and 213. 
CSCI 360: Math Modeling
Introduction to the process and techniques of modeling actual situations using mathematical methods and computer simulation. Topics may include optimization, dynamical systems, axiom systems, queuing theory, and introduction of a simulation language. Team projects and reports. Prerequisites: Mathematics 111, Computer Science 212, and some additional sophistication in at least one of the following: mathematics, computer science, or applying mathematics in a field of interest. 
CSCI 365: Algebraic Coding Theory

CSCI 375: Combinatorics & Graph Theory
Enumeration techniques with emphasis on permutations and combinations, generating functions, recurrence relations, inclusion and exclusion, and the pigeonhole principle. Graph theory with emphasis on trees, circuits, cut sets, planar graphs, chromatic numbers, and transportation networks. Additional topics from designs with emphasis on Latin squares, finite projective and affine geometries, block designs, and design of experiments. Prerequisite: Mathematics 230.Crosslisted as: MATH 375 
CSCI 417: Algorithms and Algorithm Analysis
The study of algorithms and their mathematical analysis. Divideandconquer, greedy, bruteforce, dynamic programming, backtracking, advanced tree and graph algorithms, bigO notation, case and amortized analysis. Prerequisites: Mathematics 230 and Computer Science 317. 
CSCI 425: Artificial Intelligence
An introduction to AI via topics including tree and graph searches, minmax methods, alphabeta pruning, heuristics, backtracking, natural language processing, and computer vision. Prerequisite: Computer Science 212.Crosslisted as: NEUR 425  jump to top

CSCI 427: Introduction to Database Systems
An indepth study of proper methods of design for database systems, with an emphasis on the relational model. Topics include relational design, query languages, and transactional processing. Lab exercises focus on GUIdriven, SQLbased access as well as modern, multitier styles of design. Prerequisite: Computer Science 212. 
CSCI 461: Compiler Design
An introduction to the design and construction of compilers for modern programming languages. Topics include grammars, formal language definition, abstract syntax trees, symbol tables, syntax and semantic checking, code generation, and optimization. Students construct a modern compiler for an objectoriented programming language. Prerequisites: Mathematics 230 and Computer Science 212 and 213. 
CSCI 488: Senior Seminar in Computer Science
A seminarlike discussion of software engineering, objectoriented design, and largescale software development. Students will practice modern software engineering as well as read and present papers concerning the subject. Prerequisites: Computer Science 317, 318 and permission of the instructor. (Meets GEC Senior Studies Requirement.) 
CSCI 489: Advanced Topics in Computer Science
Special topics and projects in computer science, including but not limited to distributed systems, secure computing, Web development, userinterface design, and software engineering. Prerequisites: Computer Science 317, 318, and permission of instructor. (Meets GEC Senior Studies Requirement.)
Mathematics Courses

MATH 103: Nature of Mathematics
Intended for students with primary interests in the humanities and social sciences. The course uses set theory, logic, and language as a foundation for studying a variety of topics central to the development of modern mathematics. Emphasizing the central role of language in mathematics, the course shows that mathematics is about communication of ideas. Topics will be explored through experimentation with computers where appropriate using games, puzzles, and group projects as well as lectures and discussions. Additional topics include codes and basic geometry. The course will focus on the interplay of different ideas. 
MATH 104: Elem Math from Advanced Standpoint
MATH 104: Elementary Math from an Advanced Standpoint
This course presents a critical examination of several topics from elementary mathematics. The course stresses three themes: mathematics in the liberal arts, mathematics from a historical perspective, and mathematics as a problemsolving activity. Topics to be covered include college algebra, numeration systems, nonbase10 representations, and elementary number theory including primes and factorizations, rationals as terminating and repeating decimals, irrationals, simple probability experiments, elementary set theory, and mathematical reasoning. Crosslisted as: EDUC 104Crosslisted as: EDUC 104 
MATH 105: Elementary Functions
Properties of functions with emphasis on polynomial, exponential, logarithmic, and trigonometric functions. Analytic geometry. (Does not meet GEC Natural and Mathematical Sciences Requirement. Not open to students who have completed Math 110 with a grade of C or better.) 
MATH 110: Calculus I
The calculus of functions of one variable. Limits, continuity, differentiation, and applications; a brief introduction to integration. Prerequisite: 3.5 years of high school mathematics (to include trigonometry) or Mathematics 105. 
MATH 111: Calculus II
The calculus of functions of one variable. Integration, applications of integration, sequences, and series. Prerequisite: Mathematics 110. 
MATH 115: Honors Calculus I
Theory and applications of the calculus of functions of one variable. Limits, continuous functions, differentiable functions, the definite integral, and applications. Prerequisite: permission of the instructor. 
MATH 116: Honors Calculus II
Continuation of Mathematics 115. Integration and applications, sequences, infinite series. Prerequisite: permission of the instructor. 
MATH 150: Intro Probability & Statistics
Designed for students in the social and life sciences. Discrete probability theory, distributions, sampling, correlation, and regression, Chi square and other tests of significance. Emphasis on the use of the computer as a tool and on applications to a variety of disciplines. Not open to students who have taken ECON/BUSN 180 or ECON/BUSN/FIN 130. 
MATH 160: Math Methods with Applications
(Mathematical Methods with Applications) Topics from applied mathematics, including equations, inequalities, functions and graphs, and basic properties of logarithmic and exponential functions. Introduction to limits, derivatives and antiderivatives. Applications to business, the social sciences, and the life sciences. (Not open to students who have completed Math 110 with a grade of C or better.) 
MATH 161: Mathematical Modeling
Mathematical topics as needed to build and solve mathematical models of situations in the life, environmental, and economic sciences. Topics covered include discrete dynamical systems, difference equations, linear, quadratic, and exponential growth models, the logistic model, and examples of chaos in dynamical systems.  jump to top

MATH 210: Multivariable Calculus
Partial differentiation, the algebra and calculus of vectors, curves and their parameterization, multiple integration, Stokes's and Green's theorem, and applications. Prerequisite: Mathematics 111. 
MATH 211: Math of Chaos
A study of nonlinear dynamical systems, including iteration of functions, attracting and repelling periodic orbits, bifurcation, the period doubling route to chaos, complex dynamics, fractals, and Mandelbrot and Julia sets. Realworld implications and applications of chaos. Can meet the requirements for a 300levelorabove mathematics course on completion of an additional project approved by the instructor. Prerequisite: Mathematics 111. 
MATH 214: Differential Equations
Differential equation models, analytic solution techniques, qualitative solution concepts, and computer visualization for single equations and systems. Applications of differential equations. Prerequisite: Mathematics 210 or permission of the instructor. 
MATH 230: Abstract & Discrete Mathematics
Topics covered include logic and proofs, set theory, relations, cardinal numbers, countable and uncountable sets, permutations and combinations, graph theory, and group theory. Prerequisite: Mathematics 110. 
MATH 231: Linear Algebra
Vector spaces, linear independence, linear transformations, matrices, determinants, and applications to geometry. Prerequisite: Mathematics 230 or permission of the instructor. 
MATH 310: Complex Analysis
Study of functions of one complex variable. Analytic functions, complex integration, Cauchy's theorem, complex power series, and special functions. Applications to other areas of mathematics and to mathematical physics. Prerequisites: Mathematics 210 and 230 or permission of the instructor. 
MATH 311: Introduction Real Analysis
A rigorous course covering the following introductory real analysis topics: axioms for the real numbers, sequences, boundedness, limits, monotone functions, continuity, uniform continuity, Cauchy criterion for convergence, cluster points, compactness, differentiability, integration, and infinite series. Prerequisites: Mathematics 210 and 230. 
MATH 320: Mathematical Methods

MATH 323: Cryptography
An introduction to cryptology and cryptanalysis, the making of codes and the breaking of codes. History and basic concepts. Classical ciphers and attacks on classical ciphers. Onetime Pad. Modern ciphers including DES, AES. Public key ciphers including RSA and DiffieHellman. Digital signatures. Additional topics may include Elliptic Curve systems, knapsack systems, and other cryptographic systems. Prerequisites: Mathematics 230 and Computer Science 212, or permission of the instructor.Crosslisted as: CSCI 323 
MATH 329: Number Theory
Mathematical induction, divisibility properties of integers, prime numbers, and congruences. Prerequisite: Mathematics 230 or permission of the instructor.  jump to top

MATH 330: Modern Algebra I
A study of algebraic structures with emphasis on groups, rings, and fields. Prerequisite: Mathematics 230. 
MATH 331: Modern Algebra II
Additional topics in modern or linear algebra such as field extensions, Galois Theory, group conjugacy, modules, eigenvalue theory, dual spaces, and unitary spaces. Prerequisite: Mathematics 330 or permission of the instructor. 
MATH 334: Theory of Computation
This course covers fundamental ideas in the theory of computation, including formal languages, computability, complexity, and reducibility among computational problems. Topics include formal languages, finite state automata, Kleene's theorem, formal grammars, pushdown automata, contextfree languages, Turing machines, computability, Church's Thesis, decidability, unsolvability, and NP completeness. Prerequisites: CSCI 212 and Mathematics 230.Crosslisted as: CSCI 334 
MATH 340: Geometry
Selected topics from affine, Euclidean, nonEuclidean, projective, and differential geometry. Prerequisite: Mathematics 230 or permission of the instructor. 
MATH 350: Mathematical Probability
Discrete and continuous probability. Distributions, the law of large numbers, the central limit theorem, random variables, and generating functions. Prerequisites: Mathematics 210 and 230 or permission of the instructor. 
MATH 351: Mathematical Statistics
A mathematical study of such topics as estimation of parameters, confidence intervals and tests of hypotheses, decision theory, regression, analysis of variance, and nonparametric methods. Prerequisite: Mathematics 350. 
MATH 360: Mathematical Modeling

MATH 365: Algebraic Coding
A study of the algebraic structure of codes designed to transmit messages through a noisy channel in an efficient and relatively errorfree fashion. Topics include finitedimensional vector spaces over a finite field and the connection between coding theory and areas such as geometry, combinatorics, and number theory. Prerequisite: Mathematics 231 or permission of the instructor. 
MATH 375: Combinatorics & Graph Theory
Enumeration techniques with emphasis on permutations and combinations, generating functions, recurrence relations, inclusion and exclusion, and the pigeonhole principle. Graph theory with emphasis on trees, circuits, cut sets, planar graphs, chromatic numbers, and transportation networks. Additional topics from designs with emphasis on Latin squares, finite projective and affine geometries, block designs, and design of experiments. Prerequisite: Mathematics 230.Crosslisted as: CSCI 375 
MATH 410: Topology
Point set topology. Such topics as topological spaces, separation axioms, covering properties, metrization, convergence and completeness, and homotopy theory. Prerequisite: Mathematics 230.  jump to top

MATH 411: Topics in Modern Analysis
Introductory notions of functional analysis. Banach spaces, integration and measure, Hilbert spaces, and commutative Banach algebras. Prerequisite: Mathematics 311. 
MATH 499: Great Theorems of Mathematics
Seminar course to introduce students to various masterpieces in the development of mathematics. Some of the most historically important proofs and ingenious logical arguments from mathematics will be presented and discussed. An emphasis will be placed on the interconnectedness among various subject areas within mathematics. Prerequisite: permission of the instructor. (Meets GEC Senior Studies Requirement.)