• Computer Science

  • Courses

     » Please see the Schedule of Classes for the current semester’s offerings.

    COM 1300 Introduction to Computer Science and Programming
    4 credits

    Components of a computer system; machine, assembly, and high-level languages; the JAVA programming language; numerical systems and coding; representation of data and instructions; data types, constants, variables; arithmetic expressions; logical expressions; assignment statement; sequencing, alteration, and iteration; arrays, subprograms, and parameters; simple I/O; techniques of problem solving; flowcharting; stepwise refinement; simple numerical examples; basic search and sort algorithms. Principles of good programming style, expression, and documentation; control flow; invariant relation of a loop; stepwise refinement of statements and data structures or top down programming.
    Lecture: 3 hours; lab: 2 hours.
    Corequisite: MAT 1412 or the successful completion of a placement test in precalculus mathematics

    COM 1320 Data Structures
    4 credits

    String processing, concatenation, substrings, matching, internal searching and sorting, recursion, linked lists and linear allocation (stacks, queues, deques). Elementary data structures, file structures and algorithms, searching and sorting, trees and algorithms for their manipulation, notions of algorithm complexity, memory and data management systems.
    Lecture: 3 hours; lab: 2 hours.
    Prerequisite: COM 1300.
    Corequisite: COM 1504.

    COM 1504 Discrete Structures
    4 credits

    Boolean algebra and predicate calculus; proof methods; sets, functions and relations; combinatorics; graph theory and algorithms; mathematical induction and recursion; probability and average case analysis of algorithms.
    Lecture: 3 hours; lab: 2 hours.
    Prerequisite: three years of high school mathematics.

    COM 1621 Theory of Computation
    3 credits

    Deterministic and nondeterministic finite state automata; regular grammars and regular expressions; equivalence of regular expressions and finite automata; pumping lemma for regular languages; context free grammars; languages generated by context free grammars; parse trees and ambiguity; Chomsky normal form; pushdown automata; equivalence of context free grammars and pushdown automata; pumping lemma for context free languages; Turing machines; Universal Turing machine; Halting problem; solvable and unsolvable problems about automata and languages; introduction to complexity theory; NP-complete problems.
    Prerequisite: COM 1504.

    COM 2113 Computer Organization and Assembly Language
    4 credits

    Basic logic functions. Synthesis of more complex combinational circuits. Electronic implementation of these functions. Simple synchronous circuits. Major components of a computer. Machine and assembly language instruction set. Implementation of the instruction set electronic circuits. Circuits needed to perform arithmetic operations. Memory and I/O implementation.
    Lecture: 3 hours; lab: 2 hours.
    Prerequisite: COM 1300.

    COM 2545 Algorithms
    4 credits

    Sorts (insertion sort, merge sort, heap sort and quicksort); growth of functions and recurrences; hash tables; binary search trees and red-black trees; Huffman codes; graph algorithms including minimum spanning trees and shortest path problems; cryptography, string matching and computational geometry.
    Lecture: 3 hours; lab: 2 hours.
    Prerequisites: COM 1320, COM 1504, MAT 1412.

    COM 3511 Algorithmic Processes
    3 credits AE

    Design of algorithms and applications of data structure permutations, polynomials, derivations, matrices, sorting, discrete simulation; list marking, garbage collection, analysis of algorithms; space and time efficiency; comparison of sorting techniques; discrete Fourier Transform; pattern matching; computational models, Turing machines, complex hierarchies.
    Prerequisite: COM 2545.

    COM 3610 Introduction to Operating Systems
    3 credits

    Review of instruction sets. I/O and interrupts, addressing schemes, microprogramming; dynamic procedure activation; dynamic storage allocation; design methodology, monitors, kernels, networks of operating system modules; elementary queuing; memory management: virtual memory, paging, segmentation; memory protection; multiprogramming.
    Prerequisites: COM 1320, COM 2113.

    COM 3640 Programming Languages
    3 credits

    Formal language concepts, including basic characteristics of syntax and grammars; regular, context-free, and ambiguous grammars; constructs for specifying and manipulating data types; language features affecting static and dynamic storage management; control structures and data flow; subroutines, procedures, block structures, interrupts, decision tables, recursion; relationship with good programming style; run-time considerations; interpretative languages, lexical analysis and parsing.
    Prerequisite: COM 1621. Corequisite: COM 2545.

    COM 3645 Compiler Theory
    3 credits AE

    Grammars, languages, and their syntax and semantics; parsing and ambiguity; scanners; implementation of symbol tables; parsers; major parsing algorithms; techniques for machine-independent code generation; code optimization; syntax-directed translation schema.
    Prerequisites: COM 2545, COM 3640.

    Software, hardware, and mathematical tools for the representation, manipulation, and display of topological and two- and three-dimensional objects; display devices; problems and objectives of computer graphics; point, vector, curve, and character generation; interactive versus passive graphics; graphics data structures, graphics packages and graphics languages; two-dimensional graphics: generation, transformation, window clipping, segmented display files and display procedures; interactive graphics: input devices, input techniques, event handling, and input functions; raster graphics fundamentals; three-dimensional graphics: hidden-line problems, windowing, transformations, perspective projections, and shading.

    Prerequisites: COM 2545, MAT 1412, MAT 2105.

    COM 3780 Web Programming & Development
    3 credits AE
    The world-wide web was originally a vehicle for delivering documents. It still does this, but its most demanding current uses are as a platform for sophisticated interactive applications, replacing traditional mechanisms for distributing and installing software. Creating web applications requires different approaches from traditional applications and involves the integration of numerous technologies. This course introduces web technologies and gives the student experience creating web applications. In the process, students learn about markup languages, scripting, network protocols, interactive graphics, event-driven programming, and databases. Students also explore the way web applications can be exploited by malicious hackers, and the defensive strategies to keep hackers at bay. 
    Prerequisite: COM 1300

    COM 3905; 3906; 3907; 3908; 3909 Individual and Group Projects
    1–3 credits per semester

    Faculty and students choose from among a number of term projects.
    Prerequisite: 21 credits in COM courses or senior status.

    COM 4512 Advanced Java Programming
    3 credits AE

    Review of Java Standard Edition: classes, interfaces, event handling, GUI, applets, strings, streams and files. Multithreading, advanced GUI, advanced data structures, network programming, JavaBeans. Introduction to Java Enterprise Edition: servlets and JSP. Design Patterns: Model-View-Controller, Value Object, Data Access, Business Delegate, Front Controller. Security.
    Prerequisites: COM 2545, COM 3640.

    COM 4541 Numerical Analysis
    3 credits AE

    Arithmetic and precision; finite difference calculus; interpolation; approximation: numerical integration and differentiation; solution of nonlinear equations, differential equations; linear systems of equations; iterative methods; computation of eigenvalues and eigenvectors.
    Prerequisites: MAT 1413, COM 2545.

    COM 4550 Bioinformatics
    4 credits

    Introduction to current bioinformatics tools and databases via an overview of the theoretical and practical applications of computer science to biological science. The management of biological information and the application of the state-of-the-art in information technology toward the analysis and organization of scientific data. A principal focus is on the molecular biology discipline. Database structures and tools currently used for the facilitation of the collection and organization of data (e.g., GenBank) and methods and resources that deal with the study of three-dimensional structures of biological models (e.g., PDB). Occasional guest lecturers share their knowledge and practical experiences in the field. Algorithms, systems, and databases used to facilitate and expedite biological research, for the analysis of biological data, the prediction of biological functions based on structural data, and information management issues such as the fundamental principles of data mining.

    COM 4570 Industrial Software Development 
    3 credits AE
    The content of this course will be to plan, develop and deploy applications for Android smart phones. The applications will be more complex than a simple mash-up, yet achievable within one semester by small teams of 2-4 students, with intent to offer the app to actual (non-commercial) end-users in the YU community through Google's regular Android marketplace. Students shall choose applications partly based on academic and social benefit to the YU community. Industrial best practices for small teams shall be taught and employed throughout the project, including source control, unit testing, continuous integration, issue tracking and agile project management. 
    Prerequisites: COM 1320 and either COM 3780 or COM 3610, COM 2545 is recommended.

    COM 4580H Cybersecurity
    4 credits AE
    Topics include: cybersecurity terminology; critical evaluation of cybersecurity threats; critical evaluation of cybersecurity defenses; cybersecurity case studies from variable fields; legal, ethical, and behavioral issues in cybersecurity.
     Prerequisites: COM 3610

    COM 4901 Independent Study 
    COM 4911 Guided Project 

Yeshiva University
500 West 185th Street
New York, NY 10033

Connect With YU