This page lists the courses that are being regularly offered.
The full list of courses is in the
Course Formal pages area.
CSC115 - Social and Ethical Issues in Computing (3 credits)
History.
Social context and economic issues in computing.
Methods and tools of analysis.
Professional and ethical responsibilities.
Intellectual property.
Privacy and civil liberties.
Prerequisites:
CSC120 - Computer Programming I (4 credits)
History of computing.
Fundamental programming constructs.
Algorithms and problem solving.
Object-oriented programming.
Recursion.
Lecture 3 hours, laboratory 2 hours.
Prerequisites: Corequisite:
MTH108, or MAS110, or adequate score on the mathematics placement test
CSC210 - Computing for Scientists (3 credits)
Introduction to computing.
Computing applications in science.
Tools for applications.
Algorithms for applications.
Implementation of algorithms.
Data in science.
Storage and retrieval of data.
Analysis and visualization of data.
Prerequisites:
CSC220 - Computer Programming II (4 credits)
Object-oriented programming.
Fundamental data structures.
Elementary searching and sorting.
Event-driven and concurrent programming.
Using APIs.
Lecture 3 hours, laboratory 2 hours.
Prerequisites: CSC120
CSC314 - Computer Organization and Architecture (3 credits)
Digital logic and digital systems.
Machine level representation of data.
Assembly level machine organization.
Memory system organization and architecture.
Interfacing and communication.
Functional organization.
Multiprocessing and alternative architectures.
Prerequisites: CSC120
or CIS324
CSC322 - C Programming and UNIX (3 credits)
C programming:
Functions and program structure.
Core language elements.
Pointer arithmetic.
System tools for C programming.
Programming for UNIX:
The UNIX system call interface.
Interfaces to the internet.
Scripting.
Prerequisites: CSC220
or CIS324
CSC329 - Introduction to Game Programming (3 credits)
Fundamental issues behind developing a game application.
Fundamental programming issues in game design:
Software design;
Version control;
Basic graphics;
GUI programming;
Networking;
Artificial intelligence;
Scripting languages;
Sound.
Large-scale game project:
Team development of a functional game;
Graphics and GUI component;
Networking component;
Core game engine.
Prerequisites: CSC220
CSC40[123] - Computer Science Practicum (1-3 credits)
Implementation of techniques, algorithms, and data structures being taught
in a co-requisite CSC course.
Prerequisites: Permission of instructor
CSC410 - Computer Science Project Planning (1-3 credits)
Planning for the implementation of a Computer Science project, including:
Problem analysis.
System architecture design.
Algorithm and data structure selection.
User interface design.
Verification and validation plan.
Prototyping.
Prerequisites: Permission of instructor
CSC411 - Computer Science Project Implementation (1-3 credits)
Implementation of a Computer Science project, including:
Hardware preparation.
Component implementation.
System integration.
Verification and validation.
Documentation.
Prerequisites: Permission of instructor
CSC412 - Computer Science Internship (1-3 credits)
An internship in a commercial computing environment, including
interaction with clients,
problem analysis,
software and hardware design,
software implementation,
hardware installation,
software management,
documentation,
and user support.
Normally 50 internship hours are required per credit earned (the host
company must supply documentary evidence of hours worked).
Prerequisites: Permission of instructor
CSC507 - Data Security and Cryptography (3 credits)
Access, information flow and inference controls.
Network security and management.
Encryption algorithms.
Cryptographic techniques.
Prerequisites: CSC517
or
CSC527
CSC517 - Data Structures and Algorithm Analysis (3 credits)
Basic algorithmic analysis.
Algorithmic strategies.
Fundamental computing algorithms.
Distributed algorithms.
Cryptographic algorithms.
Geometric algorithms.
Prerequisites: CSC220,
MTH309
CSC519 - Programming Languages (3 credits)
Overview of programming languages.
Fundamental issues in language design.
Virtual machines.
Introduction to language translation.
Models of execution control.
Declaration, modularity, and storage management.
Programming language semantics.
Programming paradigms.
Prerequisites: CSC517
CSC521 - Principles of Computer Operating Systems (3 credits)
Process management.
Scheduling and dispatch.
Interprocess communication.
Memory management.
File systems.
Device management.
Security and protection.
System programming for UNIX.
Prerequisites: (CSC314 or
CSC350)
and
(CSC322 or
permission of instructor)
CSC523 - Database Systems (3 credits)
Information models and systems.
Database systems.
Data modeling.
Relational databases.
Relational database design.
Database query languages,
Data mining concepts,
Web database programming.
Prerequisites: CSC517
CSC524 - Computer Networks (3 credits)
Introduction to computer networks and network applications.
The protocol stack.
Routing, switching and bridging technologies.
Models of network computing.
Internet standards and protocols.
Prerequisites: (CSC314 or
CSC350)
and
(CSC322 or
permission of instructor)
CSC527 - Theory of Computing (3 credits)
Sets, relations, and languages.
Automata theory.
Basic computability theory.
Turing machines.
The complexity classes P and NP.
Prerequisites: CSC220,
MTH309
CSC529 - Introduction to Computer Graphics (3 credits)
Fundamental techniques in graphics.
Graphic systems.
Graphic communication.
Geometric modeling (2D and 3D representations).
Basic rendering (transformations and display techniques)
Advanced rendering.
Advanced techniques.
Display and input devices, software packages.
Prerequisites: CSC220,
MTH210
CSC531 - Introduction to Software Engineering (3 credits)
Software processes,
requirements and specifications,
design,
validation,
evolution.
Project management,
tools and environments.
Foundations of human-computer interaction.
Risks and liabilities of computer-based systems.
Intellectual property.
Prerequisites: CSC322
or
CSC517
CSC545 - Introduction to Artificial Intelligence (3 credits)
Fundamental issues in intelligent systems.
Search and constraint satisfaction.
Knowledge representation and reasoning.
Natural language processing.
Machine learning and neural networks.
Game theory.
AI programming.
Prerequisites: CSC220
and
MTH309
CSC547 - Computational Geometry (3 credits)
Algorithms for solving geometric problems arising from application domains
including graphics, robotics, and GIS.
Prerequisites: CSC517
CSC548 - Bioinformatics Algorithms (3 credits)
The complexity of bioinformatics computations.
Introduction to perl and bioperl.
Pattern matching and sequence homology.
Genome assembly.
Transcription Factor Binding Site recognition and motif finding.
Gene prediction.
Phylogeny.
Microarray analysis.
RNA folding.
Gene design and synthesis.
Prerequisites: (CSC120
or
CSC210)
and
(BIL104 or BIL150 or BIL352 or BIL552)
CSC555 - Multimedia Systems (3 credits)
Specification and requirements of a multimedia hardware system,
Multimedia data technologies.
Graphics file formats.
Compression and decompression.
Multimedia application development.
Prerequisites: CSC517
CSC609 - Data Security and Cryptography (3 credits)
Access, information flow and inference controls.
Network security and management.
Encryption algorithms.
Cryptographic techniques.
Prerequisites: CSC517
or
CSC527
CSC624 - Mobile Wireless Systems (3 credits)
Cellular systems.
Multiple access techniques.
Wireless networking.
Mobile IP.
Power management.
User location information management.
TDMA, CDMA, and GSM systems.
Data broadcasting.
Prerequisites: CSC524
CSC628 - Parallel Algorithms (3 credits)
Parallel computation models.
Sorting networks.
Parallel algorithms for
sorting,
searching,
graph problems,
prefix computation,
pattern matching, and
fast Fourier transforms.
Theory of P-completeness.
The class NC.
Prerequisites: CSC540
CSC647 - Computational Geometry (3 credits)
Algorithms for solving geometric problems arising from application domains
including graphics, robotics, and GIS.
Prerequisites: CSC517
CSC648 - Automated Reasoning (3 credits)
Propositional and 1st order logic.
Reasoning and resolution.
More complex inference rules.
Using contemporary ATP systems.
Prolog as an ATP system and as a programming language.
Applications of ATP in research and industry.
Prerequisites: CSC517 or
CSC545
CSC655 - Advanced Multimedia Systems (3 credits)
Digital-system fundamentals.
Digital audio, analog and digital video.
Graphics.
Data compression algorithms.
CD-ROM technology.
Implementation of multimedia software development tools.
Architecture and issues for distributed multimedia systems.
Multimedia communications systems.
Prerequisites: CSC555
CSC670 - Directed Reading of Research (2-4 credits)
Prerequisites:
CSC693 - Research Project (1-6 credits)
Supervised research project preceding dissertation research for the Ph.D.
Prerequisites:
CSC694 - Research Project (1-6 credits)
Supervised research project preceding dissertation research for the Ph.D.
Prerequisites:
CSC710 - Master's Thesis (1-6 credits)
The student working on a master's thesis enrolls for the number
of credits as determined by his/her advisor.
Credit is not awarded until the thesis has been accepted.
Prerequisites:
CSC730 - Doctoral Dissertation (1-12 credits)
Dissertation research for the Ph.D.
Prerequisites:
CSC750 - Research in Residence (0 credits)
Research in residence for the Ph.D. after the student has been enrolled for the permissible cumulative total in appropriate doctoral research.
Prerequisites:
Last modified: 30 September 2008
|