Title |
BS LEVEL COURSES IN COMPUTER SCIENCE
|
Body |
| ICS 101: Computer Programming |
Syllabus |
(2-3-3) |
Overview of computer hardware and software; Programming in FORTRAN with emphasis on modular and structured programming technique; Problem solving and algorithm development; simple engineering and scientific problems.
Note: ICS 101 cannot be taken by ICS/SWE students.
Co-requisite: MATH 101 |
Prerequisites:
|
| ICS 102: Introduction to Computing I |
Syllabus |
(2-3-3) |
Overview of computers and computing. Introduction to a typical object-oriented programming language. Basic data types and operators. Basic object-oriented concepts. Wrapper classes. Console input/output. Logical expressions and control structures. Classes and methods. Arrays and strings. Co-requisite: MATH: 101 Calculus I or MATH 132: Applied Calculus |
Prerequisites:
|
| ICS 103: Computer Programming in C |
Syllabus |
(2-3-3) |
Overview of computer hardware and software; Programming in C with emphasis on modular and structured programming technique; Problem solving and algorithm development; Simple engineering and scientific problems.
Co-requisite: MATH: 101 Calculus I or MATH 132: Applied Calculus
Note: ICS 103 cannot be taken by ICS/SWE students. |
Prerequisites:
|
| ICS 201: Introduction to Computing II |
Syllabus |
(3-3-4) |
Advanced object-oriented programming; inheritance; polymorphism; abstract classes and interfaces, container and collection classes, packages, object-oriented design, software modeling, event-driven programming, recursion, use of stacks, queues and lists from API, searching and sorting. |
Prerequisites: ICS 102: Introduction to Computing I |
| ICS 202: Data Structures |
Syllabus |
(3-3-4) |
Review of object-oriented concepts; Introduction to design patterns; Basic algorithms analysis; Fundamental data structures - implementation strategies for stacks, queues and linked lists; Recursion; Implementation strategies for tree and graph algorithms; Hash tables; Applications of data structures (e.g. data compression and memory management). |
Prerequisites: ICS 201: Introduction to Computing II |
| ICS 233: Computer Architecture & Assembly Language |
Syllabus |
(3-3-4) |
Machine organization; Assembly language: addressing, stacks, argument passing, arithmetic operations, decisions, modularization; Input/Output Operations and Interrupts; Memory Hierarchy and Cache memory; Pipeline Design Techniques; Super-scalar architecture; Parallel Architectures. |
Prerequisites:
|
| ICS 253: Discrete Structures I |
Syllabus |
(3-0-3) |
Propositional Logic, Propositional Equivalence, Predicates and Quantifiers, Nested Quantifiers, Rules of Inference, Introduction to Proofs; Sets, Set Operations, Functions, Sequences and Summations; Mathematical Induction, Strong Induction, Recursive Definitions and Structural Induction; The Basics of Counting, The Pigeonhole Principle, Permutations and Combinations, Binomial Coefficients, Generalized Permutations and Combinations; Discrete Probability, Probability Theory; Recurrence Relations, Solving Linear Recurrence Relations, Generating Functions, Inclusion-Exclusion; Graphs and graph Models, Graph Terminology and Graph Isomorphism, Connectivity, Euler and Hamilton Paths, Planar Graphs, Graph Coloring; Introduction to Trees, Applications of Trees, Spanning Trees. |
Prerequisites: ICS 102: Introduction to Computing I |
| ICS 254: Discrete Structures II |
Syllabus |
(3-0-3) |
Number Theory: Modular Arithmetic, Integer Representation, Fermat’s Little Theorem. Chinese Remainder Theorem, RSA., Applications from Number Theory; Recursive Definitions; Algorithm Correctness; Relations: Closures and Equivalence Relations, Partial Orderings and Lattices, Hasse Diagrams; Automata Theory: Finite State Machines, Regular Expressions, DFA, NFA and their equivalence, Grammars and Chomsky Hierarchy; Abstract Algebra: Groups, Homomorphism and Lagrange's Theorem, Applications. |
Prerequisites: ICS 253: Discrete Structures I |
| ICS 309: Computing and Society |
Syllabus |
(2-0-2) |
Impact of Computing on Society; Ethical Foundations; Governance and Regulation; Freedom of Speech; Intellectual Property; Privacy; Security; Professional Responsibility; Leadership challenge. |
Prerequisites: Junior Standing |
| ICS 324: Database Systems |
Syllabus |
(3-3-4) |
Basic database concepts, conceptual data modeling, relational data model, relational theory and languages, database design, SQL, introduction to query processing and optimization, and introduction to concurrency and recovery. |
Prerequisites: ICS 202: Data Structures |
| ICS 343: Fundamentals of Computer Networks |
Syllabus |
(3-3-4) |
This course provides a comprehensive and current introduction to computer networks with focus on the functions performed at each layer of the network architecture and common layer protocol standards.
Note: This course cannot be taken for credit with COE 344. |
Prerequisites: ICS 201: Introduction to Computing II |
| ICS 350: Cooperative Work |
Syllabus |
(0-0-9) |
Beginning of Coop in summer. See course syllabus of ICS 351 for complete information. |
Prerequisites:
|
| ICS 351: Cooperative Work |
Syllabus |
(0-0-9) |
A continuous period of 28 weeks spent as a normal employee in industry, business, or government agencies with the purpose of familiarizing students with the real world of work and enabling them to integrate their classroom learning to a real work environment. During this period, a student is exposed to a real-life work in the field. Each student is required to participate with at least one project. Students are required to submit progress reports during the work period. Students are also required to give a presentation and submit a final report on their experience and the knowledge they gained during their cooperative
Eligibility Requirements: GPA above 2.0, Completion of at least 85 credit hours, Departmental Approval. |
Prerequisites:
|
| ICS 353: Design and Analysis of Algorithms |
Syllabus |
(3-0-3) |
Algorithms and Problem Solving Basic Algorithmic Analysis; Advanced Algorithmic Analysis; Advanced Data Structures Algorithms Strategies & Analysis of Fundamental Computing Algorithms; Basic Computability; The Complexity Classes P and NP. |
Prerequisites:
|
| ICS 355: Theory of Computing |
Syllabus |
(3-0-3) |
Regular Grammars: equivalence of DFA, NDFA and regular expressions, pumping lemma, emptiness and membership. Context-Free Grammars: parsing and ambiguity, normal forms, applications, equivalence of PDA's and CFG's, pumping lemma, emptiness and membership. Turing Machine: programming techniques for Turing machines, equivalence of one-tape and multitape TM's, universal Turing-machine. Undecidability: recursively enumerable and recursive languages, undecidability, problem reduction, undecidable problems of CFG's, RE's and TM's. |
Prerequisites: ICS 253: Discrete Structures I |
| ICS 381: Principles of Artificial Intelligence |
Syllabus |
(3-0-3) |
Introduction to Artificial Intelligence (AI) history and applications; First order logic; State space representation; Blind and heuristic search; Constraint satisfaction and planning; Knowledge representation; Reasoning in uncertain situations; Machine learning; Prolog programming; Natural language processing, Advanced AI applications. |
Prerequisites: ICS 253: Discrete Structures I |
| ICS 399: Summer Training |
Syllabus |
(0-0-0) |
A summer period of 8 weeks spent as a trainee in industry, business, or government agencies for the purpose of familiarizing the student with the real job world and enabling him to apply and relate his academic knowledge to a real work environment.
Eligibility Requirements: Departmental Approval. |
Prerequisites:
|
| ICS 410: Programming Languages |
Syllabus |
(3-0-3) |
Programming Paradigms: Object-oriented, imperative, functional, and logic. Application development in these paradigms. Fundamentals of Language Design: Syntax and Semantics. Language implementation: virtual machines; compilation, interpretation, and hybrid. |
Prerequisites: ICS 202: Data Structures |
| ICS 411: Senior Project |
Syllabus |
(1-6-3) |
Project-oriented course in which students work in teams on an applied real-world problem of their interest, go through its software development lifecycle in order to develop a prototype software solution for the problem at hand. The senior project offers the opportunity to integrate the knowledge acquired in preceding courses, as well as promote and instill communication skills, writing skills, and lifelong self-learning. |
Prerequisites:
|
| ICS 412: Compiler Construction Techniques |
Syllabus |
(3-0-3) |
Compiler techniques and methodology; Organization of compilers. Lexical and syntax analysis; Parsing techniques; Object code generation and optimization, detection and recovery from errors; Contrast between compilers and interpreters. |
Prerequisites: ICS 410: Programming Languages |
| ICS 415: Computer Graphics |
Syllabus |
(3-0-3) |
Applications of Computer Graphics; Graphics systems and devices; Output Primitives and their Attributes; Geometric Transformations; Window to Viewport Mapping and Clipping; Curves and Surfaces; Three-Dimensional viewing; Hidden surface removal; illumination and color models, Animation. |
Prerequisites: ICS 202: Data Structures |
| ICS 424: Advanced Database Systems |
Syllabus |
(3-0-3) |
Advanced data models: object-oriented model, and object-relational model, conceptual database design. Transaction processing: transactions, failure and recovery, and concurrency control techniques. Database backup and recovery. Query processing and optimization. Database security. Distributed databases: distributed data storage, distributed query processing, distributed transaction processing and concurrency control. Homogeneous and heterogeneous solutions, client-server architecture. XML and relational databases. Introduction to data warehousing, introduction to other current trends in database systems. |
Prerequisites: ICS 324: Database Systems |
| ICS 426: Data Warehousing and Data Mining |
Syllabus |
(3-0-3) |
Review of relational databases and Conjunctive queries, Data Warehousing Concepts and OLAP, Data Warehouse Design and Development, Information and data Integration, OLAP Technology for Data Mining. Data Mining: Primitive, Languages and Application Developments.
|
Prerequisites: ICS 324: Database Systems |
| ICS 431: Operating Systems |
Syllabus |
(3-3-4) |
This course introduces the fundamentals of operating systems design and implementation. Topics include history and evolution of operating systems; Types of operating systems; Operating system structures; Process management: processes, threads, CPU scheduling, process synchronization; Memory management and virtual memory; File systems; I/O systems; Security and protection; Distributed systems; Case studies. |
Prerequisites: ICS 233: Computer Architecture & Assembly Language |
| ICS 436: Systems and Network Administration |
Syllabus |
(2-3-3) |
Install and upgrade different popular operating systems. Managing File Systems. Managing User Accounts. Setting up X Windows System. Configuring Printing Services. Upgrading and installing software packages. Backing up data. Tuning kernel parameters. Configuring and managing various protocols: DNS, DHCP, Routing, Electronic Mail, and Network File System. Managing and troubleshooting computer systems and networks. Network and System Security. |
Prerequisites:
|
| ICS 437: Distributed System |
Syllabus |
(3-0-3) |
Introduction to Distributed Systems; Distributed Systems Architecture; Computer Networks for distributed systems; Distributed Objects and Remote Invocation; Distributed Naming; Distributed File Systems; Security; Synchronization; Distributed Coordination and Agreement; Distributed Transactions; Distributed Replication; Distributed Multimedia Systems, Distributed Shared Memory; Case Studies such as CORBA, MACH, DCOM, and GLOBE. |
Prerequisites:
|
| ICS 443: Network Design and Management |
Syllabus |
(3-0-3) |
Overview of network design and management; Design methodologies; Network management strategies; Network configuration management; Network management protocols: SNMP, and RMON; Network management tools and systems; Network management applications; Desktop and web-based network management; Network troubleshooting. |
Prerequisites: ICS 343: Fundamentals of Computer Networks |
| ICS 444: Computer and Network Security |
Syllabus |
(3-0-3) |
Introduction to computer and network security; Security services: confidentiality, integrity, availability, accountability; Hacker techniques and attack types; Public and private key encryption; Authentication; Digital signature; User identification and access control; Computer viruses, Trojans and worms; Risk management and analysis; Information security process; Internet security: security protocols such as IPSec, SSL, TLS, email and web security; Security technologies and systems: Firewalls, VPN and IDS.
Note: ICS 444 is Equivalent to SWE 421. Students can take credit for only one of them. |
Prerequisites:
|
| ICS 446: Cluster Computing |
Syllabus |
(3-0-3) |
Introduction to high performance computing: types of parallel computers, system architectures, performance measures; Message passing programming; Complexity analysis of parallel algorithms; Embarrassingly parallel computations; Partitioning and divide-and-conquer strategies; Pipelined computations; Synchronous computations; Load balancing and termination detection; Programming with shared memory; Parallel sorting algorithms; Numerical algorithms; Parallel image processing; Searching and optimization; Project/Programmingassignments. |
Prerequisites: ICS 431: Operating Systems |
| ICS 447: Computer Network Technologies |
Syllabus |
(3-0-3) |
Various advanced topics on LANs and internetworking technologies will be addressed. Topics include: Performance measures and evaluation techniques; Advanced network architectures and differentiated services in IP networks; Switched, Fast and Gigabit Ethernet; VLANs; Wireless LANs; ISDN and ATM; Frame Relay; Mobile computing and mobile IP; VPN and Enterprise networks; Emerging network trends and technologies. |
Prerequisites:
|
| ICS 454: Principles of Cryptography |
Syllabus |
(3-0-3) |
|
Classical cryptography; Secret Key Encryption; Perfect Secrecy. Cryptanalysis; Block and Stream cipher; Data Encryption Standard (DES) and Advanced Encryption Standard (AES); Public Key Encryption; Diffie-Hellman Key Exchange; RSA, ElGamal and Rabin’s Cryptosystems; Authentication and Digital Signatures; One-time signatures; Randomized Encryption; Rabin and ElGamal signature schemes; Digital Signature Standard (DSS)' Cryptographically Secure Hashing; Message Authentication Codes; Network Security; Secure Socket Layer (SSL); IPsec.
|
Prerequisites:
|
| ICS 481: Artificial Neural Networks |
Syllabus |
(3-0-3) |
Introduction to neural computing: Real vs. artificial neurons; Threshold logic; Training a linear threshold unit, the perceptron rule; Multilayer feed-forward networks and the back propagation algorithm; The Hopfield net; Self-organizing maps; Radial basis functions; Adaptive resonance theory; Applications of Neural Networks (ANN). |
Prerequisites: Senior Standing |
| ICS 482: Natural Language Processing |
Syllabus |
(3-0-3) |
This course examines a range of issues concerning computer systems that can process human languages. Among the issues to be discussed are morphological and syntactic processing, semantic interpretation, discourse processing and knowledge representation |
Prerequisites: Senior Standing |
| ICS 483: Computer Vision |
Syllabus |
(3-0-3) |
Image acquisition, The digital image and its properties, Image preprocessing, Segmentation (thresholding, edge- and region-based segmentation), Shap representation and object recognition, Motion analysis, Case studies (object recognition / object tracking).
Note: ICS 483 cannot be taken for credit with COE 487 or EE 410 |
Prerequisites: Senior Standing |
| ICS 484: Arabic Computing |
Syllabus |
(3-0-3) |
This course examines a range of issues concerning computer concepts related to Arabic. Among the issues to be discussed are: Arabic Language Characteristics, Arabic Character Sets, Standardization, Unicode, Arabization systems, Arabic software tools, Arabic programming languages and Introduction to Arabic Computations. |
Prerequisites: Senior Standing |
| ICS 485: Machine Learning |
Syllabus |
(3-0-3) |
Introduction to machine learning; Concept learning; Supervised learning - decision tree learning; Unsupervised learning - clustering. Artificial neural networks. Evaluating hypotheses; Bayesian learning; Computational learning theory; Instance based learning. Genetic algorithms; Learning sets of rules - Inductive Logic Programming; Reinforcement learning; Analytical learning; |
Prerequisites: Senior Standing |
| ICS 486: Multi-Agent Systems |
Syllabus |
(3-0-3) |
Agents, agent definitions and classification; Multi-agent systems (MAS) and their characteristics; Models of agency, architectures and languages, logics for MAS, deductive and practical reasoning agent, reactive and hybrid agents; Distributed problem solving and planning; Coordination mechanisms and strategies; Learning in MAS; Interaction, negotiation and coalition formation; Applications of agent technology (agents in electronic commerce and information retrieval. |
Prerequisites: ICS 381: Principles of Artificial Intelligence |
| ICS 488: Soft Computing |
Syllabus |
(3-0-3) |
Introduction to Soft Computing, Fuzzy Sets Theory, Fuzzy Logic, Artificial Neural Networks, Probabilistic Reasoning, Genetic Algorithms, Neuro-Fuzzy Technology, Combination of Genetic Algorithms with Neural Networks, Combination of Genetic Algorithms and Fuzzy Logic, Applications of Soft Computing (three to four real life applications). |
Prerequisites:
|
| ICS 490: Special Topics I |
Syllabus |
(3-0-3) |
State-of-the-art topics in Computer Science and Information Systems. |
Prerequisites: Senior Standing |
| ICS 491: Special Topics II |
Syllabus |
(3-0-3) |
State-of-the-art topics in Computer Science and Information Systems. |
Prerequisites: Senior Standing |
|
Attachments
|
|
 |
|
|
|