Robert Schiaffino
Department Chair
Email: rschiaffino@iona.edu
Phone: (914) 633-2338
Schedule Codes
At the end of each course description, information is provided to indicate when the course will be scheduled. The schedule codes are the following:
F =Scheduled Fall
FS = Scheduled Fall and Spring
S =Scheduled Spring
SU = Scheduled Summer
WI = Scheduled Winter Intersession
AY = Scheduled alternate years
N =Offered when needed
Please Note: Schedules are subject to change; consult the Office of the Dean prior to registration
CS 140. Computers, Technology and Society
This course will provide students with a firm foundation
in computers and technology and enable them to
become knowledgeable, ethical and responsible users
of technology. Students will explore the various aspects
of computer systems to develop a comprehensive
understanding of how computers operate as well as
an appreciation of their pervasive influence on society.
This course will lay the basis for further study in
computer science. Not for major credit. Weekly
laboratory. Special fee required. 3 credits.
FS, SU
CS 201. Computer Science I
This course provides an introduction to problem
solving, data representation, algorithm design,
programming and application. Programs requiring a
variety of control structures and data structures will
be assigned for computer solutions. Programs of
increasing difficulty will be assigned to give students
experience with problem analysis and solution design.
Ethical and social issues relating to computing will
be discussed. Weekly laboratory. 4 credits.
FS
CS 202. Computer Science II
This course provides an introduction to advanced
programming techniques, data structuring and
encapsulation techniques. Emphasis will be placed
on problem analysis and solution design
incorporating modern design principles. The use of
these principles to achieve clarity and ease of
debugging is required in the programming
assignments. Ethical and social issues relating to
computing will be discussed. Weekly laboratory.
Prerequisite: CS 201 or equivalent. 4 credits.
FS
CS 262. Web Site Design
This course will introduce students to the
fundamental concepts of the Internet and website
development and design. An overview of the HTTP
protocol, client-server concepts, the use of mark-up
languages, the role of browsers, and web servers
will be covered. The emphasis of this course will be
on HTML and XHTML and providing the student with
a firm introduction to the use of markup tags and
CSS, with a brief introduction to client side scripting.
Students will be expected to create web pages of
increasing complexity. May not be used for major
credit. Prerequisite CS 140 or equivalent. 3 credits.
N
CS 301. Data Structures and Algorithm
Analysis
A study of abstract data types such as stacks,
queues, lists, trees and graphs, and of the design
of data structures and algorithms to implement them.
The use of these data structures to design solutions
to problems will be emphasized. Weekly laboratory.
Prerequisite: CS 202 or equivalent. Corequisite:
MTH 163 or MTH 310. 4 credits.
FS
CS 311. Computer Organization and
Assembly Language
An introduction to the architecture, organization and
logic design of digital computers. Topics include a
review of number systems, analysis and design of
basic digital components, computer architecture,
CPU organization and components, control unit and
ALU design, microcode and instruction cycle,
pipelining, RISC vs. CISC architectures,
hyperthreaded and multicore CPUs, memory
systems, cache memory design, topics in IO design,
interrupts, and assembly language programming.
The impact of compiler and operating system
technology on hardware design will be considered
throughout the course. Weekly software and
hardware laboratory. Prerequisite: CS 201. 4 credits.
S
CS 321. Database Organization and Design
This course deals with the design, implementation
and use of computer databases. Topics include
database architecture, management, design
process, models and normalization; relational and
object oriented systems; physical data organization;
data definition and data manipulation languages;
database implementation; legacy databases.
Weekly laboratory. Prerequisite: CS 301. 4 credits.
F
CS 331. Programming Languages
A study of the design and organization of higherlevel
programming languages: processing, data
types and data flow, control structures, program
units, storage management, binding strategies,
language design criteria, formal language definition.
Weekly laboratory. Prerequisite: CS 301. 4 credits.
AYF
CS 341. Simulation of Discrete and
Continuous Systems
Introduction to the analytical and computational tools
and techniques available for building simulation
models. Introduction to queuing theory; design and
validation of simulation experiments; generating
pseudorandom numbers; simulation languages.
Prerequisite: CS 301 and MTH 163 or MTH 310.
3 credits.
N
CS 361. Artificial Intelligence
Using computer algorithms and programs as tools,
and focusing on the notion of an intelligent agent,
the course will explore such topics as problemsolving
using uninformed and heuristic search,
reasoning processes and logic, machine perception,
learning and communication, and philosophical
foundations. Prerequisite: CS 301. 3 credits.
N
CS 371. Concepts of Data Communication
This course is an introduction to the analysis, design
and evaluation of data communications networks.
Topics include transmission signals, signal
encoding, multiplexing, switching, flow control, error
control, media access control, network architecture,
network protocols and network security.
Prerequisite: CS 201 or equivalent. 3 credits.
F
CS 408. Automata and Formal Languages
An introduction to the theory of computation,
emphasizing finite automata, regular languages
push-down automata/context-free languages and
grammars. Additional topics to be discussed include
an introduction to Turing Machines, computability
and unsolvability. Same as MTH 408. Prerequisites:
CS 301 and MTH 163 or MTH 310. 3 credits.
N
CS 411. Computer Architecture
This course presents a detailed study of efficient
processor design and the integration of a processor
into a computer system so that performance and
cost are optimized. Advanced processor
implementation techniques such as pipelining and
superscalar operation, hyperthreading, and multicore
CPUs, along with their cost/performance
tradeoffs are discussed. The structure and operation
of the memory hierarchy, memory design
approaches, ISO structures, and the mutual impact
of processor, compiler and operating system designs
will be considered. Prerequisite: CS 311. 3 credits.
F
CS 421. Advanced Organization and
Implementation of Database Systems
Study of problems and techniques involved in the
design and implementation of database systems.
Topics include physical design consideration,
performance analysis for database systems,
recovery techniques, reorganization problems,
logical design, query languages for relational
databases, issues in design of distributed database
systems. Prerequisite: CS 321. 3 credits.
S
CS 431. Compiler Design
Principles and techniques of language translation:
finite automata and lexical analysis, parsing of
context-free languages, symbol tables, storage
administration, error diagnosis, introductory
optimization and code generation techniques.
Prerequisites: CS 311, CS 331. 3 credits.
AY S
CS 442. Web Programming
This course will cover the creation of both static and
dynamic web pages and the use of advanced style
sheets with an introduction to server side
programming. The emphasis will be on the creation
of interactive and dynamic web pages through the
use of a scripting language. Client side validation of
data entry, security and performance issues will be
covered as well as an introduction database access.
Web-based programming assignments will be an
integral component of this course. May not be used
for major credit. Prerequisite: CS 262. 3 credits.
F
CS 443. Web Site Administration
This course will develop the techniques and
programming skills needed to run and administer a
dynamic website. The course will cover the means to
save data to and retrieve data from a data store through
a client-based dynamic web page. Students will create
dynamic web pages of increasing complexity, which
will be programmed on the server side. May not be
used for major credit. Prerequisite: CS 201. 3 credits.
S
CS 446. Computer Graphics
This course presents the fundamental components
of 3D graphics pipeline. Topics include 2-D and 3-D
geometrical transformations; raster algorithms;
hidden surface removal, projection and viewing,
lighting and shading, texture mapping and ray
tracing. This course is based on the programming
language of C/C++ and OpenGL. Prerequisites: CS
301 and MTH 163 or MTH 310. 3 credits.
N
CS 451. Operating Systems
This course presents the fundamental concepts of
the operating system technology. Topics include
design and implementation issues for modern
operating systems, operating system components
(process-, memory-, IO- management, file systems,
command interpreters, etc.), and their mutual
relations, as well as dependence on the underlying
hardware, and impact on compiler and hardware
design. Assignments include the design and
implementation of a simulation of a small operating
system. Prerequisites: CS 301, CS 311. 3 credits.
FS
CS 452 Advanced Operating Systems
The course examines the internal structure and
implementation details of one or more modern
operating systems. Various algorithms and data
structures involved in scheduling, memory
management, input-output and secondary storage
management are discussed, and their
interdependence and interaction is emphasized. The
implementation of system calls for use in system
programming and administration is also considered.
Prerequisite: CS 451. 3 credits.
S
CS 464. Parallel and Distributed Computing
The course is an introduction to Parallel and
Distributed Computing. Topics include advantages,
limitations, theory, and applications of parallel and
distributed computing, modern trends in parallel
hardware and software design, and parallel and
distributed programming. Several major projects
using parallel and distributed programming
paradigms will be assigned. Prerequisites: CS 301
and CS 311. 3 credits.
F
CS 471. Telecommunications Electronics
An introduction to the electronics of telecommunications.
Fundamental concepts and
components of analog and digital electronic systems
such as transducers, signal conditioners and data
transmission channels are covered. Topics also include
theory of signal modulation, switching, multiplexing and
transmission/reception. Prerequisites: CS 301, CS 371
and MTH 163 or MTH 310. 3 credits.
CS 476. Local Area Networks
This course is a study of LAN components and LAN
technology, including topologies, communications
media, interfacing equipment, hardware and software.
Students will be introduced to topics such as network
architecture, LAN design, LAN interconnect, network
management and LAN performance. Prerequisites:
CS 301 and CS 371. 3 credits.
AYS
CS 481. Software Engineering
This course will involve a study of the steps and
techniques necessary in the creation of large
software systems. The following techniques will be
included: object-oriented analysis and design;
coding and testing; project management; structured
system evaluation. Prerequisite: CS 321. 3 credits.
F
CS 482. Software Design and Development
Project
This course presents a formal approach to
techniques in software design and development and
provides a means for students to apply these
techniques. As part of this course, students work in
teams in the organization, management and
development of a large software project. Capstone
course. Prerequisite: CS 481. 3 credits.
S
CS 490. Independent Study
By special permission, students with an average of
"B" or better in computer science courses, and a
demonstrated ability and need, may undertake
independent work in a subject area not covered by
any of the listed courses. Their work will be under
the supervision of a member of the department.
Prerequisite: CS 301 and permission of department
chair. Open only to majors. 3 credits.
N
CS 491- 496. Special Topics
Each course will study topics of current interest in
computer science. Specific topics and additional
prerequisite will be announced in advance.
Prerequisite: CS 301. 3 credits.
N
CS 498. Internship
The course provides students with an opportunity
to work in the private or public sector, in an area
directly related to computer science. Students meet
with a designated faculty member, write reports and
give presentations on their work experience.
Prerequisite: CS 301 and a 3.0 or higher major index
and approval of the department chair. Open only to
majors. 3 credits.
S