CS Courses Short Description
CSC 001 Computer Skills and Applications (3,0,0,3)
This course is an introduction to computer skills and applications. The course will cover basic concepts of computers and application programs. Topics covered include introduction: computer hardware, software and information technology, windows, word, excel, power point, access and the internet.
Prerequisite: N/A
CSC 101 Computer Programming (1) (3,2,0,4)
This course provides an introduction to problem solving and computer programming. Topics include flowcharting, writing and executing programs, basic features of the programming language such as data types, control structures, methods, arrays and strings. Prerequisite: CSC 001
CSC 102 Computer Programming (2) (3,2,0,4)
This course provides an introduction to object-oriented programming. Topics include classes and objects: a deeper look, inheritance, polymorphism, interfaces & operator overloading, exception handling, graphical user interface concepts, strings, files and streams.
Prerequisite: CSC 101
CSC 109 Computer Ethics (1,0,0,1)
This course covers ethical issues concerning the use of computers. The course introduces topics in professional responsibility, codes of Ethics, example codes of ethics, computer security, privacy and computing, computing and intellectual property, crime and global information ethics.
Prerequisite: CSC 001
CEN 210 Logic Design (3,0,0,3)
This course is an introduction on the principles of digital design. Topics include binary systems, boolean algebra and logic gates, gate-level minimization, combinational logic, synchronous sequential logic, registers and counters, and memory and programmable logic.
Prerequisite: MATH 251
CEN 211 Logic Design Lab (0,2,0,1)
This course introduces the student to combinational and sequential circuit design and implementation. There will be ten experiments and each will comprise of a design, software simulation, and hardware implementation.
Prerequisite: CEN 210
CSC 210 Computer Organization and Assembly Language Programming (3,2,0,4)
This course covers the basics of computer organization and assembly language programming. Topics include computer abstractions, instructions, arithmetic, structure, organization, and the processor, assembly language programming for microcomputers, data types, addressing modes, instruction set, assembler operators and pseudo operator, I/O, and high-level languages and macros.
Prerequisite: CEN 210, CSC 101
CEN 312 Computer Architecture (3,0,0,3)
This course presents the principles of computer architecture and design. Topics to be covered include instruction set architectures, arithmetic logic unit design, CPU data path design, CPU pipelining, memory hierarchy, cache and virtual memory, and introduction to I/O.
Prerequisite: CSC 210
CSC 220 Data Structures and Algorithms (3,0,2,3)
This course covers the topics of data structures and algorithm design along with their respective applications. Topics will include arrays, linked lists, stacks, queues, recursion, trees, searching, sorting and applications to sorting and searching.
Prerequisite: CSC 102
CSC 321 Design and Analysis of Algorithms (3,0,2,3)
The objective of this course is to teach students methods of designing and analyzing algorithms. Specific topics include computing worst case and average case complexity for an algorithm, design techniques, dynamic programming, divide-and-conquer, greedy method, branch-and-bound, backtracking, graph traversals, minimum spanning tree, and shortest path algorithms.
Prerequisite: CSC 220
CIT 230 Internet and Web Technology (2,2,0,3)
This course is an introduction to various internet and web technologies. Topics include internet and web basics, World Wide Web, HTML, XHTML, cascading style sheets, web page design and java script.
Prerequisite: CSC 102
CSC 300 Programming Languages (3,0,0,3)
This course covers list-processing, string-processing, and other types of high-level programming languages. The course also introduces fundamental concepts of data types, control structures, operations, and programming environments of various programming languages. The course discusses the analysis, formal specification, and comparison of language features.
Prerequisite: CSC 220
CSC 410 Operating Systems (3,0,0,3)
This course will provide an introduction to operating system design and implementation. Topics covered include role and purpose of operating systems, operating-system structures, process, threads, process synchronization, cpu scheduling, deadlocks, memory management and virtual memory.
Prerequisite: CEN 312
CSC 420 Theory of Computation (3,0,2,3)
This course is an introduction to the theory of formal languages and computation. Topics include languages, regular expressions, finite automata, Transition Graphs, Kleen's theorem, regular languages, decidability, context-free grammars, pushdown automata, parsing and Turing machines.
Prerequisite: CSC 220
CSC 221 Software Engineering (3,0,2,3)
This course introduces the principles and techniques used in software engineering. Topics include introduction to software engineering, software processes, agile software development, requirements engineering, system modeling, architectural design, design and implementation, software testing and software evolution.
Prerequisite: CSC 220
CEN 330 Computer Networks (3,02,0,4)
This course is an introduction to computer networks. Topics include introduction: uses of computer networks, network hardware, network software and reference models, the physical layer, the data link layer, the medium access control sub-layer, the network layer, the transport layer, application layer of networking, transmission systems and network applications.
Prerequisite: CEN 312
CIS 340 Database Systems (3,2,0,4)
This course covers fundamentals of database architecture and systems. Topics include databases and database users, database system concepts and architecture, relational data model, the relational algebra and relational calculus, data modeling using the entity-relationship model, structured query language, functional dependency and normalization.
Prerequisite: CSC 220
CSC 450 Artificial Intelligence (2,2,2,3)
This course is an introduction to artificial intelligence (AI). Topics include history and applications, intelligent agent, solving problems by searching, constraint satisfaction, knowledge representation, reasoning, machine learning, natural language processing, perception, robotics, expert systems and real AI applications.
Prerequisite: CSC321
CSC 390 CS Field Training (0,0,0,0)
The course lasts for 8 weeks to cover the summer semester of the third year during which students will undergo a practical training at an approved private, government or semi-government agency.
Prerequisite: Department's Approval
CSC 490 CS Project (1) (1,0,0,1)
In this course, the students apply what they learn to develop a computer application, that is suggested by the student and approved by the department. Computer Science senior project-first semester, includes project proposal, feasibility studies, intellectual property, teamwork, budgets, schedule management.
Prerequisite: Department's Approval
CSC 491 CS Project (2) (1,4,0,3)
Computer Science senior project – second semester, includes teamwork, professional communications (reports & presentations), design implementation and testing.
Prerequisite: CSC490
Elective Courses
CSC 422 Numerical Methods (3,0,0,3)
This course will emphasize the development of numerical algorithms to provide solutions to common problems in science and engineering. Topics covered include number systems and errors, solution of nonlinear equations, interpolation, systems of linear equations, approximation, differentiation and integration and solution of ordinary differential equations.
Prerequisite: CSC 321
CIT 450 Human Computer Interaction (3,0,0,3)
This course provides an overview of the field of human-computer interaction. Topics include usability of interactive systems, guidelines, principles, and theories, managing design processes, evaluating interface designs, direct manipulation and virtual environments, menu selection, form fill-in, and dialog boxes, interaction devices ,documentation and online help, information searching and visualization.
Prerequisite: CSC 102
CSC 452 Computer Graphics (3,0,0,3)
This course covers the fundamentals of computer graphics. Topics include overview of graphics systems, output primitives, attributes of graphics primitives, geometric transformations, two-dimensional viewing, three-dimensional viewing, visible-surface detection methods, illumination models and surface-rendering methods, color models and color applications and computer animation.
Prerequisite: CSC321
CSC 421 Compiler Construction (3,0,0,3)
This course Introduces essential theory, algorithms, and tools used in compiler construction. Major topics include lexical, semantic, and contextual analysis of source files, syntax trees, symbol tables, code generation and optimization techniques.
Prerequisite: CSC420
CIT 453 Multimedia Systems (3,0,0,3)
This course is an introduction to multimedia systems. Topics include multimedia concepts, authoring and tools, graphics and image data representations, color in image and video, fundamental concepts in video, basics of digital audio, data compression, image compression, video and audio compression techniques and multimedia communication and retrieval.
Prerequisite: CSC 321
CIT 460 Computer and Information Security (3,0,0,3)
This course presents the principles of computer and information security. Topics covered include elements of information protection, threats to information security, techniques of protection, information security policies and standards, access control, physical security and risk analysis and introduction to cryptography.
Prerequisite: CSC 321
CSC 411 Systems Programming (3,0,0,3)
This course provides an introduction to systems programming. Topics include background, assembler functions, machine-dependent and independent assembler features, assembler design options. loader functions, machine-dependent and independent loader features, loader design options, macro processor functions, features and design and implementation examples.
Prerequisite: CSC 410
CSC 454 Machine Learning (3,0,0,3)
This course provides an introduction to machine learning. Topics include: supervised learning; unsupervised learning; learning theory; reinforcement learning and adaptive control. The course will also discuss recent applications of machine learning, such as to robotic control, data mining, autonomous navigation, bioinformatics, speech recognition, and text and web data processing.
Prerequisite: CSC 321
CSC 301 Visual Programming (2,2,0,3)
This course covers the fundamentals of visual language theory, iconic and symbolic representations, parsing techniques, semantics and pragmatics of visual languages, visual programming systems, visual querying systems, visual information systems and visual software engineering. Its applications are diverse: visual user interface, visual specifications, visual reasoning, visual database systems and multimedia computing, to name but a few.
Prerequisite: CSC 102
CSC 455 Digital Image Processing (3,0,0,3)
This course will provide mathematical foundations and practical techniques for digital manipulation of images; image acquisition; preprocessing; segmentation; Fourier domain processing; feature extraction; recognition and compression.
Prerequisite: CSC 321
CSC 423 Advanced Software Engineering (3,0,0,3)
The course will build on the knowledge and experience the student has acquired in CSC 221, Software Engineering I. It will further assist in understanding the principles and complexities regarding the software engineering life cycle of large software projects, and to experience and develop skills for working in a large group on a small to medium scale software project. Specific topics covered will include verification/validation, software quality, documentation, and maintenance.
Prerequisite: CSC 221
CIS 440 Advanced Database Systems (3,0,0,3)
Database Security and Authorization, Concepts for Object Databases, Enhanced Data Models for Advanced Applications, Distributed Databases and Client-Server Architectures, xml and Internet Databases, Data Mining Concepts, Data Warehousing and OLAP, Emerging Database Technologies and Applications.
Prerequisite: CIS 340
CSC 492 Special Topics in Computer Science (3,0,0,3)
Contemporary topics in computer science will be offered as needed.
Prerequisite: Department's Approval
CSC 424 Modeling and Simulation (3,0,0,3)
Introduction to modeling and simulation concepts. System analysis and classification. Abstract and simulation models. Continuous, discrete, and combined models. Heterogeneous models. Using Petri nets and finite automata in simulation. Pseudorandom number generation and testing. Queuing systems. Monte Carlo method. Continuous simulation, numerical methods, Modelica language. Simulation experiment control. Visualization and analysis of simulation results.
Prerequisite: STAT 311