Jump to Navigation

History

COURSE DESCRIPTION

CSC101 Introduction to Computer Programming > 3 credits

Introduction to computer program using a high level programming language (using object oriented approach). Topics to be covered are Identifiers; Data types; Variable; Constants; Different operators; Basic Input Output; Control structures i.e., Conditional statements, Loops; Array; Functions; String. Primary emphasis is given to problem solving approach; Algorithm design and program development. Programming Language C++, Java.

CSC101L Labwork for CSC101 > 1 credit

CSC201 Discrete Mathematics > 3 credits

Proposition, first order logic, basic logical operations, truth tables, tautologies, contradictions, algebra of propositions, logical implications, logical equivalence, predicates, universal and existential quantifiers. Valid and invalid arguments. Proof of strategies (direct proofs, indirect proofs, proof by contradictions, proof by cases), mathematical induction. Review of set operations, Venn diagrams, basic identities on sets, Cartesian products. Basic definitions of relations, representation of relations, closures, equivalence relations, partial orderings. Basic definitions of functions, injective, surjective and bijective functions, inverse functions, composition of functions, recursively defined functions, countable and uncountable, sets, sequences and sums, recursively defined functions, matrices. Divisibility and modular arithmetic, greatest common divisors, Euclidean algorithm. Basics of counting, pigeonhole principle, permutations and combinations, generalized permutations and combinations, inclusion-exclusion, recurrence relations, solving recurrence relations, generating functions. Semigroups, monoid, groups, subgroups, cyclic groups, permutation groups, homomorphism and isomorphism of groups, rings and fields. Finite state machines, finite automata, languages and grammars. (Prerequisite: CSC 101)

CSC203 Data Structure > 3 credits

Elementary data structure: Elements of data representation and storage. Arrays and Linked Lists (singly linked list and doubly linked list). Abstract data types: Stack, Queue, Priority Queue. Comparative analysis of different implementations of ADTs (Array based and linked list based). BST (Binary Search tree), Heap. Efficient Priority Queue (Heap based). Complexity analysis of dictionary operations (Insertion/Deletion/search) on ADTs. Data structure as a facilitator of smart searching and sorting algorithms (Binary search, Heap sort). Graphs (Connectivity graph, Directed and Undirected graph). Balanced search tree: Red Black Tree. (Prerequisite: CSC 101)

CSC203L Labwork for Data Structure > 1 credit

CSC 204 Introduction to Computer Hardware and Digital Logic > 3 credits

Digital and analog systems. Number systems and codes; logic gates, Boolean algebra, arithmetic circuits, latches, register, counters, MSI logic circuits, flip-flops, A-D and D-A converters, IC logic families, memory devices, PLD, ASIC, FPGA. (Prerequisite: PHY 102)

CSC 204L Labwork for CSC204 > 1 credit

CSC 301 Finite Automata and Computability > 3 credits

Basic notions: string, prefix, suffix, substring, concatenation; Cardinality; Distinction between uncountable and countable infinite. Different proof techniques: Proof by construction, proof by contradiction, pigeon hole principle. Deterministic and non-deterministic Finite state automata; Regular language, regular expression. Equivalence of NFA and DFA. Pumping Lemma, non regular languages. Context free grammar (CFG) and Push down automata (PDA). Chomsky Normal form. Parsing. Turing machine. Universal Turing machine and Halting problem. Goedel numbering. Computability. P/NP. (Prerequisite: CSC 201)

CSC 305 Object-oriented Programming I > 3 credits

Objects and classes; Constructors and destructor; Abstract Data Structures, Function chaining; Friend functions; Function and operator overloading; Composition and Inheritance; Dynamic polymorphism using virtual functions; Exception handling; Template functions and classes; Standard Template Library; Programming Languages C++/ Java/ C#. (Prerequisite: CSC 203)

CSC 305L Labwork for CSC305 > 1 credit

CSC 306 Algorithm > 3 credits

Fundamentals of algorithms, Complexity analysis, Asymptotic notations (Theta, Big O, Omega). Different sorting algorithms: Bubble/Insertion(N^2); Recursive sorting algorithms: Merge, Quick, Heap (NlgN); Decision tree analysis: nlgn bound on comparison based sorting. Sorting in linear time: Counting/ Radix sort. Spanning trees. Greedy algorithms: Shortest path (Dijkstra), MST (Minimum spanning tree algorithms: Kruskal, Prim). Hashing. NP problems (TSP). (Prerequisite: CSC 203)

CSC 311 Computer Organization and Architecture > 3 credits

Computer system: computer structures, components, functions. Memory: cache memory mapping, internal memory, external memory. I/O devices: modules, programmed and interrupt driven I/O, DMA, I/O channels and processors. Interfaces, central processing unit: Computer arithmetic: hardware design algorithms. Instruction cycle, Instruction pipelining, control units design: Hardware and microprogrammed, parallel organizations, RISC, CISC, Multicore Processor organization. (Prerequisite: CSC 204)

CSC 312 Microprocessor and Assembly Language > 3 credits

Organization of a computer. Introduction to 80X 86 families of microprocessors; Microprocessor Architecture, addressing mechanism, Instruction set, Instruction format. Assembly Language programming: assembling, linking, running and debugging programs. Controlling program development; Interrupt system. Microprocessor interfacing with memory and other devices. 8086 based system design, Programmable peripheral Interface: 8255A, 8251A, DMA controller 8237, Interrupt controller 8259A. Overview of advanced processors: 80386, Pentium and Multicore processors. (Prerequisite: CSC101, CSC 311)

CSC 312L Labwork for CSC212 > 1 credit

CSC401 Database Management Systems > 3 credits

Introduction to database and DBMS. Database development process, Database architecture; Database languages and Interfaces. E-R Model, Enhanced E-R model; Database Design Relational Data model, Integrity constraint, Transferring ERD to Relations; Introduction to normalization; Relational Algebra; Introduction to Structure Query Language; Programming with SQL and PL/SQL. Database security and administration. Object oriented data modeling; Distributed database. Specific database systems: Oracle. MS SQL Server. (Prerequisite CSC203, Senior Standing)

CSC401L Labwork for CSC401 > 1 credit

CSC 404 Embedded Systems > 3 credits

Provides a detailed overview of the important topics in the field. Typical examples of embedded systems; real time and safety critical issues; constraint driven design; systems integration; hardware-software partitioning and time-to-market considerations will be addressed. The subject will examine programmable devices, micro-controllers, application specific standard processors: importance of interrupts; re-configurable logic; system-on-a-chip; finite state machines; dataflow architectures; and distributed embedded systems. Software for embedded systems, including: programming languages and software architectures; interrupt servicing; multi-tasking; task communications and scheduling; verification: hardware-software co-simulation; and real-time operating systems will be introduced. (Prerequisite: CSC312)

CSC405 System Analysis and Design > 3 credits

Systems and models; Project management; Tools for determining system requirements; data flow diagrams; decision table and decision trees; Systems analysis: systems development life cycle models. Object oriented analysis: use-case modeling, Unified Modeling Language. Feasibility analysis, Structured analysis; systems prototyping; system design and implementation: application architecture, user interface design. Front-end and backend design; database design; software management and hardware selection. Case Studies of Information Systems. (Prerequisite CSC401)

CSC 411 Compiler Construction > 3 credits

Introduction to Preprocessor, compiler, Assembler and Linker; Fundamental of compilers and interpreters; Scanning theory and practices; Grammar and parsing; Symbol tables; Run-time environment and storage organization; Lexical analysis; Syntax analysis; Semantic analysis; Syntax directed translation and type checking; Intermediate code generation; Code optimization; Code generation; Constructing prototype compiler-modules for a hypothetical language. (Prerequisite: CSC 301, CSC 305)

CSC 413 Operating Systems > 3 credits

Overview: Background, Computer-system structures, Operating system structures. Process Management: Processes and threads, Process synchronization, Deadlocks, CPU scheduling. Storage Management: Memory management, memory allocation, addressing, Swapping, paging, segmentation, Virtual memory organization, demand paging. File system, structure and access methods: File-system interface, File-system implementation, File protection. I/O Systems: I/O Systems, Mass-storage structure, Computer systems performance, network and security. Distributed Systems: Structure, file systems and coordination. (Prerequisite: CSC 311, CSC 305)

CSC 415 Object-oriented Programming II > 3 credits

Object oriented programming and introduction to GUI application development; Application Programming Interfaces (API); .NET Framework and Java packages; Multithreaded Programming; GUI Programming tools. Applications of OOP in database, networking and website development; Object oriented analysis and design; OOP in dynamic Languages like XML; Programming Languages C++/ Java/ C#. (Prerequisite: CSC 305)

CSC420 Image Processing > 3 credits

Introduction; Point operations; Histograms; Spatial operations; Affine transformations; Image rectification; Interpolation and other transformations; Contrast enhancement; Convolution operation, Magnification and Zooming; Fourier transform; Edge detection; Boundary extraction and representation; Mathematical morphology , Wavelets, compression. (Prerequisite: CSC 205, MAT 212, MAT303)

CSC 421 Machine learning > 3 credits

Introduction to Machine Learning; Classification of learning: Unsupervised and supervised learning, Connectionist learning, Reinforcement learning, Machine discovery; Supervised learning: Information theoretic decision tree learner, Best current hypothesis search, Candidate elimination (version space) algorithm, Learning in the first order Horn clause representation, Inductive logic programming, Application; Unsupervised learning: Hierarchical clustering, Category utility, Incremental and non-incremental algorithms for hierarchical clustering, Applications; Connectionist learning: Introduction to Neural Network, Feed forward and recurrent network, Perception, Multilayer feed forward network, Back propagation algorithm for training a feed forward network, Applications; Genetic Algorithms: Genetic operators, Fitness function, Genetic algorithm in supervised learning framework, Applications. (Prerequisite: CSC305, MAT 212, MAT 303)

CSC 422 Pattern Recognition > 3 credits

Basic concepts, Design concepts, Examples; Decision functions: Linear decision functions, Generalized decision functions; Pattern classification by distance functions: Minimum distance pattern classification, Cluster seeking; Pattern classification by likelihood functions: Bayes classifier; Structural pattern representation: Grammars for pattern representation, Picture description language and grammars, Stochastic grammars; Structural pattern recognition: String to string distance; Matching other structures: Relational structures, Graph matching, Matching by relaxation, Random graph. (Prerequisite: CSC 305, MAT 212, MAT 303)

CSC 423 Theory of Fuzzy Systems > 3 credits

Introduction to Neuro-Fuzzy and Soft Computing, Soft Computing and AI, Neural Networks, Fuzzy Set Theory, MF Formulation and Parameterization, Fuzzy Union, Intersection, and Complement, Fuzzy Rules and Fuzzy Reasoning, Fuzzy Inference Systems, Regression and Optimization, Supervised Learning Neural Networks, Neuro-Fuzzy Modeling, ANFIS, Neuro-Fuzzy Control, ANFIS Applications. (Prerequisite: CSC 305, MAT 303, MAT 212)

CSC 424 Neural Networks > 3 credits

Elementary Neurophysiology - Biological Neurons to Artificial Neurons. Adaline and the Medaline. Perceptron. Backpropagation Network. Bidirectional Associative Memories. Hopfield Networks. Counterpropagation Networks. Kohonen's Self Organizing Maps. Adaptive Resonance Theory. ART1 - ART2 - ART3. Boltzman Machines, Spatiotemporal Pattern Classifier, Neural Network models: Neocognitron, Application of Neural Networks to various disciplines. (Prerequisite: CSC 305, MAT 212, MAT 303)

CSC425 Artificial Intelligence > 3 credits

Principal ideas and development of artificial intelligence; intelligent agents; problem solving methods; search method; generation pruning and searching; knowledge and reasoning; Logic; uncertainty; probabilistic reasoning; heuristic search; puzzle solvers; expert system and data processing; simulative and cognitive process; natural language analysis and synthesis; representation design and design knowledge. (Prerequisite CSC301, CSC306, MAT212)

CSC 426 Introductions to Robotics > 3 credits

In addition to traditions rooted in mechanics and dynamics, geometrical reasoning, and artificial intelligence, the study of robot systems is growing to include many issues traditionally part of the computing sciences; distributed and adaptive control, architecture, software engineering, real-time systems, information processing and learning. In robotics, processing and its relationship to mechanical function are dependent on the target platform and the world in which it is situated. Designing an embedded computational system for sensory and motor processes requires that designers appreciate and understand all of these disciplines. This course is concerned with the design and analysis of adaptive, closed-loop physical systems. The focus will be sensory and motor systems that interpret and manipulate their environments. Toward this end, we will study mechanisms (kinematics and dynamics), actuators, sensors (with a focus on active vision), signal processing, associative memory, feedback control theory, supervised and unsupervised learning, and task planning. Interesting examples of integrated sensory, motor, and computational systems can be found in nature, so occasionally we will relate the subject matter to biological systems. Students will experiment with system identification and control, image processing, path planning, and learning on simulated platforms to reinforce the material presented in class. (Prerequisite: CSC 305, MAT 212, MAT 303)

CSC 430 Computer Networks > 3 credits

Basic concepts, categories of networks, network topologies, OSI model and TCP/IP protocol suite, TCP/IP applications, FTP, SMTP, HTTP and WWW, transport layer protocols, Internetworking devices, repeaters, bridges and routers, routing algorithms, IP addressing, sub netting, domain name systems, Network programming: Client-Server programming, socket programming, data link control protocols, LAN types and technology, MAC protocols, high speed LANs and Gigabit Ethernet, Wireless LANs, MAN, Circuit switching and Packet switching, ISDN, Frame Relay and ATM, SONET/SDH. Spectrum and bandwidth, Digital Transmission, encoding, modulations and demodulations, multiplexing: FDM, TDM and WDM, interfaces and modems, transmission media, fiber optic and wireless media, error detection techniques. (Prerequisite: CSC305, Senior Standing).

CSC 430L Labwork for CSC430 > 1 credit

CSC 432 Wireless Networking and Mobile Computing > 3 credits

Several topics related to wireless networking and mobile computing will be covered in this course. The topics include: cellular networks, multiple access protocols, channel assignment and resource allocation, mobility and location management, handoffs, routing, authentication, call admission control and QoS provisioning, network layer issues, wireless data networking (WAP, GSM, GPRS, CDMA, WCDMA), mobile ad hoc networks. (Prerequisite CSC430)

CSC 435 Computer Graphics > 3 credits

Output primitives and attributes; Line, circle and ellipse drawing algorithms; Two dimensional geometric transformation; Two dimensional viewing; Line, polygon, curve and text clipping algorithms; Parallel and perspective projections; Three dimensional object representation; Visualization of data sets; 3D transformations; Visible surface identification; Color models (RGB, YIQ, CMY, HSV); General computer animation, raster, keyframe; Graphics programming using OPENGL; Drawing 3D objects and scenes; Shading models (flat, smooth); Adding texture to faces; Adding shadows of objects; Fractals and self similarity; Random fractals; Ray tracing; Adding surface texture; Reflection and transparency. (Prerequisite: CSC 305, MAT 303)

CSC440 Computer Simulation and Modeling > 3 credits

Statistical background for simulation; system reliability; mathematical description of general dynamic systems; discrete event; discrete time and continuous time; queuing models; effects of queue disciplines; factors affecting queue systems; implementation and management of models; performance evaluation of models; simulation languages; SLAM. (Prerequisite CSC301, CSC305, MAT 212, MAT 303)

CSC445 Software Engineering > 3 credits

Introduction to the principles of software engineering. Software as product and process. Project management and planning; tracking and scheduling; risk analysis and quality assurance techniques.; configuration management. Project and process metrics, size and function oriented metrics. Software testing techniques: black box and white box techniques. Testing strategy: unit, integration and system testing.. Concepts of object-oriented, event-driven and network programming, client-server architecture, web engineering. The course focuses on taking a group development project from beginning to end. (Prerequisite CSC405)

CSC 446 Project Management > 3 credits

Overview of Project Management, Project tracking and scheduling, Risk management & analysis. Cost estimation models. Project metrics. Function Point Estimation. Software quality assurance. Program verification and validation techniques Software testing techniques, black-box and white-box techniques. Testing of various areas: unit, domain, path, equivalent class based portion, component, aggregation, testing, requirement based testing, acceptance testing. Software reuse and maintenance; Industrial practices in software engineering. ISO certification standards for software quality assurance; Software capability maturity model and its impact. The course focuses on taking a group development project from beginning to end. (Prerequisite: CSC445)

CSC 447 Business process Reengineering > 3 credits

Introduction to process centric understanding of business processes; analysis and modeling techniques of business practices as processes, analysis of processes of different categories of organizations operating both in private and public sectors; e-Governance, e-Commerce, process of generating software solutions for improving performance of business processes, process performance parameter determination and determination of optimum software features for performance improvement; ROI estimation and measurement framework determination for verification; over view of different enterprise resource planning (ERP) applications and their uses in BPR; implementation and organizational change management; process performance parameter collection and validation of ROI estimation. (Prerequisite: CSC445)

CSC 450 Cryptography and Network Security > 3 credits

Introduction; nature and types of security attacks, key based cryptography, symmetric and asymmetric key. Cryptanalysis. Fiestel cipher structure; conventional encryption algorithms, DES and triple DES. Key distribution problem. Asymmetric cryptography: public key cryptography, message authentication, hash function, RSA and Diffie-Hellman algorithms. Model for network security. Digital signature, digital certificate. Quantum cryptography. (Prerequisite: CSC430, CSC306)

CSC 455 Web Applications and Internet > 3 credits

Web Technology - OSI & TCP/IP architecture, Internet Routing, IP addressing & Domain Name System. Overview of popular browsers; HTML and Cascading Style Sheet; Understanding HTTP, HTTPS, FTP, Client and Server side scripts; Scripting: JavaScript, AJAX (Asynchronous JavaScript and XML) and jQuery libraries; Web Servers: IIS, Apache; Designing dynamic websites: ASP.NET with SQL server, PHP with My SQL; Web security: Cryptography, Digital signature, Digital Certificate, Authentication & Firewall. (Prerequisite: CSC 305, CSC 401).

CSC 460 Multimedia Systems > 3 credits

Multimedia system architecture, Text, images and graphics, audio, video and animation. Data compression, JPEG and MPEG, DVI, AVI, multimedia files standards; overview of multimedia storage and retrieval technologies. Video and Image display systems, multimedia communication and database systems, multimedia user interfaces, and applications of multimedia systems. (Prerequisite: CSC305, CSC306)

CSC 461 Advanced Database Management Systems > 3 credits

This course covers new database technology with emphasis on object orientation. The focus is mainly on the data modeling aspect. Other aspects e.g., transactions, Concurrency control, Recovery system, Database system architectures, Parallel databases, Distributed databases. (Prerequisite: CSC401)

CSC 462 Database Systems Implementation > 3 credits

Detailed examination of techniques used in the implementation of relational, object-oriented and distributed database systems. Topics are drawn from: query optimisation, transaction management, advanced file access methods, database performance tuning. (Prerequisite: CSC305, CSC306, CSC401)

CSC 463 Distributed Database Systems > 3 credits

A detailed study of advanced topics related to relational database theory, query processing and optimisation, recovery techniques, concurrency control. Crash recovery. Distributed database systems: security and integrity. Other database paradigms such as deductive and object oriented issues. Heterogeneous databases. (Prerequisite: CSC 401)

CSC 464 Data Mining and Warehousing > 3 credits

Basic concept of data mining, issues and techniques. Data warehouse and OLTP technologies for data mining, Classification of data mining techniques and models, data pre-processing, data mining primitives, query languages and system architecture, characterization and comparison. Mining association rules in large database. Cluster analysis, multidimensional analysis and descriptive mining of complex data object. Data mining in distributed heterogeneous database systems. Data mining applications and future research issues. (Prerequisite: CSC 306, CSC401)

CSC 465: E-Commerce and Web database > 3 credits

Electronic Commerce environment, modes, types; Intranet, intranet, extranet, VPN, and VAN; Security and authentication; Cryptography, key management, certificate authority, PKI, digital signature and digital certificate; Payment gateway; Electronic cash and electronic payment schemas: EDI, EFT, SWIFT. Secure transaction through credit cards and PayPal; Shopping cart; Cloud-hosting; Web database design, development and management; Integrating database with web applications, Web database security and access controls; Legal framework of e-Commerce. (Prerequisite: CSC 455)

CSC 470 Introduction to Parallel Programming > 3 credits

Parallel architectures; linear, mesh, binary, and hypercube connections; routing mechanisms; communication models; scalability and efficiency; Principles of parallel algorithm design: Design approaches, design issues, performance measurement & analysis, complexities, anomalies in parallel algorithms; parallel searching, parallel sorting, parallel graph and parallel computational algorithms; parallel programming paradigms: message passing, shared memory and multi-core parallel programming. (Prerequisite: CSC 305, CSC 306, CSC 311, MAT 303)

CSC 490 Special Topic in Computer Science > 3 credits

Selected advanced topic from the field of computer science and its applications. It may vary from time to time.

CSC 491 Advanced Topics in Application Development > 3 credits

Selected advanced topic related to different applications from the field of computer science and its applications. It may vary from time to time.

CSC 492 Entrepreneurship Development > 3 credits

CSC 498 Senior Project > 6 credits

CSC 499 Internship > 6 credits