CSC 101 Introduction to Computer Science
An introduction to the field of computer science as the study of algorithmic process. Students will study the history of the field as well as issues currently confronting the computer science community including ethical issues raised by a rapidly changing technology. Students will learn fundamental concepts of computer science such as computer architecture, data representation, and the issues of computability. Students will engage in hands-on algorithm-building activities and some basic programming exercises. Offered fall semesters. Distribution in Natural Science and Mathematics or Quantitative Skills.
Prerequisite: None.
Credits: 1
|
CSC 111 Introduction to Programming
An introduction to programming in a higher-level, general-purpose language (currently Java). Programming topics include primitive data types, simple data types such as arrays, program constructs such as conditionals, loops and procedures, in an object-oriented context. Applications are chosen from areas such as graphics, simulation, and file processing. Offered spring semesters. Distribution in Natural Science and Mathematics or Quantitative skills. (Note: CSC 111 does not count as a laboratory science.)
Prerequisite: CSC 101.
Credits: 1
|
CSC 112 Advanced Programming
A variety of topics that are important in developing large-scale software. Object oriented programming in a language such as C++. Dynamic data structures such as lists, queues, and stacks. An introduction to a rigorous analysis of the efficiency of an algorithm. Advanced algorithms such as Quicksort, mergesort, and the use of hash tables. An introduction to using the Unix operating system and Unix tools for software development such as Make. Offered fall semesters.
Prerequisite: CSC 111 or equivalent programming background.
Credits: 1
|
CSC 211 Introduction to Data Structure
An introduction to more advanced abstract data types such as lists, sets, trees, including balanced trees, and graphs. Algorithms for traversing, searching, determining connectivity, and so forth. An in-depth study of, and analysis of, the algorithms used to implement these structures. Offered spring semesters.
Prerequisite: CSC 112.
Credits: 1
|
CSC 271 Special Topics in Computer Science
This course is designed for the treatment of material outside the regular offerings of the department. For a given semester the course content and other particulars will be announced before registration for that semester. Offered irregularly.
Prerequisite: Specific to topic, if any.
Credits: 1/2
|
CSC 311 Introduction to Machine Organization
A study of the various layers at which a machine can be studied, including higher-level languages, assembly language, machine language, and digital circuits. Data representation. A comparison of RISC and CISC architectures. Some programming in a representative assembly language. Issues of cross-language programming. Offered irregularly.
Prerequisite: CSC 112.
Credits: 1
|
CSC 321 Programming Languages
A study of the paradigms of programming languages, including procedural languages such as Pascal or ‘C’, object-oriented languages such as C++ or Smalltalk, functional languages such as ML or Scheme, logic-oriented languages such as Prolog, and concurrency such as in Ada. Consideration of how concepts are implemented, such as modules, parameter passing, function evaluation, data types and type checking, memory management, exception handling, and threads. Offered irregularly.
Prerequisite: CSC 112.
Credits: 1
|
CSC 331 Analysis of Algorithms
Advanced topics and problems in analyzing algorithms. Algorithms involving structures such as sequences, sets, and graphs, and topics such as geometric and numeric algorithms. An introduction to the question of P=NP and NPComplete problems. Parallel algorithms. Offered irregularly.
Prerequisites: CSC 112 and MAT 108 or 219.
Credits: 1
|
CSC 337 Introduction to Numerical Analysis
(MAT 337)
Advanced—This course will address topics such as numerical solution of non-linear equations in one variable, interpolation, approximation, differentiation, integration, difference equations, differential equations and their applications, boundary value problems, linear systems, matrices, and optimization. Offered fall semesters of even-numbered years.
Prerequisite: CSC 111 and MAT 223.
Credits: 1
|
CSC 338 Topics in Computational Mathematics
(MAT 338)
Advanced. A course to develop mathematical and computational techniques in areas of mathematics or interdisciplinary study in which computation plays a central and essential role. Topics vary by semester but may include computational geometry, computer algebra, scientific computing, and symbolic computation. Offered fall semesters of odd-numbered years.
Prerequisite: CSC 111. Some topics may have additional prerequisites.
Credits: 1
|
CSC 341 Introduction to Automata, Computabiligy, and Formal Languages
An introduction to theoretical computer science. Finite state machines and regular expressions. Context—free languages and push-down automata. Turing machines, effective computability, and the Halting Problem. Offered irregularly.
Prerequisites: CSC 111 and MAT 108 or 219.
Credits: 1
|
CSC 387 Independent Study
Directed study on special topics for qualified students. May be repeated for credit.
Prerequisites: Permission of the instructor and department chair.
Credits: 1/2
|
CSC 388 Independent Study
Directed study on special topics for qualified students. May be repeated for credit.
Prerequisites: Permission of the instructor and department chair.
Credits: 1/2
|