|
CSCI-502
|
Computer Programming I
|
3.0 |
Engineering & Computing Sci |
This course provides basic skills in problem solving and object-oriented programming using a high level language such as Java or C++. Topics include algorithm development, simple data types, expressions and statements, program flow control structures, objects, methods and arrays. The course will also include a special project or paper as required and specified by the instructor and the SoECS graduate committee. Knowledge of Algebra
|
|
CSCI-503
|
Computer Organization and Architecture
|
3.0 |
Engineering & Computing Sci |
This course introduces students to the organization and architecture of modern computers. The students will learn a variety of concepts from the stored-program concept and the machine cycle, to the representation of code and data. The basic components of a computer and their functionality are analyzed including processor data path, pipelines, I/O devices, memory hierarchy, and interconnection networks. The instruction set architecture and its importance in reducing the gap between hardware and software is also discussed. Students will also learn how to evaluate computer performance. The course will also include a special project or paper as required and specified by the instructor and the SoECS graduate committee.
Prerequisite Course(s): CSCI-502 or CSCI-125
|
|
CSCI-504
|
Computer Programming II
|
3.0 |
Engineering & Computing Sci |
This course provides advanced skills in object-oriented programming and problem solving techniques using a high level language such as Java C++. Topics include polymorphism, inheritance, exception handling, stream and file I/O, recursion, and dynamic data structures. The course will also include a special project or paper as required and specified by the instructor and the SoECS graduate committee.
Prerequisite Course(s): CSCI-502 or CSCI-125
|
|
CSCI-505
|
Elements of Discrete Structures
|
3.0 |
Engineering & Computing Sci |
This course provides students with an introduction to discrete structures with applications to computing problems. Topics include logic, sets, functions, relations, proof techniques, counting and algorithmic analysis in addition to graph theory and trees. The course will also include a special project or paper as required and specified by the instructor and the SoECS graduate committee.
Prerequisite Course(s): CSCI-504 or CSCI-185
|
|
CSCI-507
|
Data Structures
|
3.0 |
Engineering & Computing Sci |
The classic data structures, such as stacks, queues, linked lists, binary trees, etc. are studied. Sorting and searching are stressed. Computational analysis is also studied. The course will also include a special project or paper as required and specified by the instructor and the SoECS graduate committee.
Prerequisite Course(s): CSCI-504 or CSCI-185
|
|
CSCI-508
|
Compiler Design
|
3.0 |
Engineering & Computing Sci |
The design and implementation of a compiler is studied, including compiler organization, lexical analysis, searching methods and symbol tables, formal languages and grammar, parser construction, code syntax and code generation. The course will also include a special project or paper as required and specified by the instructor and the SoECS graduate committee.
Prerequisite Course(s): Take one course in each group: Group 1 (CSCI-507 or CSCI-260) and Group 2 (CSCI-504 or CSCI-185 or CSCI-210)
|
|
CSCI-509
|
Operating Systems
|
3.0 |
Engineering & Computing Sci |
The design and implementation of an operating system is studied, including process states and synchronization, memory management strategies, processor scheduling, multiprocessing, parallel processing, hardware organization, disk scheduling and file management. The course will also include a special project or paper as required and specified by the instructor and the SoECS graduate committee.
Prerequisite Course(s): Take one course in each group: Group 1 (CSCI-503 or CSCI-155) and Group 2 CSCI-507 or CSCI-260
|
|
CSCI-600
|
Maintain Matriculation
|
0.0 |
Engineering & Computing Sci |
Matriculated students who do not register for coursework in a regular semester (excluding summer) are expected to maintain matriculation by registering for this course.
|
|
CSCI-606
|
Distributed Systems
|
3.0 |
Engineering & Computing Sci |
This course introduces the principles and practice underlying the design of distributed systems, both Internet-based and otherwise. Major topics include interprocess communication and remote invocation, distributed naming, distributed file systems, data replication, distributed transaction mechanisms, and distributed shared objects, secure communication, authentication and access control, mobile code, transactions and persistent storage mechanisms. A course project is required to construct working distributed applications using contemporary languages, tools and environments.
|
|
CSCI-610
|
Theoretical Concepts in Computers and Computation
|
3.0 |
Engineering & Computing Sci |
Selected topics in set theory, Boolean Algebra, graph theory, and combinatorics. Formal languages, regular expressions and grammars. Automata and Turing machines. Algorithms and computability.
|
|
CSCI-620
|
Operating System Security
|
3.0 |
Engineering & Computing Sci |
In this course students are introduced to advanced concepts in operating systems with emphasis on security. Students will study contemporary operating systems including UNIX and Windows. Topics include the application of policies for security administration, directory services, file system security, audit and logging, cryptographic enabled applications, cryptographic programming interfaces, and operating system integrity verification techniques. Equivalent to ITEC 445.
|
|
CSCI-621
|
Programming Languages
|
3.0 |
Engineering & Computing Sci |
The general principles of modern programming language design: Imperative (as exemplified by Pascal, C and Ada), functional (Lisp), and logical (Prolog) languages. Data management, abstract data types, packages, and object-oriented languages (Ada, C + +). Control structures. Syntax and formal semantics. While some implementation techniques are mentioned, the primary thrust of the course is concerned with the abstract semantics of programming languages.
Corequisite Course(s): CSCI-651
|
|
CSCI-635
|
Probability and Stochastic Processes
|
3.0 |
Engineering & Computing Sci |
Elements of probability theory. Random variables, distributions, densities, moments, characteristic functions, functions of random variables and limit theorems. Correlation, spectral density, ergodicity and applications in linear systems. Normal, Poisson and Wiener processes, mean square estimation and Markov processes. Applications to electrical engineering-noise analysis. Equivalent to EENG 635.
|
|
CSCI-641
|
Computer Architecture I
|
3.0 |
Engineering & Computing Sci |
The study of the software/hardware boundary as defined in the Von Neumann Architecture. Review of the technological framework. Effects on machine instructions and formats, addressing techniques, micro programming, fast arithmetic, and advanced memory and 110 practices. Equivalent to EENG 641.
|
|
CSCI-645
|
Numerical Analysis I
|
3.0 |
Engineering & Computing Sci |
Real and complex zeros of a function and polynomials, interpolation, roundoff error, optimization techniques, least square techniques, orthogonal functions, Legendre and Chebyshev polynomials, numerical integration and differentiation, numerical solution of differential equations with initial and boundary values. The numerical methods developed will emphasize efficiency, accuracy and suitability to high-speed computing. Selected algorithms may be flowcharted and programmed for solution on a computer.
|
|
CSCI-651
|
Algorithm Concepts
|
3.0 |
Engineering & Computing Sci |
Abstract Data Structures and their algorithms for implementation are reviewed. The study and analysis of various topics such as storage and execution time requirements, graph algorithms, minimum spanning trees, shortest paths, maximal matchings, internal sorting, asymptotic analysis of recursive procedures, divide-and-conquer, dynamic programming, local search algorithms, external sorting and large-scale storage organization, memory management, and complexity classes.
|
|
CSCI-655
|
Automata Theory
|
3.0 |
Engineering & Computing Sci |
Theory of finite automata, identification of states. Turing Machines, neural nets, majority logic. Applications in pattern recognition and game playing. Hardware and software implementations.
|
|
CSCI-660
|
Introduction to Vlsi Design
|
3.0 |
Engineering & Computing Sci |
An introduction to VLSI technology, NMDS devices, NMOS processing, electrical parameters, circuit design with NMOS, ratioed logic, pass transistors, static and dynamic logic, design rules, speed-time-power tradeoffs, effects of scaling, hierarchical design, the silicon foundry, design for testability, introduction to computer-aided design tools, design examples and student design projects.
|
|
CSCI-665
|
Software Engineering
|
3.0 |
Engineering & Computing Sci |
Techniques for the development and implementation of high-quality digital computer software are presented. Major areas covered in the course include software quality factors and metrics, software development outlines and specification languages, top-down vs. bottom-up design and development, complexity, testing and software reliability.
|
|
CSCI-670
|
Computer Graphics
|
3.0 |
Engineering & Computing Sci |
Introduction to display system parameters; comparison of information retrieval and document retrieval; digitizing as an input process; picture models and data structures; display software; applications, hands-on laboratory experience.
|
|
CSCI-675
|
Simulation Techniques
|
3.0 |
Engineering & Computing Sci |
The use of simulation methods for the analysis and design of various types of systems is discussed. The use of general purpose languages for simulation is covered along with the use of discrete and continuous simulation languages for probabilistic and analog systems.
|
|
CSCI-680
|
Operations Research
|
3.0 |
Engineering & Computing Sci |
Major topics in the area of operations research are discussed. Topics may include network analysis, game theory, decision analysis, Markov models, queuing models, scheduling and transportation problems.
|
|
CSCI-690
|
Computer Networks
|
3.0 |
Engineering & Computing Sci |
Connection of multiple systems in a networked environment. Topics include physical connection alternatives, error management at the physical level, commercially available protocol support, packet switching, LANs, WANs and Gateways.
|
|
CSCI-701
|
Topics in Computer Security
|
3.0 |
Engineering & Computing Sci |
In this course, we will introduce students to the techniques used by hackers to penetrate and compromise computer networkbased systems. For each hacker exploit, counterdefense methods will be studied . The exercises will enable students to study and carry out hacking and counterdefense methods in a laboratory setting.
Prerequisite Course(s): CSCI-690 or EENG-755
|
|
CSCI-711
|
Operating Systems I
|
3.0 |
Engineering & Computing Sci |
The basic structure as well as the framework for the analysis and design of operating systems is developed. The operating system is viewed as a manager of resources (memory, processors, devices and information). The techniques and issues involved in managing these resources are discussed with examples.
Prerequisite Course(s): CSCI-651
|
|
CSCI-721
|
Topics in Programming Languages
|
3.0 |
Engineering & Computing Sci |
This course covers important current topics in the field of programming languages. It is intended to reflect the current state of the art. The ADA programming language and its application is typical of the material covered.
Prerequisite Course(s): CSCI-621
|
|
CSCI-725
|
Java Networking
|
3.0 |
Engineering & Computing Sci |
In this class, students will study Input/Output, Java multi-threading, Java Graphic user interfaces, and TCP/IP fundamentals. Client-server methodology, connection-oriented communication and server sockets as well as connectionless communication datagram sockets and packets will be studied. Java database connectivity, Java remote method innovation, Web servers and server-side Java, and Java Beans will be introduced.
|
|
CSCI-731
|
Compiler Theory I
|
3.0 |
Engineering & Computing Sci |
Review of general structures of a compiler. Finite state automata, regular expressions and lexical analysis. Review of BNF and context free syntax, recursive descent and operator precedence parsing. General table drive, top-down and bottom-up parsing methods. Syntax directed translation. Type checkings. Run-time environments. Introduction to intermediate code-generation. A compiler project is required.
Prerequisite Course(s): CSCI-651
|
|
CSCI-741
|
Computer Architecture II
|
3.0 |
Engineering & Computing Sci |
Discussions of the advancements in computer architecture of and beyond the Von Neumann Architecture. This will include pipelined machines. RISC machines, parallel architectures, distributed architectures, and language-directed architectures. Equivalent to EENG 741.
|
|
CSCI-755
|
Artificial Intelligence I
|
3.0 |
Engineering & Computing Sci |
State space representation in problem solving, problem reduction and searching methods. Application of the predicate calculus in problem solving, resolution, production systems, LISP.
Prerequisite Course(s): CSCI-651
|
|
CSCI-760
|
Database Systems
|
3.0 |
Engineering & Computing Sci |
Design and implementation of databases. Hierarchal and network concepts; relational databases systems; entity relationship model: query languages; relational design theory; security and authorization; access methods; concurrency control backup and recovery.
Prerequisite Course(s): CSCI-651
|
|
CSCI-765
|
VLSI Systems
|
3.0 |
Engineering & Computing Sci |
This course assumes a basic knowledge of VLSI design and concentrates on the architecture, organization, implementation and technology issues of designing VLSI systems. A focus of the course will be significant student projects utilizing hierarchical design techniques, CAD design and simulation tools, and design for testability techniques.
Prerequisite Course(s): CSCI-660
|
|
CSCI-780
|
Topics in Software Engineering
|
3.0 |
Engineering & Computing Sci |
Students will engage in independent research projects in such areas as reliability, quality, matrix and structure design.
Prerequisite Course(s): CSCI-665
|
|
CSCI-790
|
Advanced Software Engineering
|
3.0 |
Engineering & Computing Sci |
The major emphasis in this course is on the structural design of software. Methods and concepts covered include cohesion and coupling; structured and composite design: Jackson methodology; higher order software; data abstraction and design of program families.
Prerequisite Course(s): CSCI-665
|
|
CSCI-820
|
Topics in Database Systems
|
3.0 |
Engineering & Computing Sci |
Advanced topics in database systems. Topics may include: semantic modeling; object oriented, knowledge based, and deductive databases; distributed database systems.
Prerequisite Course(s): CSCI-760
|
|
CSCI-840
|
Software Design for Real-Time Systems
|
3.0 |
Engineering & Computing Sci |
Methods for the design of software for real time applications are covered in this course. Topics include execution time and memory requirements, interfacing high level language features for real time applications, interfacing assembly language routines and the use of coprocessors.
|
|
CSCI-860
|
Special Topics
|
3.0 |
Engineering & Computing Sci |
This course provides an opportunity for students to study, in a variety of formats, advanced topics which may not be included elsewhere in the curriculum. The topics may be of mutual interest to the student and faculty member or appropriate for group study.
Chairperson permission required
|
|
CSCI-870
|
Project I
|
3.0 |
Engineering & Computing Sci |
Independent research project.
Chairperson permission required
|
|
CSCI-880
|
Project II
|
3.0 |
Engineering & Computing Sci |
Independent research project.
Chairperson permission required
|
|
CSCI-889
|
MS Thesis I
|
3.0 |
Engineering & Computing Sci |
This is the first of a two-course sequence spanning two semesters of research. The master's thesis provides an opportunity for students to undertake an in-depth investigation of a specific topic within Computer Science. This course requires the students to explore an original and appropriately phrased research question, and carry out and document a comprehensive literature review, research and experimentation in the chosen problem area with a good deal of individual responsibility. The course culminates in a preliminary draft of the theses document to be presented to the thesis faculty advisor.
Chairperson permission required
|
|
CSCI-891
|
MS Thesis II
|
3.0 |
Engineering & Computing Sci |
This is the second of a two-course sequence for master's thesis. Students will continue the research and experimentation started in the first course in the sequence. The course culminates in an oral defense of the thesis project in front of a thesis committee consisting of the student's thesis faculty advisor and other members. By the end of the semester, students will complete a publication-quality master's thesis to be archived in the NYIT library.
Prerequisite Course(s): CSCI-889
Chairperson permission required
|