Physical, Environmental, Computer Science
The Computer Science Program
"Time, Effort, Integrity"
William C. Harris, Program Coordinator
Tel. 718.270.6449 / Office: C-413

Computer Science Course Descriptions


CS 100 Internet and Web Technologies

3 credits 3 class hours

This course provides students with practical knowledge about computer hardware and software, and a basic understanding of the underlying telecommunications technology of the Internet. Students learn to navigate and search the Internet, while exploring numerous research-related web sites using E-mail, FTP, WAIS and Telnet services. After exploring and using HTML to create Web pages, JavaScript is introduced and used for developing client-side applications for Web browsers. These markup and script languages are used to introduce computer programming fundamentals. Students produce a publishable home page or other Web document as their final course project.

Corequisite: MTH 138 (or, higher) 

 

CS 151 Introduction to Computing

3 credits 3 class hours 1 lab hour

This course introduces the fundamental concepts of the discipline of computing, emphasizing elementary facts concerning computer architecture, programming languages, software methodology, and algorithms. Students learn how to solve problems using an appropriate block-structure high-level programming language. Programming topics include: basic data structures, control structures, data and procedure abstractions, functions and function parameters, recursion, pointers, classes and file processing.

Corequisite: MTH 151 Precalculus

 

CS 241 Discrete Structures

3 credits 3 class hours 1 lab hour

The objective of this course is to introduce the elements of discrete mathematics systems pertinent to the field of computer science. Through computer programming examples, exercises and case studies, students are taught the following mathematical concepts: sets and binary relations, functions, first-order logic, proof techniques, algebraic systems, graph theory, vectors and matrices, elementary probability theory, combinatorial computing and counting arguments. Definitions and analysis of algorithms are also introduced.

Prerequisite: CS 151

 

CS 244 Object Oriented Programming and Design

3 credits 3 class hours 1 lab hour This course presents an object-oriented approach to software development used in large-scale programming projects. A software engineering methodology, such as the Unified Modeling Language (UML), will be used for object, dynamic, and functional modeling. Students learn how to implement a system using an appropriate object-oriented programming language. Programming topics include: Classes and data abstraction, operator overloading, inheritance, virtual functions and polymorphisms, templates, exception handling, and class libraries including GUI applications.

Prerequisite: CS 151

 

CS 246 Data Structures and Algorithms

3 credits 3 class hours 1 lab hour

This course introduces the different ways that data is organized and stored in computer memory and the relevant procedures used in the manipulation of that data. The idea of abstract data types (ADTs) is first introduced, and then reinforced through the characterization of fundamental data structures in the discipline - stacks, queues, and trees. Other topics are recursive algorithms, dynamic storage, and complexity. Algorithms for searching and sorting are also implemented.

Prerequisite: CS 244

 

CS 252 Assembly Language and Architecture

3 credits 3 class hours 1 lab hour

In assembly language and architecture, students are exposed to the register level architecture of a modern processor and gain experience programming in the assembly language for that processor. ALU, memories, and interfaces are covered. Emphasis is placed on machine language, instruction formats and executions, addressing and indexing, computation and control instructions, and digital representation of data. Program segmentation, linkage, subroutine calling conventions, and floating-point operations are also discussed.

Prerequisites: CS 244

 

CS 260 Digital Systems

4 credits 3 class hours 3 lab hours

This course presents the theoretical principles and mathematical techniques involved in the hardware design of digital systems. Topics include: number systems and codes, Boolean algebra, Boolean functions, canonical forms, logic gate realization, universal gates, combinational and sequential circuits, and minimization of functions using Karnaugh maps, the Quine-McCluskey method and basic computer organization. Interactive circuit design software is used for laboratory experiments.

Prerequisite: CS 252

 

CS 265 UNIX Systems Programming

3 credits 3 class hours 1 lab hour

This course provides an in-depth study in the programming of UNIX systems. Topics include: UNIX commands, the UNIX File System and its related structures, Editors, the UNIX Command Interpreter, System Administration, Shell Programming, UNIX Applications Operating Environments, communicating and networking through UNIX. Prerequisite: CS 244 CS 278 Robot Programming 3 credits 3 class hours 1 lab hour This course provides a hands-on introduction to programming machines that interact with the real world using sensors, actuators, and limited computational resources. Physical robots are programmed to demonstrate "artificially intelligent" behavior by using sensors to watch for and react to changes in the physical world. A Survey of salient characteristics, including definition and structure, and specification of syntax and semantics, for graphical, text-based, object-oriented, and query robot programming languages is covered. Web-based distance-learning tools are used to introduce robot fundamentals and verify programs.

Prerequisites: CS 246

 

CS 280 Artificial Intelligence

3 credits 3 class hours 1 lab hour

This course examines the ideas and techniques underlying the design of intelligent computer systems. Topics include knowledge representation, heuristic versus algorithmic search methods, problem solving, game playing, logical inference, planning, reasoning under uncertainty, expert systems, learning, perception, natural language understanding, and intelligent agents. A functional programming language appropriate to Artificial Intelligence will be introduced.

Prerequisite: CS 246 and MTH 202  

 

CS 300 Theoretical Computer Science

3 credits 4 class hours

This course focuses on fundamental issues of Computer Science Theory, Automata and Formal Language Theory, and the Theory of Computational Complexity. Topics include formal languages, finite state automata, pushdown automata, Turing machines and the languages they recognize. This course also examines computability by recursive functions, Church's Thesis, undecidability, the classes P and NP, NP-complete problems and intractable problems.

Prerequisite: CS 260

 

CS 301 Software Development

3 credits 2 class hours 2 lab hours

This course provides an implementation-oriented introduction to the software-development techniques used to create medium-scale interactive applications. The capabilities of the Java programming language and its runtime environment are covered . Topics include: navigating the Java class libraries, imperative and object-oriented programming, exception handling, event handling, concurrency, multithreading, collections, graphics, GUI programming and frame layout, applets , and input/output and networking with Java .

Prerequisite: CS 246

 

CS 305/TLC 305 Data Communications and Web Technologies

3 credits 4 class hours

This course is designed to provide the students with a fundamental technical and practical background in data communications with the context of network technologies. Topics include fundamental concepts of data communications; data transfer modes; the OSI model; transmission mediums and the physical layers; modems and modem standards; local area networks (LANs) and wide area networks (WANs); communications standards including communications codes, application support protocols, and network architecture; and intranet/Internet routers.

Prerequisite: CS 246 and TLC 221

 

CS 307/TLC 307 Local and Wide Area Networks

3 credits 2 class hours 2 lab hours

This course covers computer network analysis and design and its applications. A variety of network topologies for centralized, decentralized and distributed networks will be discussed. Topics include LAN fundamentals, evaluating LAN cabling systems, switching techniques, routing algorithms, flow control, survey and comparison of existing commercial Local Area Networks. Students will learn to configure, install, operate, troubleshoot and administer networks.

Corequisite: CS 305/TLC 305

 

CS 309/TLC 309 Network Programming

3 credits 2 class hours 2 lab hours

This course focuses on interconnecting Local Area Networks (LAN) into larger private and public networks including Enterprise and Wide Area Networks (WAN). Topics include network programming with Sockets, TCP/IP protocol stack, server side/client side applications programming. Students will have the opportunity to take Microsoft, Novell and Netscape examinations towards certification as Web Masters.

Prerequisite: CS 305/TLC 305

 

CS 310 Special Topics in Computer Science

3 credits 3 class hours Course Description: Courses on contemporary topics in computer science to be offered according to the latest developments in the field and the needs of the students. Students are taught the underlying principles of analysis, design, and implementational issues involved in computing. Several examples and applications are used to illustrate the theory and concepts covered. A detailed description for each special topic offering may be obtained in the Department office prior to registration. Students are also required to submit a research paper on an approved topic.

Prerequisites: CS 246, and Permission of the Chair or Coordinator of Computer Science.

 

CS 312 Analysis of Algorithms

3 credits 4 class hours

This course covers measuring algorithmic complexity (O-Notation); searching and sorting algorithms and their complexity; tree and graph algorithms and their complexity; classes of algorithms, such as divide-and-conquer, backtracking, greedy, probabilistic, etc. Computational complexity; the classes P and NP.

Prerequisites: CS 246

 

CS 315 Operating Systems

3 credits 4 class hours

This course is an introduction to operating systems. Topics include task management and scheduling, process and data management, resource allocation, interrupts, time sharing, concurrent processing, linear and tree-structured address space, resource allocation for multiprogramming, and queuing and network control policies. This course includes several detail case studies that cover today's most widely used single-user, multi-user, and network operating systems.

Prerequisite: CS 246

 

CS 319 / ENVS 319 Geographical Information Systems

3 credits 3 class hours 1 lab hour

This course examines the automated systems for the capture, storage, retrieval, analysis and display of spatial data.  Topics include automated geography, spatial analysis, map as model, GIS data structures, GIS data input, storage and editing, classification, statistical surfaces, spatial arrangements, cartographic modeling, output from analysis, and GIS design and implementation.

Prerequisite: CS 151

 

CS 321 Remote Sensing - Computer Methods for Satellite Data Analysis

3 credits 2 class hours 2 lab hours

This course emphasizes the scientific principles of satellite data analysis and efficiency of computer methods for carrying out this analysis and convert raw data into meaningful physical quantities.  Topics include: concepts and systems, electromagnetic energy, photographs from aircraft and satellite, remote sensing in the visible and IR spectrum, active and passive remote sensing, thermal IR images, Earth resources, image processing and interpretation, meteorological, oceanographical and environmental applications, and monitoring natural hazards, geographic information system and overview of scatterometry.  Course includes Hands-on demonstrations and data analysis of satellite data.

Prerequisite: CS 151

 

CS 325 Computer Architecture

3 credits 4 class hours

Topics include instruction formats and addressing schemes, arithmetic and logic unit design, control unit design, main memory technology, virtual, high speed, associate and read only memories, programmable logic arrays, computer organization including stack, parallel and pipeline, and system structures: time sharing, multiprocessing and networking. Prerequisite: CS 260 CS 345 Scientific Programming I – Data Analysis 3 credits 4 class hours This course is an introduction to numerical algorithms for scientific computation. It covers basic concepts of numerical error, interpolation, quadrature, vectors and matrices, solution of linear systems of equations, non-linear equations. Computer implementation aspects are also investigated. Student programming applications will involve real-world datasets from NASA missions, EPA and NOAA using C++ and Java. Prerequisites: CS 246 CS 350 Programming Language Paradigms 3 credits 3 class hours 1 lab hour This course provides an overview of the key paradigms used in modern programming languages and illustrates those paradigms with several programming languages. It also provides sufficient formal theory to demonstrate the role of programming language design in the context of the general computer science research agenda. Prerequisite: CS 246 CS 360 Software Engineering 3 credits 3 class hours 1 lab hour This course introduces students to the phases, methodologies and tools involved in the software production process. Topics include the software life cycle, specifications and design, quality assurance and testing, maintenance as well as related economic aspects in the production of software. Students are also introduced to design and documentation tools utilized by software engineers and issues related to portability and reusability. The course is also an introduction to technical writing.

Prerequisite: CS 246

 

CS 381 Database Systems

3 credits 3 class hours 1 lab hour

This course provides the basis for a solid education in the fundamentals of database technology. Topics include Database Management, Database System Architecture, Relational Data Base Systems (Query Languages, Application Development Systems), Software Specific (Self Contained) and Hardware Specific (Data Base Machines). Data manipulation language studied include: SQL, relational calculus, Query-By-Example, and natural languages.

Prerequisite: CS 246

 

CS 390 Scientific Programming II - Modeling and Simulation

3 credits 4 class hours

Simulation of dynamic, physical systems using models involving numerical and logical processes. Modeling concepts, description in terms of entities, attributes, and activities, time flow mechanisms, queues, event-oriented vs. particle-oriented models. Collection and evaluation of statistics. Simulation languages. Computer projects using a general-purpose language (e.g. C++) and at least one simulation language (e.g. GPSS) will be assigned.

Prerequisite: CS 345

 

CS 392 Advanced Topics in Computer Science

3 credits 4 class hours

This course investigates the latest developments in the fields of Computer Science, Space Science, Earth Science and/or Environmental Science.  Students are taught the underlying principles, data acquisition and analysis. Several examples and applications are used to illustrate the theory and concepts covered. A detailed description for each special topics offering may be obtained in the Department office prior to registration.  Students are required to submit a research paper on an approved topic.

Prerequisite: CS 345