CSC Courses

CSC119 - Introduction to UNIX/Linux (1 cr.)

Study of the features of the UNIX/Linux operating systems from the standpoint of a user. Includes practice of using computers over the network through ssh, sftp and X-server. (Fall/Spring).

CSC121 - Introduction to Computing and the Web (3 cr.)

Introduction to computer science through Web-based projects. Describes the basic operations of computers covering hardware and software. Covers the use of communication technology through the Internet. Focuses on problem solving and algorithms. Teaches how programming languages are used to implement solutions to practical problems. Covers social issues associated with computing and computer science. (Fall/Winter/Spring/Summer). Liberal arts.

CSC122 - Physical Computing (3 cr.)

Micro-controller boards and basic electronic components are used to explore programming and development of algorithms. Students will build circuits and program the microcontroller to control electronic devices. Topics include: data representations, Boolean logic and digital circuits, microprocessor organization and operation, basic electronics, and programming in a high level language. For students in any major. No prior experience in computing, science, or technology is required. Liberal arts. (Fall).

CSC123 - Scientific Simulation and Modeling (3 cr.)

Introduction to the use of simulations for scientific study. Students will design experiments and employ the scientific method in the context of simulations in a specific natural science. Students will gain knowledge about computer hardware and software. A programming language will be used as a means to formally describe and solve domain specific problems. Each course offering will focus on a specific discipline for which simulation and modeling is valuable. (Fall/Spring). Liberal arts.

CSC152 - Computer Security and Society (3 cr.)

Survey of the field of computer security at a non-technical level. The course will discuss the importance and role of security as computing becomes more tightly integrated with society. The course will examine the ethical issues related to computer security including privacy, identity theft, and liability. (Fall). Liberal arts.

CSC199 - Independent Study (1 to 15 cr.)

Project individually arranged by student and faculty sponsor. Requires completion of the Independent Study form and approval by the Faculty Sponsor, Academic Advisor, Department Chair and Academic Dean. (Fall, Winter, Spring, Summer).

CSC217 - Discrete Mathematics with Computer Applications (3 cr.)

Basic propositional and predicate logic. Concepts of sets, relations and functions. Directed and undirected graphs and trees; traversals. Solving recurrences. Basic Modular arithmetic. Counting and discrete probability (Bayes theorem, Bernoulli and binomial distributions, expectation). Hypothesis testing. Sampling and descriptive statistics (variance and standard deviation). Liberal arts. (Fall/Spring). Prerequisite: grade of C or better in MAT102 or passing the Calculus Readiness Test.

CSC221 - Introduction to Programming (3 cr.)

Problem solving through constructing ad-hoc algorithms and translating them into well designed and correct programs in an object-oriented programming language (currently Python). Introduces basic programming constructs including exception handling, classes, listarrays, maps/dictionaries, text file I/O, and beginning GUI programming with event handling. Includes selection and search algorithms. Attention is given to modular program design with functions, classes and modules, data representation in the computer memory, mutability/immutability, tracing program execution and debugging, input data validation, and programming style. 3 hour lecture plus laboratory. Liberal arts. (Fall/Spring). Corequisites: familiarity with UNIX/Linux or CSC119. Prerequisite: grade of C or better in MAT102 or equivalent; also familiarity with programming or CSC121 or CSC122 or CSC123.

CSC223 - Data Structures and Algorithms (3 cr.)

Organization of data into listarrays, stacks, queues, priority queues, binary trees, binary search trees. Alternative data structures that implement the same abstract data type. Asymptotic analysis of related algorithms, including amortized analysis. Recursion and memoization. Iterative and recursive search, merge and various sort algorithms for lists. Breadth-first search for trees, iterative and recursive depth first search. Object oriented programming projects with unit testing, reusable software. Liberal arts. (Spring). Prerequisites: CSC217; CSC221 with a grade of C or better.

CSC285 - Topics in Computing (1 to 4 cr.)

A course on topics in computing of current interest (in a seminar format, lecture format, lab format or a combination). Offers a wide perspective; accessible to majors and non-majors. May be repeated for credit with a different topic. (Occasional). Prerequisites: vary with topic.

CSC299 - Independent Study (1 to 15 cr.)

Project individually arranged by student and faculty sponsor. Requires completion of the Independent Study form and approval by the Faculty Sponsor, Academic Advisor, Department Chair and Academic Dean. (Fall, Winter, Spring, Summer).

CSC309 - Programming Language: C (1 cr.)

Course presents the basics of the C programming language, including compiling and major syntactic features of the language. Topics include arrays, string, pointers and pointer arithmetic, basic system calls, bitwise operations, dynamic allocations of memory, text and binary file I/O, call by value and simulated call by reference, compiling and linking of programs. (Fall). Prerequisite: CSC221.

CSC310 - Perl (1 cr.)

Introduction to Perl programming language. Students will design, run, and debug programs. (Fall). Prerequisite: CSC221.

CSC311 - Computer Language (1 to 4 cr.)

Introduction to a single high-level programming language or data representation language. Programs in the particular programming language will be designed and run, or tools for processing data represented in the language will be used. May be retaken for credit with a different language. Liberal arts. Prerequisite: CSC221.

CSC312 - Computer Language (1 to 4 cr.)

Introduction to a single high-level programming language or data representation language. Programs in the particular programming language will be designed and run, or tools for processing data represented in the language will be used. May be retaken for credit with a different language. Liberal arts. Prerequisite: CSC221.

CSC313 - Computer Language (1 to 4 cr.)

Introduction to a single high-level programming language or data representation language. Programs in the particular programming language will be designed and run, or tools for processing data represented in the language will be used. May be retaken for credit with a different language. (Fall). Prerequisite: CSC221.

CSC318 - Discrete Mathematics with Computer Applications II (3 cr.)

Using propositional and predicate logic. Proofs, including induction. Recursive definitions. Proving algorithm termination and correctness. Sets. Functions. Relations, including: equivalence relations, partial and linear orders, and closures of relations. Groups, rings, fields, subalgebras and isomorphisms. Liberal arts. (Spring). Prerequisite: CSC217.

CSC319 - Object-Oriented Design and Programming (3 cr.)

Object-oriented paradigm, design principles and practice using UML. In-depth study of a modern object-oriented language (currently C++) including dynamic memory allocation, exception handling, event handling, inheritance and templates. Implementation, debugging and profiling using an IDE and a version control system. Prior familiarity with basic data structures or CSC223 recommended. (Spring). Prerequisite: CSC221.

CSC320 - System Administration (1 cr.)

Overview of the concepts and techniques of computer system administration. Topics will include system security, user management, system services, configuration management, and scripting. May be repeated for credit with a different operating system. (Fall). Corequisite: CSC119. Prerequisite: CSC221.

CSC321 - Design and Analysis of Algorithms (3 cr.)

Course presents general techniques for the design of algorithms. These include divide-and-conquer, dynamic programming, greedy algorithms, and randomized algorithms. Specific algorithms are studied which are drawn from a variety of applications - bioinformatics, scheduling, encryption, graphics, search space. Advanced data structures - graphs, balanced trees - will be studied with applicable algorithms. (Fall). Liberal arts. Prerequisites: CSC223 (grade of C or better).

CSC323 - System Administration Tools (1 cr.)

In depth presentation of select system administration tools. Students will learn how to use the tools presented as well as the theoretical and design issues in the area. May be repeated for a total of three credits as topic varies. (Spring). Prerequisite: CSC320.

CSC330 - Human Computer Interaction (3 cr.)

Aspects of human-computer interaction will be studied including models of perception, cognition, attention, representation, memory, identity, interaction styles and feedback. The role of information visualization in interfaces will be explored. Students will also learn how to perform empirical studies to evaluate computer interfaces. Liberal arts. (Spring). Prerequisite: CSC121 or CSC122 or CSC221.

CSC333 - Computer Organization (3 cr.)

A study of the organization and the structure of hardware components of computers and concepts and techniques of programming in machine assembly language. Emphasis is placed upon the relationships of machine language to computer architecture and higher level languages. Topics include CPU structure, memory hierarchy, and I/O operations. The relationship between user applications, operating systems and computer hardware is discussed. Liberal arts. (Spring). Prerequisite or corequisite: CSC309.

CSC336 - Software Engineering I (3 cr.)

This course will provide an introduction to current practices in software engineering. The role of software metrics to manage software projects, evaluate software processes, and track software quality will also be examined. (Fall, Spring). Prerequisite: CSC221.

CSC341 - Introduction to Databases with Web Applications (3 cr.)

Designing a database using entity-relationship diagram, implementation of a database and querying in SQL, writing external programs to access the database, languages for creating web pages and writing server side programs to provide dynamic web content from a database. Requires a programming project involving all the topics above. (Spring). Prerequisite: CSC310.

CSC345 - Artificial Intelligence (3 cr.)

A survey of procedural and representational techniques used to study or simulate intelligent behavior. The nature of intelligence, machine and human, will be considered. Research developments will be reviewed. Theoretical and ethical limitations will be discussed. A significant programming or writing project will be expected from the student. (Spring). Liberal arts. Prerequisite: CSC221 and CSC217.

CSC352 - Computer Security (3 cr.)

A survey of the theory and practice of computer security. Topics will include mandatory and discretionary access control, cryptography, policies, mechanisms, profiles, and threat assessment. (Spring). Prerequisite: CSC221 or equivalent.

CSC357 - Computer Networks (3 cr.)

Overview of computer networks with particular emphasis on the Internet. The layered architecture of the Internet is presented with their related algorithms and current protocols. Security issues are also examined. (Fall). Liberal arts. Prerequisite: CSC221.

CSC372 - Ethics in the Age of Technology and Information (3 cr.)

Investigation of the relationship between computers and society in terms of ethical issues such as: personal privacy vs. societal security; intellectual property vs. free speech; dehumanization and loss of autonomy vs. rehumanization; and application of artificial intelligence. Approved AWR. Liberal arts. (Fall/Spring). Prerequisites: ENG101; LIB200; an oral expression general education course; CSC221; junior standing.

CSC383 - Embedded Systems (3 cr.)

Introduction to embedded systems programming. Includes configuration of systems, real-time systems, cyber-physical computing, and writing hardware drivers. Liberal arts. (Spring). Prerequisite: CSC309.

CSC399 - Independent Study (1 to 15 cr.)

Project individually arranged by student and faculty sponsor. Requires completion of the Independent Study form and approval by the Faculty Sponsor, Academic Advisor, Department Chair and Academic Dean. (Fall, Winter, Spring, Summer).

CSC422 - Theory of Computation (3 cr.)

Theoretical foundation of computer science. Considers classes of languages, formal grammars, and automata and the relationships among them. Decidable and undecidable problems. May include topics from recursive function theory or complexity theory. (Fall). Liberal arts. Prerequisite: CSC318 or MAT231.

CSC433 - Operating Systems (3 cr.)

The design of systems that manage computer resources (processor, memory, disks and other peripheral devices) in a multitasking environment. Attention to concurrency problems and their solutions. Process and thread scheduling. Strategies for data storage management. Mechanisms that provide system and user security. Approaches to system deadlock. (Fall). Liberal arts. Prerequisites: CSC319, CSC333.

CSC436 - Software Engineering II (3 cr.)

This course will instruct students in application of software engineering principles to a medium sized software project. Students will work in teams using an agile software process to gain experience with all aspects of the software development cycle. The topics covered will include personal productivity, customer interaction, team productivity, communication skills, process improvement, and project management in the context of a semester long project. May be taken a second time for credit with a different project topic. (Fall/Spring). Prerequisite: CSC336.

CSC441 - Database Management Systems (3 cr.)

Relational database design and implementation. Core topics include: record and file organizations, access structures, entity-relationship model, relational algebra and calculus, relational model functional dependencies and normalization, SQL, database implementation and application programs. Bioinformatics databases and related programming libraries. (Occasional). Liberal arts. Prerequisites: CSC318, CSC223.

CSC442 - Data Mining (3 cr.)

The theory, algorithms, and design of data mining and data warehousing systems. The course will cover the whole knowledge discovery process and the use of machine learning in data mining. Liberal arts. (Odd years in Fall). Corequisites: CSC341 or CSC441 or MIS402. Prerequisites: CSC217 or MAT161 or ECO260 or BIO333 or ENV333.

CSC446 - Software Design Studio (3 cr.)

This course will instruct students in application of software engineering principles to a medium sized software project. Students will work in teams using an agile software process to gain experience with all aspects of the software development cycle. Object oriented programming principles and appropriate data structures will be applied in the context of a semester long software project. (Fall, Spring). Liberal arts. Prerequisites: CSC336 and CSC223 (grade of C or better).

CSC452 - Threat Analysis and Modeling (3 cr.)

Identification, analysis, and modeling of security threats in computer applications, systems, and networks. Topics will include protocol design and analysis and configuration management. (Odd Years in Spring). Liberal arts. Prerequisites: CSC330 or CSC336 or CSC341 or CSC441, and CSC352.

CSC456 - Reliable Systems (3 cr.)

The process of building high assurance systems and techniques for fault detection and recovery. System reliability will be discussed at the hardware, middleware, and application level. (Even Years in Fall). Liberal arts. Prerequisites: CSC223, CSC336.

CSC462 - Intrusion Detection (3 cr.)

The defense in depth approach to network security, with a focus on the role of intrusion detection systems. Techniques of identifying, modeling, and reacting to unauthorized activity will be covered. Liberal arts. (Spring even years). Prerequisites: CSC352, CSC357.

CSC480 - Image Processing (3 cr.)

An introduction to the representation, analysis, and processing of digital images. Topics covered will include image transformations, statistical description of images, image enhancement, image restoration, image segmentation and edge detection, and image processing for multispectral images. Liberal arts. (Fall even years). Prerequisites: MAT202, CSC217, CSC309.

CSC485 - Advanced Topics in Computing (1 to 4 cr.)

A course on topics in computing of current interest (in a seminar format, lecture format, lab format or a combination). May be repeated for credit with a different topic. Liberal arts. (Occasional). Prerequisites: vary with topic.

CSC495 - Undergraduate Research (2 to 6 cr.)

Research project individually arranged between student and faculty member. May be repeated for credit. (Fall, Winter, Spring, Summer). Liberal arts. Prerequisite: POI.

CSC496 - Instructional Practicum (1 to 2 cr.)

Designed for students who will work under the supervision of a faculty member to assist in the instruction of a course. A contract specifying the responsibilities of each student will be filed in the department. May be taken twice for a total of six credits with chairperson's permission. (Fall/Spring). Prerequisite: POI.

CSC497 - Computing Practicum (1 to 3 cr.)

Participate in software development, system administration, or other applied computing experiences within the Computer Science Department. May be taken twice for a total of six credits. (Fall/Winter/Spring/Summer). Prerequisites: six credits in upper level CSC courses.

CSC498 - Internship in Computer Science (1 to 15 cr.)

Computer science activity at an industrial or research facility. (Fall, Winter, Spring, Summer). Prerequisite: six credits in upper level CSC courses and department chair approval.

CSC499 - Independent Study (1 to 15 cr.)

Project individually arranged by student and faculty sponsor. Requires completion of the Independent Study form and approval by the Faculty Sponsor, Academic Advisor, Department Chair and Academic Dean. (Fall, Winter, Spring, Summer).

Search the College Course Catalog

Enter a course number or three-letter course subject to search the College Catalog:

Alphabetical Listing of Curriculum Descriptions by Course Subject

A

B

C

E

F

G

H

I

J

L

M

N

P

R

S

T