Computer Science Courses

Code Course Credits

CSC 090

Healthy Computer Use for Computer Science

Offered: Fall Semester

Healthy computer use for computer scientists using the Alexander Technique. Survey medical literature related to computer use and musculoskeletal disorders. Pathomechanics of the human-computer interface. Ergonomic conditioning, physical conditioning, mental conditioning and work conditioning. Based on the Alexander Technique: a way of uncovering and correcting mental and physical habits that lead to musculoskeletal injury.

Prerequisite(s): Open to Computer Science or Computer Engineering majors. Open to other majors with permission of the instructor.

1

CSC 101

From Gutenberg to Gates

Offered: Fall and Spring Semesters

This course explores the history of information technology and its impact on our society. It provides students with the background to understand these changes and the tools they need to manage them, as well as a strong foundation in research, critical thinking, and oral and written communication skills.

Prerequisite(s): No prerequisites.
Fulfills the Natural Scientific Inquiry requirement.

3

CSC 102

Basic Programming

Offered: Not Offered 2014-2015

An introduction to computers and programming using Visual Basic .NET. Problem solving using top-down design and procedural abstraction, visual design for the desktop and the web, databases, and fundamental hardware and software structures. Useful in any career that uses computer technology.

Prerequisite(s): No prerequisites.
Fulfills the Natural Scientific Inquiry requirement.

3

CSC 103

Computer Science I

Offered: Fall Semester

An introduction to programming and problem solving using Java. Topics include: Input and Output; Selection; Repetition; Methods; Recursion; Arrays; Classes and Objects.

4

CSC 104

Computer Science II

Offered: Spring Semester

Inheritance; Polymorphism; Exceptions; Stream IO; Elementary Data Structures; Graphics; Event Driven Programming.

Prerequisite(s): CSC 103.

4

CSC 195

How Computers Work

Offered: Not Offered 2014-2015

An exploration of how computers work: what goes on inside the computer (hardware), how to program computers (software), the Internet and communication revolution, artificial intelligence, and the limits of computation.

Fulfills the Natural Scientific Inquiry requirement.

3

CSC 201

Discrete Mathematics For Computer Science I

Offered: Fall Semester

Discrete mathematical models for applications in computer science. Mathematical induction, graphs, trees, sets, equivalence relations, functions, and partially ordered sets. Asymptotic complexity, Big-O, and Big Omega, recursion and recurrence equations, finite and infinite sums. Predicate logic and first order logic. Basic counting methods, simple combinatorics. Probability and Markov Chains. Linear algebra, applications of linear algebra in computer science.

Prerequisite(s): MTH 126, CSC 104.

3

CSC 202

Discrete Mathematics For Computer Science II

Offered: Spring Semester

Discrete mathematical models for applications in computer science. Mathematical induction, graphs, trees, sets, equivalence relations, functions, and partially ordered sets. Asymptotic complexity, Big-O, and Big Omega, recursion and recurrence equations, finite and infinite sums. Predicate logic and first order logic. Basic counting methods, simple combinatorics. Probability and Markov Chains. Linear algebra, applications of linear algebra in computer science.

Prerequisite(s): MTH 126, CSC 104.

3

CSC 211

Data Structures

Offered: Fall Semester

The fundamental methods used to organize data in computer algorithms: stacks, queues, linked lists, trees, graphs, searching, and sorting. Design and analysis of algorithms.

Prerequisite(s): CSC 104.

3

CSC 221

Computer Logic and Organization

Offered: Alternate Years: Fall 2015, 2017

The basics of digital logic design. Binary representation of information, Boolean algebra, truth tables, combinatorial logic, Karnaugh maps, memory elements, flip flops, latches, registers, RAM and variations. ALU's, control logic, and finite state machines. The design of a simple computer. Gates and their implementation with transistors and integrated circuits.

Prerequisite(s): CSC 103.

3

CSC 304

Computer Architecture

Offered: Alternate Years: Spring 2016, 2018

The basics of computer organization, architecture and assembly language. Instructions sets, address modes, and the run/time stack are explored by programming on a RISC machine. CPU and ALU design, performance analysis, pipelining, cache, virtual memory are examined. Trade-offs between RISC, CISC and advanced architectures is discussed. Assumes basic knowledge of digital logic.

Prerequisite(s): CSC 221.

3

CSC 311

Algorithms and Complexity

Offered: Alternate Years: Spring 2015, 2017

Basic algorithm techniques: recursion, dynamic programming, greedy method branch and bound. Analysis of algorithms: recurrence equations, NP-completeness, asymptotic complexity. Applications include graph and combinatorial algorithms.

Prerequisite(s): CSC 201 and (CSC 211 with a grade of C- or better).

3

CSC 312

Compiler Design

Offered: Alternate Years: Fall 2015, 2017

Finite automata and lexical analysis, context free grammars, top-down and bottom-up parsing, syntax directed translation, symbol table techniques, runtime storage administration, code generation, optimization.

Prerequisite(s): CSC 211 (with a grade of C- or better).

3

CSC 314

Operating Systems

Offered: Alternate Years: Fall 2014, 2016

Process management, concurrency, virtual storage organization, processor management, auxiliary storage management, operating system performance.

Prerequisite(s): CSC 211 (with a grade of C- or better).

3

CSC 323

Programming Languages

Offered: Alternate Years: Spring 2016, 2018

Formal language concepts including syntax and basic characteristics of grammars. Control structures, data flow, run-time considerations. Scripting, Functional, and Logic languages.

Prerequisite(s): CSC 211 (with a grade of C- or better).

3

CSC 324

Advanced Programming

Offered: Spring Semester

Programming for the world wide web. Design patterns. Presentation Layer: XHTML, CSS, Javascript. Processing Layer: XSLT, Servlet Frameworks. Data Layer: XML, Document Object Model.

Prerequisite(s): CSC 211 (with a grade of C- or better).

3

CSC 325

Database Management Systems

Offered: Alternate Years: Spring 2015, 2017

Data Modeling using the Entity-Relationship approach. The Relational Model and Relational Algebra. SQL. Functional dependencies and normalization. Database design Process. Record storage and primary file organization. Index structures for files. Concurrency control techniques.

Prerequisite(s): CSC 211 (with a grade of C- or better).

3

CSC 382

Artificial Intelligence

Offered: Alternate Years: Spring 2015, 2017

Introduction to artificial intelligence. Knowledge representation. Natural language processing. Deduction and inference. Expert systems. Computer vision. Robotics. Programming in LISP, PROLOG, or another AI language.

Prerequisite(s): CSC 211 (with a grade of C- or better).

3

CSC 384

Theory of Computation

Offered: Alternate Years: Fall 2014, 2016

Introduction to the general theory of computation. Formal grammars: regular, context-free, and context-sensitive languages. Formal automata: finite-state and pushdown models. Decidability. Turing Machines. The Chomsky hierarchy. NP-Completeness and Complexity Theory. Also listed as MTH 384.

Prerequisite(s): CSC 201.

3

CSC 390

Data Networking

Offered: Alternate Years: Fall 2015, 2017

Data Networking: Data communication system components, network architecture, layered protocols, traffic analysis, and capacity planning.

Prerequisite(s): CSC 211 (with a grade of C- or better).

3

CSC 393

Numerical Analysis

Offered: Spring Semester

For description and semester schedule, see MTH 393.

3

CSC 399

Topics in Computer Science

Offered: Not Offered 2014-2015

An advanced topic in an area of current interest in computer science.

3

CSC 400

Capstone: Software Engineering

Offered: Spring Semester

Large-scale software project involving teamwork, written reports and oral presentations.

Prerequisite(s): Senior standing in Computer Science.
Fulfills the Writing in the Disciplines requirement. Fulfills the Capstone requirement for Computer Science.

4

CSC 450

Computer Science Honors Thesis

Offered: Fall and Spring Semesters

For fourth-year students in the Computer Science Honors Program. Students are required to consult with a faculty member regarding a suitable thesis topic. The final project is judged by a panel of three faculty members. The project may be completed either in one or two semesters.

Prerequisite(s): A grade-point average of 3.5 in all Computer Science courses.

3

CSC 475

Internship in Computer Science

Offered: Fall and Spring Semesters

Opportunity for qualified students to work in the computer industry under professional supervision.

Must complete the "U.S. Internship Request for Approval" process found under the myPlans tab in myHill to register for this Internship.

3

CSC 490

Directed Study

Offered: Fall and Spring Semesters

Opportunity for upper level students to do advanced work in a specialized area of computer science.

Prerequisite(s): Permission of faculty member directing the project and the Department Chairperson required.

3