Skip to Main Content

Academic Bulletin Computer Science - Course Descriptions - 2011-12

Currently viewing 2011-12 bulletin


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. This course is offered in the fall semester. Distribution in Natural Science and Mathematics or Quantitative Skills.


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 in the spring semester. Distribution in Natural Science and Mathematics or Quantitative skills. (Note: Computer Science 111 does not count as a laboratory science.)


Prerequisite: Computer Science 101 or permission of the instructor.


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. This course is offered in the fall semester.


Prerequisite: Computer Science 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. This course is offered in the spring semester.


Prerequisite: Computer Science 112.


Credits: 1

CSC 271 Special Topics in Computer

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. This course is offered irregularly.


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 crosslanguage programming. This course is offered irregularly.


Prerequisite: Computer Science 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. This course is offered irregularly.


Prerequisite: Computer Science 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. This course is offered irregularly.


Prerequisites: Computer Science 112 and Mathematics 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. This course is offered alternate years. Next anticipated offerings will be fall semesters of 2012 and 2014.


Prerequisite: Computer Science 111 (or permission of the instructor) and Mathematics 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. This course is offered alternate years. Next anticipated offerings will be fall semesters of 2011 and 2013.


Prerequisite: Computer Science 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. This course is offered irregularly.


Prerequisites: Computer Science 111 and Mathematics 108 or 219.


Credits: 1

CSC 387 Independent Study

Directed study on special topics for qualified students. May be repeated for credit.


Prerequisite: Permission of the instructor.


Credits: 1/2

CSC 388 Independent Study

Directed study on special topics for qualified students. May be repeated for credit.


Prerequisite: Permission of the instructor.


Credits: 1/2