Course Description of Major in Computer Science |
||
CSC 101 Introduction to Computer Science (3 credits): An introduction to different concepts and scope of computer science. Introduction to programming using a high level structured language. Discussion of programming contrast and data representation. Topics include algorithm, data and program construction, Conditional statements, loops, procedures, function, variable, constants, arrays and strings, pointers. Primary emphasis is given to problem solving, algorithm design and program development. Programming Languages C, C++. |
||
CSC 201 Discrete Mathematics (3 credits): Advanced counting techniques: generating functions of sequences, recurrence relations, solving recurrence relations by substitution and generating functions, method of characteristic roots, solution of inhomogeneous recurrence relations. Algebraic structures: semigroups and monoids, groups, subgroups and homomorphisms, cosets and Lagrange's theorem, normal subgroups, rings and fields, lattices and Boolean algebra. Coding and channels: optimal coding, Huffman's algorithm for constructing an optimal code. Faneaux algorithm. Introduction to graphs. (Prerequisite: CSC 101, MAT 103) |
||
CSC 203 Data Structures (3 credits): Elementary data objects; elementary data structures, internal data representation, abstract data types, recursive data structures, arrays, lists, stacks, queues, graphs, trees. (Prerequisite: CSC 101) |
||
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. (Prerequisite: PHY 102) |
||
CSC 204L Labwork for CSC 204L |
||
CSC 205 Concepts in Programming (3 credits): A course in advanced programming with data structures and algorithm design. The emphasis is increasingly on structured design techniques and program development. Topics include programming. design techniques, advanced language features, pointers an dynamic allocation, implementation of data structures; recursion, programming of sorting and searching algorithms; low level programming in C; data file handling. Introduction to data abstraction and basic concepts of object-oriented programming. (Prerequisite: CSC 101, CSC 203) |
||
CSC 204L Labwork for CSC 205L |
||
CSC 212 Microprocessor and Assembly Language (3 credits): Organization of a computer; introduction to 80X86 family of microprocessors; jump instruction; address and instructions, assembling, linking and running programs; debugging programs; controlling program development; addressing models; instructions encoding and assemblers; I/O programming; interrupts, interrupt controllers, device drivers. Overview of Pentium processors. Assembly language fundamentals: symbolic constants, arithmetic instructions, jump and looping, conditional jumps, macro techniques. (Prerequisite: CSC 204) |
||
CSC 301 Finite Automata and Computability (3 credits): Basic notions: string, prefix, suffix, substring, concatenation; Formal languages and operations; Kleene closure, Context-free and context-sensitive grammar. Deterministic and non-deterministic Finite state machines (FSM); Stack and pushdown automata. Polish notation and stack. Bottom-up and top-down parsing. Parse tree constructions: LL-grammars and LR grammars. Computability and non-computable functions. Goedel numbering. Composition and recursion. Primitive recursive functions. Minimization and partial recursion. Turing machine. Equivalence of the sets of TM programs and partial recursive functions. (Prerequisite:, CSC201, CSC 203) |
||
CSC 305 Object-oriented Programming I (3 credits): Objects and classes; class specifiers and definition of objects; constructors and destructor. Abstract Data Structures, Friend functions; function and operator overloading; inheritance, reusability, virtual functions polymorphism; exception handling. Object oriented Programming Languages C++, Java.. (Prerequisite: CSC 205) |
||
CSC 305L Lab work for CSC 305 (1 credit) |
||
CSC 306 Algorithm (3 credits): Fundamentals of algorithms, sorting algorithm: heapsort, quicksort, bucket sorting; searching algorithm, binary search tree;, divide and conquer, hashing, recursion storage allocation, garbage collection and compaction, geometric algorithms, graph algorithms, analysis of algorithms, NP completeness. (Prerequisite: CSC 201, CSC 205) |
||
CSC 306L Lab work for CSC 306 ( 1 credit) |
||
CSC 311 Computer Organization and Architecture (3 credits): Computer system: computer structures, components, functions, memory, I/O devices, modules, programmed and interrupt driven I/I, I/O channels and processors, interfaces, central processing unit: arithmetic/logic unit, instruction-sets, addressing modes, CPU, processor and register organizations, control units and parallel organizations, ; interrupts, interrupt controllers, device drivers. (Prerequisite: CSC 204, CSC 212) |
||
CSC 401 Database Management (3 credits): Conventional and database approaches. Basic concepts. Hierarchical, network and relational data models. Entity-relationship modeling. Relational database designing: decomposition and normalization; functional dependencies. Relational algebra and calculus. structured query language (SQL). Query optimisation. Database programming with SQL and PL/SQL. Database security and administration. Distributed databases. Object-oriented data modeling. Specific database systems: Oracle, Access. (Prerequisite: CSC 203) |
||
CSC 401L Lab work for CSC 401 ( 1 credit) |
||
CSC 405 MIS and Systems Analysis (3 credits): Information attributes. Management Information System: subsystems. Information system components and design factors. Systems and models; Systems analysis: systems development life cycle models. Feasibility analysis, Structured analysis; systems prototyping. Tools for determining system requirements; data flow diagrams; decision table and decision trees;. system design and implementation: application architecture, user interface design. Front-end and backend, database design, software management and hardware selection. Object oriented analysis: use-case modeling, Unified Modeling Language. Case Studies of Information Systems. (Prerequisite: CSC 401) |
||
CSC 411 Compiler Construction (3 credits): Fundamental of compilers and interpreters for ALGOL derivative languages; scanning theory and practices; grammar and parsing; semantic processing; symbol tables; run-time storage organization; processing declaration; processing expression and data structures; translating procedures and functions; attribute grammar and multi-pass translation; lexical analysis; syntax analysis; semantic analysis. Code generation and local optimisation; global optimisation. (Prerequisite: CSC 305, CSC 301) |
||
CSC 415 Object-oriented Programming II (3 credits): Polymorphism and Virtual Functions, standard library templates, Object oriented programming and Windows architecture, API, Multithreaded Programming, Foundation Class Library and Wizards, GUI Programming tools. Applications of OOP in database designing, networking and multimedia. (Prerequisite: CSC 305) |
||
CSC 420 Image Processing and Pattern Recognition (3 credits): Digital image representation: acquisition, storage and display systems; sampling and quantization: uniform and non-uniform sampling; image geometry: perspective transformation, synthetic camera approach, stereo imaging; image transforms: fast Fourier transform, discrete Fourier transform, sine/cosine transform; image enhancement; spatial and frequency domains; smoothing and sharpening; gray-level binary images: thresholding, half-toning; image restoration: degradation model; constrained and unconstrained restoration; inverse filtering; Wiener filtering; image compression: source encoding/decoding, channel encoding/decoding. (Prerequisite: CSC 203, MAT 251, MAT 303, Senior standing) |
||
CSC 425 Artificial Intelligence (3 credits): Principal ideas and development of artificial intelligence; theorem proving; problem solving methods; search space; generation pruning and searching; knowledge representation techniques; heuristic search; puzzle solvers; expert system and data processing; simulative and cognitive process; natural language analysis and synthesis; representation design and design knowledge; (Prerequisite: Senior standing). |
||
CSC 430 Data Communication and Networking (3 Credits): Basic concepts, categories of networks, network topologies, OSI model and TCP/IP protocol suite, spectrum and bandwidth, encoding, modulations, interfaces and modems, transmission media, fiber optic and wireless media, multiplexing, error detection techniques, 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, Internetworking devices, repeaters, bridges and routers, routing algorithms, transport layer protocols, IP addressing, sub netting, domain name systems, TCP/IP applications, FTP, SMTP, HTTP and World Wide Web. (Prerequisite: Senior standing). |
||
CSC 430L Lab work for CSC 430 (1 credit) |
||
CSC 435 Computer Graphics (3 credits): Graphics devices; graphics coordinate systems; programming tools for graphics; lines and curves; turtle graphics; elementary clipping: Cohen-Sutherland algorithm; generating curves in two dimension; elementary ray-tracing; drawing objects in two dimension; transformation of pictures; affine transformation; elementary three-dimensional object modeling; orthographic and perspective projections. (Prerequisite: CSC 205, MAT 303, and senior standing) |
||
CSC 440 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 CSC 205, CSC 301, MAT 211, MAT 303, Senior Standing) |
||
CSC 445 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: CSC 405, CSC 415, Senior Standing) |
||
CSC 450 Computer and Network Security (3 Credits): Introduction; nature and types of security attacks, model for network security, Fiestel cipher structure; conventional encryption algorithms, DES and triple DES, public key cryptography, message authentication, hash function, RSA and Diffie-Hellman algorithms, digital signature, digital certificate, key distribution, system security, intrusion and password protection, intrusion detection system, viruses, worms and anti-virus techniques, firewall architecture and design, trusted system, network security, Kerberos, X.50g, e-mail security, PGP and S/MIME, IP Security architecture, secure socket layer, secure electronic transaction, network management security and SNMP, JAVA security, CGI security, security features of windows NT, UNIX and LINUX. (Prerequisite: CSC 430 and Senior Standing) |
||
CSC 455 Web Applications and Internet ( 3 credits): Web Technology - OSI & TCP/IP architecture, Internet Routing, IP addressing & Domain Name System. World Wide Web - overview of popular browsers; Anatomy of Web presentations. Designing HTML files- Mark up tags, hypertext linking, Images & graphics, Tables, Forms, Multimedia. Scripting languages- JavaScript, CGI. DHTML: Cascading Style Sheet, scripting. Web Servers - IIS, PWS, Apache. Understanding HTTP, Client and Server side scripts. Concept of designing dynamic Web pages: ASP, PHP, with MS Access, SQL server. Working with remote data services - using ASP, PHP technologies with MySQL and Oracle database. Web security: Cryptography, Digital signature, Digital Certificate, Authentication & Firewall. (Prerequisite: CSC 305, CSC 401,Senior Standing) |
||
CSC 460 Multimedia Systems (3credits): 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: CSC 205, CSC 306, Senior Standing) |
||
CSC 465: E-Commerce and Web database (3 credits): Electronic Commerce environment - Modes of Web based business. Networking overview, Intranet, Intranet, Extranet, VPN, and VAN. Security and authentication. Cryptography and key management. Digital Signature and Digital certificate. Electronic Cash and Electronic Payment schemas: EDI, EFT, payment and purchase order process, online electronic cash, CyberCash, Ecash. Master/visa Secure Electronic Transaction. Internet architecture and services- ISP connectivity methodologies, Web applications, Web servers and Web browses, Overview of Web database design development and management. Three-tier client-server Web DBMS architecture, Integrating database with Internet, Web database security and access controls. (Prerequisite: CSC 401, Senior Standing) |
||
CSC 470 Introduction to Parallel Programming (3 credits): Parallel architectures; linear, mesh, binary, and hypercube connections; routing mechanisms; communication models; scalability; parallel algorithms; searching, sorting, matrix algorithms; parallel programming; message passing paradigm; shared memory paradigm. (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 495 Independent Study (1-6 credits) |
||
CSC 498 Senior Project (6 credits) |
||
CSC 499 Internship (6 credits) |
||
Course Description of Minor in Computational Mathematics |
||
MAT 101 Basic University Mathematics (3 credits): Review of sets. Number system. Algebra of complex numbers. Matrices, definition, addition and multiplication of matrices. Systems of linear equations and matrices, Gaussian elimination, reduction to echelon form, and their properties, inverses and determinants, solution of linear systems. Plane analytic geometry: Review of conic sections, transformation of coordinates, second-degree equations, polar coordinates and parametric equations. Concepts of three-dimensional geometry. Functions and graphs. Limits and continuity. Tangent lines and rates of change, the derivative and techniques of differentiation, derivatives of algebraic, trigonometric; inverse trigonometric, logarithmic and exponential functions. Antiderivatives and indefinite integral, integration by substitution, integration by parts, integration of rational functions, integration using tables. |
||
MAT 103 Mathematical Foundation of Computer Science (3 credits): Logic of compound statements, logic of quantified statements, valid and invalid arguments, methods of proofs, mathematical induction; review of sets, Cartesian products and relations, equivalence relations, matrices of relations, partial order relations, fuzzy sets and relations.; algebra of functions, one-one and onto functions, bijections and inverse functions, finite and infinite sets, countable and uncountable sets, growth of functions; basics of counting, permutations and combinations, binomial and multinomial theorems, principle of inclusion-exclusion; construction of simple algorithms, pseudo-codes and flowcharts, recursive algorithms, complexity of algorithms. correctness of algorithms; number theory: integers, divisibility, Euclidean algorithm, prime factorization, congruence, fields Up. (Prerequisite: CSC 101, MAT 101) |
||
MAT 201 Calculus I (3 credits): Functions (and their visualization. limits, derivatives . and integrals. Successive differentiation. Additional techniques of integration. Interpretations of the derivative, applications of the derivative to geometry, mechanics, marginality and optimization. Newton's method. Introduction to modeling. Definite integral, interpretations and properties of the definite integral, applications of the definite integral to geometry, mechanics, economics and modeling. Approximating definite integral, approximation errors and Simpson's rule, improper integrals. Taylor polynomials and series, convergence of series, finding and using Taylor's series, indeterminate forms, Fourier series. First order differential equations: Slope fields, Euler's method, separation of variables, linear equations, applications and modeling. (Prerequisite: MAT 101 or equivalent) |
||
MAT 212 Probability and Statistics for Science and Eingineering (3 credits): Preliminary concepts,; types' of data; histograms and frequency distributions; univariate methods; measurement of central tendency and central dispersion; mean, median and mode; standard deviation and other methods; concepts of probability; events and space;. Simple, compound and complementary events; conditional probability; discrete and continuous distributions; sampling and estimation; bivariate methods; linear regression, least square approach, covariance and correlation coefficient. (Prerequisite MAT 101 or equivalent) |
||
MAT 251 Calculus II (3 credits): Calculus of vector functions, change of parameter, arc length, unit tangent and normal vectors, curvature, motion along a curve. Functions of several variables, visualization, limits and continuity, partial derivatives, differentiability and chain rules, Jacobians, tangent planes, total differentials, exact differential equations, directional derivatives and gradients, optimization. Double and triple integrals, change of variables, double integrals in polar coordinates, triple integrals in cylindrical and spherical polar coordinates, surface area and volumes. Vector calculus: Vector fields, divergence and curl, line integrals, independence of paths, conservative vector fields, Green's theorem, surface integrals, divergence and Stokes' theorems. (Prerequisite: MAT 212 and MAT 201) |
||
MAT 303 Linear Algebra and Differential Equations (3 credits): Systems of linear equations and matrices, vector spaces and subspaces, I inear dependence and independence, dimensions and bases; linear transformations and matrices, eigenvalues and eigenvectors, changes of coordinates, orthogonality, diagonalization. First order ordinary differential equations (existence and uniqueness of solutions, solution techniques, direction fields and stability, modeling applications). Second and higher order linear equations (existence and uniqueness, fundamental set of solutions of homogeneous equations, Wronskian, reduction of order, equations with constant coefficients, method of undetermined coefficients, method of variation of parameters, solutions in series, Laplace transform method, modeling applications). Systems of linear differential equations (existence and uniqueness of solutions, eigenvalue method for homogeneous systems, method of variation of parameters for systems, Laplace transform method for systems, modeling applications). Introduction to nonlinear systems. (Prerequisite: MAT 251) |
||
MAT 401 Graph Theories (3 credits): Graphs and subgraphs, trees, connectivity, Eule tours and Hamjlton cycles, matchings, graph colorings, plana graphs and Euler's formula, directed graphs, network flows, counting arguments, graph algorithms. (Prerequisite: MAT 103, MAT 251) |
||
MAT 401 Graph Theories (3 credits): Graphs and subgraphs, trees, connectivity, Eule tours and Hamjlton cycles, matchings, graph colorings, plana graphs and Euler's formula, directed graphs, network flows, counting arguments, graph algorithms. (Prerequisite: MAT 103, MAT 251) |
||
MAT 403 Introduction to Mathematical Modeling (3 credits): An introduction to techniques of mathematical modeling involved in the analysis of meaningful and practical problems in many disciplines including mathematical sciences, operations research, engineering and the management and life sciences. Students will be encouraged to recognize and formulate problems in mathematical terms, solve the resulting mathematical problems and interpret the solution in real terms. (Prerequisite: MAT 303 and. Permission of the instructor) |
||
MAT 405 Optimization Techniques (3 credits): Discrete, deterministic models of interest to social sciences. Linear programming, duality, simplex method, sensitivity analysis, convex sets. Selections from assignment, transportation, network flow, nonlinear programming problems. (Prerequisite: MAT 303) |
||
MAT 410 Numerical Methods (3 credits): Numbers and errors: Floating point number representation inside a computer; floating point computation; accuracy and precisIon; round-off errors and truncation errors; error propagation. Roots of equations: bracketing method; bisection method; false position method; Newton-Raphson method. System of linear equations: Gaussian elimination; partial and complete pivoting; LV decomposition method; iterative techniques; tridiagonal and sparse systems. Interpolation: Newton's divided difference technique; Spline interpolation; Fourier approximation. Numerical integration: Rectangular and trapezoidal rule; Simpson's rule with equal and unequal segments; Spline quadrature; adaptive quadrature routines. Ordinary differential equation: Solution of first order differential equations; Euler method, Runge-Kutta method; adaptive Runge-Kutta method; general method fOT system of initial value problem. (Prerequisite: CSC 305, MAT 303) |
||
MAT 420 Computational Geometry (3 credits): Polygon triangulation; Polygon partitioning; Convex hull in two and three dimensions; Voronoi diagrams; Combinatorics; Sweep algorithms; Polygon intersection; Robot motion planning. (Prerequisite: CSC 305, Senior standing) |
||
MAT 430 Introduction to Discrete Dynamical Systems (3 credits): Iterations, orbits, graphical analysis, fixed and periodic points, bifurcations, the quadratic family, transition to chaos, iteration of two-dimensional maps, complex dynamics, Julia set, introduction to fractals. (Prerequisite: MAT 303, Senior Standing) |
||