Computer Science (CSC)
Professor McNally; Associate Professor Sipka.
Computer Science is the study of computation and its embodiment in artifacts. This includes the study of computer hardware systems, methods for specifying the algorithms these systems run (computer programs) and analysis of the properties of algorithms, computing systems, and their interrelationship.
The Computer Science Program provides a wide range of experiences including programming languages and hardware systems. The Department maintains both Unix workstation and Macintosh computer laboratories for student use, and students have access to additional computing systems. Graduates are well prepared for a wide range of positions in the computing sciences, including Web site development, database administration, computer programming, information systems consulting and computer system administration.
Computer Science Major
Thirty-six credits which must include:
- Computer Science 120, 204, 220, 230, 240 and 310 .
- Fourteen additional credits from a. to c. below:
- Eight credits must be chosen from CSC 410, 420, 430 or 440.
- Electives may be chosen from any CSC course numbered 114 or above; MTH 336; ECE 244, 245, 254 and 255; and COG 120.
- No more than six credits from CSC 114, 117, and COG 120 may be applied to satisfy major requirements.
- Three required cognate courses: MTH 120, 220 and any additional MTH course numbered 113 or higher (MTH 336 cannot be counted for this requirement and as a CSC elective).
- The senior comprehensive examination includes three parts: successful completion of the Major Field Test in Computer Science, submission of an approved writing sample and an approved oral presentation.
Program Considerations
Graduate school bound students are strongly encouraged to take CSC 420, 430, 440, and to minor in mathematics. Many graduate schools expect undergraduate research as part of entering students' background; thus, a Senior Thesis is also encouraged. Consult carefully with your advisor.
Students seeking a technical professional position upon graduation are strongly encouraged to take CSC 410, 420, 430, 440 and MTH 116 and 117; a practicum is recommended.
Computer Science Secondary Teaching Major
Thirty six credits, which must include:
- CSC 120, 204, 220, 230, 240, 280A, 310 and 410.
- Eight additional credits from a. to c. below:
- four credits must be chosen from CSC 420, 430 and 440
- Elective(s) may be chosen from any CSC course numbered 114 or above; COG 120; ECE 244, 245, 254 and 255; and MTH 336
- No more than four credits from CSC 114, 117 and COG 120 may be applied to satisfy the major requirement.
- Three required cognate courses: MTH 120, 220 and any additional MTH course numbered 113 or higher. MTH 336 cannot be counted for this requirement and as a CSC elective.
- The senior comprehensive examination includes three parts: successful completion of the Major Field Test in Computer Science, submission of an approved writing sample and an approved oral presentation.
- Each candidate for a teaching certificate in CSC will participate in at least two terms of internship/practica, which entails maintaining and operating computer and network systems in the CSC laboratories and tutoring students taking lower-level CSC courses. No credit is given for internships, but students are paid the same as those doing paid jobs.
- Twenty-nine credits from EDC must be taken including CSC 445cs. Consult with your advisor about these courses and other special education requirements.
Computer Science Minor
Twenty-four CSC credits which must include CSC 120, 220 and at least eight upper-level credits. The cognate course, MTH 120, is required.
| CSC 100. |
Introduction to Computer Systems |
|
2 credits |
|
|
|
| Introduction to the use of modern computer systems. Basics of word-processing, graphics, spreadsheets, Internet access and Web development software. Use of computer peripherals such as printers, scanners and digital cameras. Taught in a laboratory setting. |
| CSC 105. |
Modern Spreadsheets |
|
2 credits |
|
|
MTH 101 or equivalent |
| Introduction to the use of modern spreadsheets, with a particular emphasis on business applications. Taught in a laboratory setting. |
| CSC 114. |
The Web: Technologies and Techniques |
|
4 credits |
|
|
MTH 110 or above or Placement at 112 level |
| Survey the technologies underlying the World Wide Web. Web page construction and Javascript programming. Additional topics such as digital encoding, network organization and encryption systems. Laboratory. |
| CSC 117. |
Artificial Intelligence: Image and Reality |
|
4 credits |
|
|
MTH 110 or above or Placement at 112 level |
| Explores the current reality of artificial intelligence and visions of what it is and will be. Examination of current artificial intelligence systems. Particular emphasis on robotics, with projects involving robot design, creation and programming. Laboratory. |
| CSC 120. |
Object-Oriented Programming and Design (NS-3) |
|
4 credits |
|
|
MTH 110 or above or Placement at MTH 112 level |
| Fundamentals of object-oriented programming in the language of instruction (e.g., Java). Topics include: basic computation, input and output, control structures, classes and object instantiation, methods and parameter passing, arrays and strings, sorting and searching. Laboratory. |
| CSC 204. |
Social and Ethical Issues in Computer Science |
|
2 credits |
|
|
Any CSC course or Permission |
| Studies social and moral problems arising from the use of computing technologies, with a particular focus on the Internet. Topics such as free speech, privacy, communications interception, encryption, intellectual property, liability for software and hardware malfunction, and for information content. |
| CSC 220. |
Data Structures and Advanced Programming Techniques (NS-3) |
|
4 credits |
|
|
CSC 120 and MTH 120 |
| Focuses on object-oriented design, encapsulation and inheritance. Programming topics such as recursion and event-driven programming. Basic data structures such as a stacks, queues and linked lists. |
| CSC *230. |
Software Engineering |
|
4 credits |
|
|
CSC 220 |
| Software development: requirements, specification, modern design techniques, program testing methods, software metrics as used in quality evaluation, and project management. |
| CSC *240. |
Algorithms and Complexity |
|
4 credits |
|
|
CSC 220 and MTH 220 |
| Advanced data structures and algorithms, algorithmic analysis, and an introduction to distributed and parallel algorithms. |
| CSC *280. |
Topics in Computer Science |
|
2-4 credits |
|
|
Permission |
| Topical study in computer science. While topics vary, the course usually introduces a particular computer programming language (e.g., C, C++, Prolog, etc.). |
| CSC *310. |
Computer Organization |
|
4 credits |
|
|
CSC 220 |
| Advanced introduction to assembly languages and structure and organization of digital computers, including addressing schemes, digital representation of data and computer arithmetic. |
| CSC *335. |
Computer Graphics |
|
4 credits |
|
|
CSC 220 and MTH 220 |
| Introduction to techniques of computer graphics including three-dimensional representations, perspective, computer animation, computer art and applications of computer graphics to various other disciplines. |
| CSC *345. |
Artificial Intelligence |
|
4 credits |
|
|
CSC 220 |
| Survey of major topics in artificial intelligence. Emphasis on fundamental concepts: search, knowledge representation, problem solving and logic. Additional topics such as expert systems, learning, natural language processing, neural networks, planning, theorem proving and vision. Programming in an AI language. |
| CSC *380. |
Topics in Computer Science |
|
2-4 credits |
|
|
Permission |
| Topics of current interest and importance. |
| CSC *410. |
Database Management |
 |
4 credits |
|
|
CSC 230 |
| In-depth study of techniques for storing, selecting and retrieving data. Topics selected from file and database organization, safety and recovery, privacy, security and commercial systems. |
| CSC *420. |
Operating Systems |
|
4 credits |
|
|
CSC 310 |
| Survey of major concepts of operating systems. Investigation of relationships among the operating system, the architecture and the systems programs of a computer system. |
| CSC *430. |
Theory of Computing |
|
4 credits |
|
|
CSC 240 |
| In-depth study of the main components of the theory of computation: finite automata and computability. |
| CSC *440. |
Compiler Design |
|
4 credits |
|
|
CSC 310 |
| In-depth study of the principles of computer language processor design. Includes lexical analysis, syntactic analysis, semantic analysis, object code generation and error detection. |
| CSC *499. |
Independent Study |
|
1-4 credits |
|
|
Permission |
|
| CSC *500. |
Senior Thesis |
|
1-4 credits |
|
|
Permission |
|