300

CSC 310 Programing Languages

Examines the basic concepts of programming languages: programming language processors, elementary and structured data types, subprograms, sequence control, data control, storage management, syntax and translation, and programming environments. The student will also study three different programming languages and write a short project in each.

3

Prerequisites

CSC 145

CSC 320 Genetic Algorithms

Studies the use of simulated evolution in computer science and biology. Primary emphasis will be on the use of evolutionary and genetic algorithms as tools for solving combinatorial optimization problems (including problems arising in bioinformatics). Secondary emphasis will be placed on construction of computer models designed to illuminate aspects of evolutionary theory (e.g. the computer evolution of strategies for playing the prisoner's dilemma as a model for the evolution of altruistic traits). Counts as a bioinformatics elective.

3

CSC 330 Number Theory and Cryptography

Covers the fundamental algorithms used in both private key and public key cryptography. Algorithms covered will include DES, AES, Diffie-Hellman, and RSA. Traditional encryption methods such as Vigenere ciphers and their cryptanalysis will be briefly described. The number theory needed to understand primality testing and RSA encryption will be developed in detail. Several programming projects aimed at implementing some of the material will be given throughout the semester.

3

Prerequisites

CSC 141, CSC 144, CSC 171 or CSC 280; and MTH 220

Cross Listed Courses

MTH 330

CSC 335 Junior Seminar

Is designed to teach computer science and computer information science majors the skills necessary to learn computer science on their own and communicate their knowledge to others in oral and written form. All students will attend presentations made by senior computer science students. Students will be required to write a short, independently-researched paper and present it to the other students in the junior seminar.

1

CSC 341 Networking/Telecommunications

Introduces students to the fundamentals of network and data communication technologies. Course topics include telecommunication media and equipment; data transmission and protocols; corporate, local, and wide area networks; intranets and internets; and network software and management. An introduction to electromagnetic concepts and principles is included to provide a technical foundation for these concepts.

3

Prerequisites

CSC 141 or CSC 144 or junior standing

CSC 344 Algorithm and Complexity

Will introduce concepts of algorithm analysis, strategies, time and resource complexity and basic computability.

3

Prerequisites

CSC 145 and MTH 220

CSC 351 Current Topics in Computer Information Science

Is a seminar in information resource management covering such topics as office automation, networks, distributed data processing, data integrity, and decision support systems.

3

Prerequisites

Junior standing or permission of instructor

CSC 352 Software Patterns in Object-Oriented Programming

Serves three main purposes: to develop in the students an understanding of software patterns in an object-oriented framework; to teach the students the 24 most common software patterns; and to train students to use another object-oriented computer language.

3

Prerequisites

CSC 144