30000

CSC 30000 Mathematics for Computer Science

This course covers topics in advanced calculus and statistics which are needed in many application domains in computer science. The approach is to use examples in fitting statistical models to data as a launching pad for considering aspects of vector calculus and statistical testing. Such numerical statistical models come up in computer vision, artificial intelligence, computer security,network analysis, distributed computing and many other applications.

Credits

3

Prerequisites

MATH 20100, MATH 21200, CSC 21700

Contact Hours

3 hr./wk.

CSC 30100 Numerical Issues in Scientific Programming

Numerical issues: roundoff error, truncation error, overflow and underflow errors. Numerical integration; solution of simultaneous equations; curve fitting. A thorough introduction to scientific programming, using a modern version of the Fortran or Matlab language. Written reports and oral presentation of projects.

Credits

3

Prerequisites

CSC 21700, CSC 22000, MATH 21300 or MATH 20300 (min. C grade), and MATH 34600 (min. C grade)

Contact Hours

3 lect. Hrs/week

CSC 30400 Introduction to Theoretical Computer Science

Finite state automata, pushdown automata, Turing Machines, and the languages they can recognize. Church's Thesis. Compatibility. The classes P and NP; NP-complete problems and intractable problems.

Credits

3

Prerequisites

CSC 22000.

Contact Hours

3 hr./wk.

CSC 31167 Foundations of Data Science

This course introduces the fundamental concepts and computational techniques of data science to all students, including those majoring in the Arts, Humanities, and Social Sciences. Students engage with data arising from real-world phenomena—including literary corpora, spatial datasets, and social networks data—to learn analytical skills such as inferential thinking and computational thinking. The competencies learned in this course will provide students with skills that will be of use in their professional careers, as well as tools to better understand, quantitatively and qualitatively, the social world around them. Finally, by teaching critical concepts and skills in computer programming and statistical inference, the class prepares students for further coursework in technology-dependent subjects, such as Digital Humanities. The course is designed for students who are new to statistics and programming. Students will make use of the Python programming language, but no computer science pre-requisites are required.

Credits

3

Contact Hours

3 hr./wk.

CSC 31700 Introduction to the Internet

This course is intended to provide students with the background necessary for understanding the Internet. Discussed are the underlying technology, applications, and social implications of the World Wide Web. Cannot be used to fulfill CSC technical elective requirement.

Credits

3

Prerequisites

CSC 10200 or CSC 10300 and at least junior standing.

Contact Hours

3 hr./wk.

CSC 31800 Internet Programming

This course provides advanced CSC/engineering majors with an understanding of web-based application development.

Credits

3

Prerequisites

CSC 22100 or EE 25900.

Contact Hours

3 hr./wk.

CSC 32200 Software Engineering

The software development life cycle from feasibility study to turnover to client. Documentation of design, program, and training materials. Rapid prototyping languages. Software development management: team roles and organization, the version control problem, maintenance issues. Use of CASE tools emphasized and illustrated in projects. Written reports and oral presentation of projects.

Credits

3

Prerequisites

CSC 22000 and CSC 22100.

Contact Hours

3 lect. Hrs/week

CSC 33200 Operating Systems

Concepts, structure, mechanisms of operating systems. Relevant to embedded systems, smart phones, single-user workstations and PCs, and medium-sized shared systems (e.g., cloud); Multi-tasking. Resource abstractions and Sharing. System protection and integrity. Inter-task communications and Synchronization. Lab projects (individual); written exams and reports.

Credits

4

Prerequisites

CSC 22000, CSC 22100

Contact Hours

3 lect. hr., 2 lab hrs./wk.

CSC 33500 Programming Language Paradigms

Aspects of the design and implementation of declarative and imperative programming languages, presented via a sequence of interpreters. Topics include abstraction, objects and inheritance, parameter passing, type-checking and continuations. Substantial programming assignments.

Credits

3

Prerequisites

CSC 22000 and CSC 22100.

Contact Hours

3 hr./wk.

CSC 33600 Introduction to Database Systems

An introduction to database architecture. Levels of abstraction in a database system; physical database organization: abstract data models; relational databases and their query languages. Database design assignments.

Credits

3

Prerequisites

CSC 22000 and CSC 22100.

Contact Hours

3 hr./wk.

CSC 34200 Computer Organization

This course provides computer science and computer engineering students with an in-depth look at computer architecture and the hardware/software interface. The major topics are: computer abstractions and technology; the role of performance and measuring performance; SPEC. computer arithmetic; machine language: a comparative analysis of instruction sets of current processors using debuggers, simulators and by the partial reverse engineering of executables. The processor: datapath and control; RISC versus CISC; design, implementation (using VHDL), and verification (in simulation) of a simplified RISC processor using CAD tools. Enhancing performance with pipelining. Memory hierarchy, cache, virtual memory, performance issues. interfacing processors and peripherals; PCI chipset. Overview of multiprocessors, grid computing.

Credits

3

Prerequisites

CSC 21100 or (CSC 21000 and EE 21000).

Corequisites

CSC 34300.

Contact Hours

3 hr./wk.

CSC 34300 Computer Systems Design Laboratory

Introduction to FPLD technology, logic synthesis, and rapid prototyping of digital systems using commercial CAD tools. Topics: Programmable Logic Technology. Sequential Design and Hierarchy. Synthesis of Digital Hardware using VHDL. State Machine Design, CPU Controller. A Simple Processor Design. Video Graphics Adapter (VGA) video display generation. Design PS/2 Keyboard interface. Design of PS/2 Mouse interface. Synthesis of a RISC processor as covered in CSC 34200. Students are required to prepare written reports and demonstrate their design.

Credits

1

Corequisites

CSC 34200.

Contact Hours

4 lab. Hrs/week

CSC 37500 Social Issues in Computing

A systematic and comprehensive overview of the social implications of computers. Public policy questions and the responsibility of computer professionals will be stressed. Topics include computers in the economy, in politics and government, in social institutions and in contemporary culture.

Credits

3

Prerequisites

At least sophomore standing.

Contact Hours

3 hr./wk.

CSC 38000 Computer Security

An introduction to computer security.  The student will develop the ability to reason about security in a variety of practical contexts and will learn best practices for mitigating threats and implementing secure systems.  Topic will include software and hardware security, network security and protocols, operating systems security, and elementary cryptography.

Credits

3

Prerequisites

(CSC 21100 or {CSC 21000 and EE 21000}) and CSC 22000

Contact Hours

3 hr./wk.