Yeshiva College Computer Science Courses

 » Listed below are some of the courses we offer. For more complete details, please contact Professor Diament
 » 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: 4 hours;
Corequisite: MAT 1412 or the successful completion of a placement test in precalculus mathematics

COM 1320 Data Structures
3 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; 
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: 4 hours;
Prerequisite: COM 1300.

COM 2545 Algorithms
3 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
Prerequisites: COM 1320, COM 1504, MAT 1412.

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.

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 4580 Cybersecurity
3 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