Computer Science Courses

Code Course Credits

CSC 090

Healthy Computer Use for Computer Science

Offered: Not Offered 2016-2017

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 Berners-Lee

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

Introduction to Programming

Offered: Spring Semester

An introduction to computers, programming and problem solving using a modern programming language such as Python, Java, or Visual Basic.

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.

Course may be applied to the Data Science program.

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.
Course may be applied to the Data Science program.

4

CSC 195

How Computers Work

Offered: Spring Semester

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 2017, 2019

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.
Course may be applied to the Management of Information Systems program.

3

CSC 304

Computer Architecture

Offered: Alternate Years: Spring 2018, 2020

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 2017, 2019

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 2017, 2019

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 2016, 2018

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: Fall 2017, 2019

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

Web 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 2017, 2019

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).
Course may be applied to the Data Science and Management of Information Systems programs.

3

CSC 382

Artificial Intelligence

Offered: Alternate Years: Spring 2017, 2019

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 2016, 2018

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.

Prerequisite(s): CSC 201.

3

CSC 390

Computer Networks

Offered: Alternate Years: Spring 2018, 2020

Computer Networks: 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: Alternate Years: Spring 2018, 2020

For description and semester schedule, see MTH 393.

3

CSC 399

Topics in Computer Science

Offered: Spring Semester

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

3

CSC 400

Capstone: Software Engineering (WID)

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