|
CSC 115 (3) Digital Computer Principles
Subject matter consists of word processing, spreadsheet, database, graphics,
computing, data processing, the organization of a computer, input and
output devices, number systems, internal data representation and an introduction
to a high-level programming language. (F, S, Sum)
CSC 117 (3) FORTRAN
Prerequisite: CSC 115 or Equivalent.
Topics include definition of language syntax and semantics, structured programming,
sub-programs and basic algorithm design. Students are required to
write several programs and to achieve successful computer execution of them.
Credit not allowed as a Computer Science Elective for the Computer
Science Degree. (S)
CSC 118 (3) Programming Fundamentals
Prerequisite: Math 118 or Equivalent, CSC 115 or Equivalent. Co-requisite CSCL
118
This is the first course in the computer science programming sequence and is
required of all computer science majors. Course objectives include:
introduction to problem solving methods and algorithm development; definition
of language syntax and semantics of a high level programming language
(Java); and developing the ability to design, code, debug, document, and successfully
execute programs. Topics include objects and classes, data types,
applets and graphics, decision statements, iteration, methods, testing and debugging,
arrays, sorting and searching, inheritance, interfaces and
polymorphism. (F, S)
CSCL 118 (1) Programming Fundamentals
Lab
Prerequisites: Math 118 or Equivalent, CSC 115 or Equivalent. Co-requisite CSC
118.
This lab is to be taken with the course CSC 118. The objective of the lab is
to give the students hands-on experience on the topics covered in the CSC
118 class. Students will learn to use a text editor to write their programs
and how to compile and run them. Students will be required to develop programs
applying learned concepts such as object-oriented design, data types, decision-making,
iteration, arrays, methods, inheritance and interfaces. (F, S)
CSC 119 (3) Object Oriented Programming
Prerequisites: CSC 118, CSCL 118. Co-requisite: CSCL 119.
This course is the follow-up of CSC 118. Additional topics in Java are covered
in this course. Then the emphasis shifts to object-oriented analysis and
design. This course covers I/O streams, exception handling, threads, reflection,
UML, object-oriented analysis and design, object-oriented graphical user
interfaces with Java Swing, design patterns, and re-factoring. (F, S)
CSCL 119 (1) Object-Oriented Programming
Lab
Prerequisites: CSC 118, CSCL 118. Co-requisite: CSC 119.
Students explore, design, program, and analyze laboratory exercises of object
oriented programming in a supervised setting. Laboratory submissions
include not only software and data, but also short reports that are graded both
for technical content and writing mechanics. (F, S)
CSC 204 (3) COBOL
Prerequisites: CSC 115, CSC 117 or Equivalent.
A study of the COBOL programming language and its applications. Students are
required to write/modify several programs applying structured programming
techniques and to achieve successful computer execution. Credit not allowed
as a Computer Science Elective for the Computer Science Degree.
CSC 209 (3) Programming in C/UNIX
Prerequisites: CSC 119, CSCL 119.
Problem-solving methods, algorithm development, debugging and documentation
in the C programming language with emphasis on the UNIX operating
system environment. Topics include: pointers, strings, structures, unions, linked
lists, UNIX process management, and UNIX shell programming. (F)
CSC 211 (3) Object-Oriented Programming
in C++
Prerequisites: CSC 119, CSCL 119.
Problem-solving methods, algorithm development, debugging and documentation
in the C++ programming language. Topics include: classes, operator
overloading, inheritance, polymorphism, stream input/output, exception handling,
and file processing. (S)
CSC 212 (3) Advanced Programming
in Java
Prerequisites: CSC 119, CSCL 119.
This course covers advanced topics for Java programmers. These topics include
multithreading, collections, networking, advanced GUIs, database
connectivity and JavaBeans. Students will be required to work on a project involving
advanced Java programming.
CSC 214 (3) Programming for the
Web
Prerequisites: CSC 119, CSCL 119.
This course is designed for students who have computer programming experience
and who want to write Web applications. Students will learn the basic
programming skills and languages that are needed to implement distributed Web
applications. Topics include client-side programming techniques including
HTML, Dynamic HTML and JavaScript; server-side programming techniques including
CGI programming using Perl; and Web architectures and servers. (S)
CSC 216 (3) Computer Architecture
and Organization
Prerequisites: CSC 119, CSCL 119, CSC 225, EN 212, ENL 212. Co-requisite: CSCL
216.
Terminology and understanding of functional organizations and sequential operations
of a digital computer. Topics include machine level representations of
data, arithmetic operations, machine and assembly language, memory system organization,
and functional organization. The MIPS assembly language is
taught for the course projects. Also, the compilation and the assembly processes,
and linking and loading are covered. (F, S)
CSCL 216 (1) Computer Architecture
and Organization Lab
Prerequisites: CSC 119, CSCCL 119, CSC 225, EN 212, ENL 212. Co-requisite: CSC
216.
Students will carry out experiments using the MIPS assembly language to support
the topics covered in CSC 216. (F, S)
CSC 225 (3) Discrete Structures
for Computer Science
Prerequisites: CSC 118, CSCL 118.
Introduces the foundations of discrete mathematics as they apply to computer
science, focusing on providing a solid theoretical foundation for further
work. Topics include functions, relations, sets, simple proof techniques, boolean
algebra, propositional and predicate logic, fundamentals of counting,
graphs, trees, discrete probability, and computability. (F, S)
CSC 228 (3) Data Structures and
Algorithms
Prerequisites: CSC 119, CSCL 119, CSC 225. Co-requisite: CSCL 228.
The concepts of data abstraction and data structures are developed. For the
basic data structures of linked lists, stacks, queues, hash tables, graphs,
and trees, associated algorithms are described and analyzed. The course also
treats recursion, sorting, fundamentals of software engineering, and the
philosophy of object-orientation. (F, S)
CSCL 228 (1) Data Structures and
Algorithms Lab
Prerequisites: CSC 119, CSCL 119, CSC 225. Co-requisite: CSC 228
Students explore, design, program, and analyze implementations of data structures
and algorithms in a supervised setting. Laboratory submissions include
not only software and data, but also short reports that are graded both for
technical content and writing mechanics. (F, S)
CSC 312 (3) Advanced Computer Architecture
Prerequisites: CSC 216, CSCL 216.
The coverage of sequential computer architecture and organization is reviewed
and continued. Topics include reduced instruction set architecture,
memory hierarchy, interfacing and communication, and pipelining. Advanced computer
architecture topics such as performance enhancements and parallel
computers are also covered. (F, S)
CSC 321 (3) Logic
Prerequisites: CSC 118, CSCL 118.
Topics include: Number bases, 2's and 1's complements, set theory, Venn diagrams,
Boolean logic, DeMorgan’s Rules, Propositional Calculus, Finite
Calculus, introduction to the Predicate Calculus, combinatorics, gcd, modular
arithmetic, introduction to the theory of computation and Turing Machines.
CSC 323 (3) Algorithm Design and
Analysis
Prerequisites: CSC 228, CSCL 228.
Formal methods are applied to the design and analysis of algorithms. The objective
is to demonstrate how mathematical theory can be used to reduce
trial and error in practical software development. Other topics include algorithmic
strategies, graph and tree algorithms, and automata theory. (F, S)
CSC 325 (3) Operating Systems
Prerequisites: CSC 228, CSCL 228, CSC 312.
This course introduces the major concepts of process communication and synchronization,
protection, performance measurement, and causes and
evaluations of the problems associated with mutual exclusion and process synchronization
among concurrent processes. This course introduces and
analyzes various operating systems in terms of processor management, memory
management, device management, information management, and
distributed systems management. (F, S)
CSC 330 (3) Database Systems
Prerequisite: CSC 323.
This course is designed to introduce students to the concepts and theories of
database systems. Topics include: information models and systems; the
database environment; data modeling; conceptual modeling using the entity-relationship
approach and mapping to relational tables; the relational model
including the relational data structure, integrity rules, relational algebra
and relational calculus; normalization; data definition and data manipulation
in
SQL; conceptual, logical, and physical database design; security; transaction
management; query processing; and advanced topics in database systems.
(F, S)
CSC 332 (3) Compiler Construction
Prerequisistes: CSC 216, CSCL 216.
This course presents a general model of compilers, then uses this model to demonstrate
the implementation of advanced features. Topics to be covered
are logical analysis, syntax, and storage allocation.
CSC 350 (3) Organization of Programming
Languages
Prerequisites: CSC 216, CSCL 216, CSC 228, CSCL 228.
Study of the organization and specification of programming languages. Topics
include an overview of programming languages; issues in language design,
including typing regimens, data structure models, control structure models,
and abstraction; virtual machines; language translation; interpreters; compiler
design; lexical analysis; parsing; symbol tables; declaration and storage management;
code generation; and optimization techniques. (F, S)
CSC 403 (3) Computer Science Seminar
Prerequisite: Senior level with 15 hours of 300 level courses.
Discussion on trends in computer science. Students are required to prepare a
paper and present it to their peers. Students who have participated in a
Co-op Program will conduct a seminar discussing their work assignments.
CSC 435 (3) Computer Networks
Prerequisites: CSC 323, CSC 325.
This course presents the history of networking and the Internet, protocol concepts,
TCP/IP, multimedia and wireless, distributed computing, network
security and web technologies. (F, S)
CSC 441 (3) Computers and Society
Prerequisites: CSC 325, CSC 330.
This course presents concepts of social value and valuation, describes the impact
of computers on society; and presents tools and techniques which are
applicable to problems posed by the social impact of computers. (F, S)
CSC 450 (3) Senior Project
Prerequisite: Senior standing within computer science courses.
Students will design, code, test, implement and document a significantly large
and complex application program. (F, S)
CSC 452 (3) System Simulation
Prerequisites: MATH 355, CSC 228, CSCL 228.
Introduction to simulation models, writing programs to generate random numbers
from various probability distributions. Simulation models using GPSS/H
language for problem solving.
CSC 456 (3) Automata, Computability
and Formal Languages
Prerequisites: CSC 350 and knowledge of discrete structures.
An introduction to formal models of computation. Assignments will develop students
skills in understanding vigorous definitions in computing environments
and in determining their logical consequences.
CSC 460 (3) Introduction to Artificial
Intelligence
Prerequisite: CSC 323.
An introduction to the theory, research paradigms, implementation techniques,
and philosophies of artificial intelligence. Introduction to Prolog, Lisp and
expert system-shell programming.
CSC 470 (3) Computer Graphics
Prerequisites CSC 216, CSC 323.
Introduction to Graphics Hardware and Software, Display Architectures, User-Computer
interface Design, 2D and 3D Transformations, Projections, Clipping,
and Raster Graphics Algorithms.
CSC 475 (3) Software Engineering
Prerequisite: CSC 330.
Introduction to software engineering, software design, APIs, software tools
and environments, software development processes, software requirements
and specifications, software verification and validation, software implementation,
software evolution, and software project management. (F)
CSC 485 (3) Digital Image Processing
Prerequisites: CSC 312, CSC 323.
Introduction to Digital Image Processing and its Applications, where the emphasis
is on earth resources analysis. Subject matter consists of Hardware and
Software Requirements, Transformations, Registration, Encoding, Enhancement
and Restoration, and Image Databases.
CSC 499 (3) Special Topics
Prerequisite: Approval of instructor.
Advanced, specialized topics selected on the basis of mutual interest of the
student and the instructor.
|