19.03.2015 Views

academic-catalog2010.. - LAU Publications - Lebanese American ...

academic-catalog2010.. - LAU Publications - Lebanese American ...

academic-catalog2010.. - LAU Publications - Lebanese American ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Department of Computer Science and Mathematics<br />

algorithm stepwise refinement, pseudo-code,<br />

introduction to the object-oriented paradigm<br />

(abstraction, objects, classes, entity and<br />

application classes, class libraries, methods,<br />

encapsulation, class interaction, aggregation),<br />

inheritance, error types, simple testing and<br />

debugging, 1-D and 2-D arrays, basic searching,<br />

and sorting algorithms.<br />

CSC245 Objects and Data Abstraction:<br />

This course presents further techniques of<br />

object oriented programming and problem<br />

solving, with emphasis on abstraction and<br />

data structures. Topics include: object<br />

oriented concepts, such as, composition,<br />

inheritance, polymorphism, information<br />

hiding, and interfaces; basic program design<br />

and correctness, such as, abstract data<br />

types, preconditions and post conditions,<br />

assertions and loop invariants, testing, basic<br />

exception handling, and the application of<br />

algorithm design techniques. The course<br />

also covers: basic algorithmic analysis, time<br />

and space tradeoffs in algorithms, big-O<br />

notation; fundamental data structures and<br />

applications, such as, collections, single- and<br />

double-linked structures, stacks, queues, and<br />

trees; performance issues for data structures;<br />

recursion, more sorting algorithms.<br />

Prerequisite: CSC 243: Introduction to Object<br />

Oriented Programming.<br />

CSC310 Algorithms and Data Structures:<br />

This course presents the fundamental<br />

computing algorithms and data structures,<br />

with emphasis on design and analysis. Topics<br />

include the asymptotic analysis of upper<br />

and average complexity bounds, the best,<br />

the average, and the worst, case behaviors.<br />

Recurrence relations, sets, hashing and hash<br />

tables, trees and binary trees (properties,<br />

tree traversal algorithms), heaps, priority<br />

queues, and graphs (representation, depthand<br />

breadth-first traversals and applications,<br />

shortest-path algorithms, transitive closure,<br />

network flows, topological sort). The course also<br />

covers the sorting algorithms and performance<br />

analysis which include mergesort, quicksort<br />

and heapsort. As well, the course details the<br />

fundamental algorithmic strategies (divideand-conquer<br />

approach, greedy, dynamic<br />

programming, and backtracking). Introduction<br />

to NP-completeness theory.<br />

Prerequisites: CSC 245: Objects and Data Abstraction<br />

and MTH207: Discrete Structures I.<br />

CSC320 Computer Organization [3 cr.]<br />

Overview of the history of the digital computer,<br />

representation of numeric data, introduction<br />

to digital logic, logic expressions and Boolean<br />

functions, logic functions minimization.<br />

Processor and system performance,<br />

Amdahl’s law. Introduction to reconfigurable<br />

logic and special-purpose processors.<br />

Introduction to instruction set architecture,<br />

and microarchitecture. Processor structures,<br />

instruction sequencing, control flow, subroutine<br />

call and return mechanism, structure of<br />

machine-level programs, low level architectural<br />

support for high-level languages. Memory<br />

hierarchy, latency and throughput, cache<br />

memories: operating principles, replacement<br />

policies, multilevel cache, and cache coherency.<br />

Register-transfer language to describe internal<br />

operations in a computer, instruction pipelining<br />

and instruction-level parallelism (ILP), overview<br />

of superscalar architectures. Multicore and<br />

multithreaded processors.<br />

Co-requisite: CSC 245: Objects and Data<br />

Abstraction, MTH 207: Discrete Structures I.<br />

CSC323 Digital Systems Design [3-0, 3 cr.]<br />

The course introduces students to the<br />

organization, and architecture, of computer<br />

systems. Topics include the fundamental<br />

building blocks of digital logic (logic gates, flipflops,<br />

counters, registers), programmable logic<br />

devices, (logic expressions, minimization, sum of<br />

product forms), register transfer notation, finite<br />

state machines, physical considerations, data<br />

representation, numeric data representation<br />

and number bases, representation of<br />

nonnumeric data, digital circuit modeling, HDL<br />

(VHDL, Verilog), simulation of digital circuit<br />

models, synthesis of digital circuits from HDL<br />

models, and the hierarchical and modular<br />

design of digital systems (simple data paths<br />

and hardwired control unit realization) as well<br />

as the introduction to embedded systems.<br />

Prerequisite: CSC243 Introduction to Object<br />

Oriented Programming.<br />

CSC 326 Operating Systems:<br />

Introduces the fundamentals of operating<br />

systems design and implementation. Topics<br />

include operating system components; process<br />

scheduling; interprocess communication;<br />

process synchronization (semaphores and<br />

monitors); mutual exclusion problem; deadlock<br />

handling mechanisms; concurrent execution;<br />

multithreading; interrupt handling in a concurrent<br />

environment; mutual exclusion; virtual memory;<br />

page placement and replacement policies;<br />

caching; fundamental concepts of file systems.<br />

<strong>Lebanese</strong> <strong>American</strong> University | page 120

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!