academic-catalog2011.. - LAU Publications - Lebanese American ...
academic-catalog2011.. - LAU Publications - Lebanese American ...
academic-catalog2011.. - LAU Publications - Lebanese American ...
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 />
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<br />
and debugging, 1-D and 2-D arrays, basic<br />
searching, and sorting algorithms.<br />
CSC245 Objects and Data Abstraction<br />
[3-0, 3 cr.]<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 />
[3-0, 3 cr.]<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<br />
Abstraction and MTH207: Discrete Structures I.<br />
CSC320 Computer Organization [3-0, 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. Processor<br />
and system performance, Amdahl’s law.<br />
Introduction to reconfigurable logic and specialpurpose<br />
processors. Introduction to instruction<br />
set architecture, and microarchitecture. Processor<br />
structures, instruction sequencing, flow-of<br />
control, subroutine call and return mechanism,<br />
structure of machine-level programs, low level<br />
architectural support for high-level languages.<br />
Memory 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 />
CSC322 Computer Organization Lab<br />
[3-0, 1 cr.]<br />
Students gain experience with computer<br />
organization techniques by designing and<br />
implementing actual circuits using a highlevel<br />
language, Verilog HDL and FPGAs.<br />
Course culminates in the design and<br />
simulation of a complete pipelined CPU.<br />
Co-requisite: CSC 320: Computer Organization.<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<br />
of product forms), register transfer notation,<br />
finite state machines, physical considerations,<br />
data 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 />
CSC326 Operating Systems [3-0, 3 cr.]<br />
Introduces the fundamentals of operating<br />
systems design and implementation. Topics<br />
ACADEMIC CATALOG [ 2011-2012 ] SCHOOL OF ARTS AND SCIENCES<br />
113