Skip to main content Skip to search
""

Computer Science

The Computer Science program at Stern College for Women stresses both the practical and theoretical aspects of computing, preparing students for employment in various fields of computer science and to pursue advanced studies. In addition to covering fundamentals of Computer Science theory and practice, the department strives to help students maximize their portfolios of significant coding projects, via course requirements and through extracurricular activities such as hackathons and internships. See these videos for highlights of a few notable semester projects from our COMP 1300 introductory course: 2017 and COMP 1300 introductory course: 2015-2016.

Students gain experience with a variety of programming languages including Python, Java, Javascript, R, Go, and C/C++, and learn how to develop applications for Linux, web, and cloud platforms such as Hadoop.

Stern’s Computer Science program is ideally situated near the heart of Manhattan’s “Silicon Alley”, convenient to recruiters from major financial and tech employers. Stern Computer Science students have recently been sought and hired by employers such as Goldman Sachs, JPMorgan, and Google.

The department also offers the Professor Thomas Otway Memorial Scholarship for Computer Science majors, established in memory of the beloved Professor. Learn more about eligibility and application information for the scholarship.

For more information, read this recent article about our Computer Science program, watch a video about the Computer Science experience, or contact Professor Alan Broder, Department Chair at alan.broder@yu.edu

Program Information

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

  • 1001C Introduction to Programming 3 credits
    This course introduces Computer Science concepts through the development of programs in the Python programming language. Students will learn to write code relevant to problems in the sciences and humanities. (lecture: 3 hours; lab: 2 hours). This course does not satisfy the prerequisite requirements for further Computer Science courses. Math and Computer Science majors must take COMP 1300.
  • 1300C Introduction to Computer Science and Programming 4 credits (Spring and Fall)
    Components of a computer system; machine, assembly, and high-level languages; the Python 3 programming language; numerical systems and coding; representation of data and instructions; data types, constants, variables; arithmetic expressions; logical expressions; assignment statement; sequencing, alternation, and iteration; arrays, subprograms, and parameters; simple I/O; techniques of problem solving; flowcharting; stepwise refinement; simple numerical examples; basic object oriented design. Principles of good programming style, expression, and documentation; control flow; invariant relation of a loop. (lecture: 3 hours; lab: 2 hours)
    Prerequisites: three years of high school mathematics and placement by examination or MATH 1160 or MATH 1412 Corequisite: Only students who have already formally declared as CS majors may take MATH 1160 as a corequisite, instead of as a prerequisite.
  • 1320C Introduction to Data Structures 4 credits (Spring)
    Arrays, internal searching and sorting, recursion, linked lists and linear allocation (stacks, queues, deques), bitwise operations. Elementary data structures, trees and algorithms for their manipulation, heaps, hash tables, graphs, spatial data structures, probabilistic data structure, notions of algorithm complexity, memory and data management systems. (lecture: 3 hours; lab: 2 hours).
    Prerequisite: COMP 1300C.
  • 1504 Discrete Structures 3 credits (Fall)
    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. Prerequisite: three years of high school mathematics.
    Corequisite: COMP 1300C
  • 2115C Computer Systems 4 credits (Fall)
    The course is devoted to exploring the interaction between a program, the operating system, and the hardware. Topics include: the C programming language emphasizing pointers, explicit dynamic memory allocation, and formatted I/O; machine-level representation of programs; processor architecture; program optimization; the memory hierarchy; processes; UNIX I/O; concurrent programming. The course will have both lecture and laboratory components. (lecture: 3 hours; lab: 2 hours)
    Prerequisite: COMP 1300C.
  • 2314C Linux Programming for Data Analysis 4 credits (Fall)
    Introduces Linux, with a focus on analyzing large data sets using operating system features that are accessible from the command line along with programming or scripting languages such as Python or Awk. Topics will include software development in a Linux environment, pipes, redirection, process management, and shell programming. (lecture: 3 hours; lab: 2 hours)
    Prerequisite: COMP 1300C.
  • 2545 Algorithms 3 credits (Fall)
    Algorithms complexity and intractability. Combinatorial algorithms (permutations, combinations, partitions). String Algorithms (substring search, regular expressions, data compression). Path finding in game trees and search trees, including minmax, alphabeta ,and A*. Network flow algorithms. Selected algorithms in parallel computing and computational geometry.
    Prerequisites: COMP 1320C, 1504, MATH 1412.
  • 3563 Database Systems 3 credits (Spring)
    Goals of a Database Management System (DBMS), including data independence, relationships, logical and physical organization, schema and subschema; hierarchical, network, and relational modes; examples of implementation of various models; first, second, and third normal forms of data relations; canonical schema; data independence; data description languages: forms, applications, examples, design strategies; query facilities: relational algebra, calculus, data structures for establishing relations; query functions; file organization; index organization; file security; data integrity and reliability. Overview of Internet and World Wide Web information storage and retrieval systems, languages and methods.
    Prerequisite: COMP 1320.
  • 3640 Programming Languages 3 credits (Spring)
    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 man­agement; control structures and data flow; subroutines, procedures, block structures, interrupts, decision tables, recursion; relationship with good programming style; runtime considerations; interpretative languages, lexical analysis and parsing.
    Co-requisite: COMP 1320C.
  • 3650 Object-Oriented Software Design 3 credits (Spring)
    Large-scale software design in the Java programming language, using inheritance, polymorphism. Methodologies for developing well-designed software, with an early emphasis on testing and reliability. File I/O, exception handling, multi-threading, GUI’s and event-driven programming.
    Prerequisite: COMP 1300C.
  • 3760 Artificial Intelligence 3 credits (tbd)
    Heuristic versus algorithmic methods, cognitive processes, natural language processing, investigation of methods of making machines behave intelligently, problem solving, theorem probing, game playing, pattern recognition, question answering, learning self-organization, methods of programming such procedures, data structures and program organization; the mind-brain problem; the nature of intelligence. Advanced elective.
    Prerequisite: COMP 2545.
  • 3780 Web Programming and Development 3 credits (Fall)
    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: COMP 1300

For more details about the Computer Science major and minor - see the factsheet at the Academic Advisement webpage.

Major

COMP 1300C, 1320C,1504,2115C, 2545, 3563, 3640, 3650 plus two (2) elective courses in Computer Science; MATH 1412,1413, 2105 (MATH 1413 and 2105 may count toward the “elective category” of the General Education requirements).

Minor

COMP 1300C, 1320C, plus four (4) additional courses in Computer Science.

AP Computer Science A credits

Per department policy, students majoring or minoring in Computer Science may receive 4 credits for COMP 1300 and will not have to take COMP 1300 if they received a grade of 5 on the AP Computer Science A exam, and, if they passed the department’s Python 3 exam with a score of 80% or better. 

VIDEO: Kayla Boldt, UBS Analyst 19'

February 6, 2020

Kayla Boldt-Povarsky ‘19 enjoyed her YU Intro to Computer Science course with Professor Alan Broder so much she decided to make computer science her major. Now this YU grad works as an Analyst in Asset Management with UBS—a job Kayla landed after working at the company through an internship that the YU career center helped her to find. 

VIDEO: Racheli Moskowitz, Facebook Software Engineer, 19' 

January 28, 2020

Facebook Software Engineer Racheli Moskowitz ‘19 double majored in computer science and physical sciences while at YU. Vice President of the Stern Dramatics Society as well as an organizer of YU’s Hackathon, Racheli is grateful to have found a community of people at YU who share her diverse passions. 

Dr. Ari Berman and the Hour of Code

January 3, 2020

The Hour of Code started as a one-hour introduction to computer science, designed not only to demystify “code” and show that anybody can learn the basics but also to broaden participation in the field of computer science. 

Stern College and Yeshiva College Computer Science Teams Compete

November 11, 2019

On Sunday, Oct. 27, 2019, three teams of three students each—one from Yeshiva College and two from Stern College for Women—traveled to the New Jersey Institute of Technology in Newark, New Jersey, to take part in a five-hour contest, competing against such universities as Columbia, Princeton, Rutgers and Cornell.

YU Hackathon 2019: Cracking Code in Collaboration

April 17, 2019

Held on April 4 through April 5, 2019, at the University Heights Lounge on the Wilf Campus, YU Hackathon 2019 attracted more than 70 students from across Yeshiva University as well as students from Columbia University and New York University 

Stern Student Wins Prestigious Computer Science Scholarship

May 30, 2018

Sarah Gulkowitz Awarded $2,500 Women in Technology Scholarship By Visionary Integration Professionals

Computer Science Thrives at Stern College

March 1, 2017

With new faculty, expanded course offerings and record enrollment, the computer science major flourishes!

Alan Broder

 

Department Chair, Clinical Professor of Computer Science

Professor Alan Broder is Chair of the Department of Computer Science at Stern College for Women, Yeshiva University, in New York City.  At Stern College, Professor Broder lectures on Computer Science, Data Structures and Algorithms, and Data Analytics, and is also responsible for the administration of the faculty and program in Computer Science at the college.

Previously, he was founder, Chairman, and Fellow of Novetta Solutions, a 500+ person firm specializing in custom high-performance software for big-data strategic analytics.

Prof. Broder is an expert Computer Scientist and highly effective communicator, with over 30 years of experience leading and implementing systems for supercomputing, geo-temporal analysis, data quality, randomized algorithms, graphs and multi-dimensional data structures, and data mining for fraud discovery and other strategic applications. He is a recognized expert in entity resolution technologies, and was the chief architect and a principal developer of several custom parallel data mining systems that successfully operate on massive scale data.  

Prof. Broder advises senior decision makers on policy issues related to entity disambiguation, privacy protection, massive-scale strategic analytics, and data quality. In 2014 he was appointed by US Department of Homeland Security Secretary Jeh Charles Johnson to serve on the Department’s Data Privacy and Integrity Advisory Committee.

 

Zach Glassman

Adjunct Assistant Professor of Computer Science

Zach Glassman received bachelors degrees in Physics and Mathematics from Pomona College before going on to a graduate degree in Chemical Physics studying experimental atomic physics at NIST/University of Maryland.  There, he discovered a love of Python and data, and subsequently transitioned into industry as a data scientist. After working at a data science startup, Zach is now a Director at UBS Asset Management.  In his free time he enjoys cycling, reading science fiction novels, and spending time with his wife and their two cats.

 

Ari Shamash

Adjunct Assistant Professor of Computer Science

At Stern, over the last 5 years, Ari Shamash has taught both Database Systems and Computer Systems, classes that were well received and valued by the students.  In his other day job, he is part of Google's Privacy and Policy Infrastructure, a team responsible for infrastructure that ensures policy compliance for data and systems at Google. Ari’s skills span deep technical analysis and implementation, as well as building large, successful, and diverse teams.  Prior to Google, Ari was at Sun Microsystems and BoxHill systems.  Ari graduated from Columbia University with undergraduate and graduate degrees in Computer Science, focusing on graphical user interfaces for mobile computers.  During off hours, Ari enjoys scuba diving and bicycling. 

 

Lawrence Teitelman

Clinical Assistant Professor of Computer Science

Lawrence Teitelman is a multi-time alumnus of Yeshiva University, having received his BA in Mathematics from Yeshiva College, MS in Semitic Languages from the Bernard Revel Graduate School, and Ordination from the Rabbi Isaac Elchanan Theological Seminary, as well as graduate degrees in Mathematics and Computer Science from NYU Courant and CUNY respectively. He began his academic career at YU in the late 1980s as a TA and Lab Instructor for the introductory CS course sequence (then taught in Pascal). He subsequently switched to industry where he worked as a system developer / analyst in a variety of disciplines, while also teaching at CUNY's Queens College. Last year, Lawrence returned "home" to Yeshiva University, joining the full-time faculty of Stern College's CS Dept. where he currently teaches Database Systems, Networking and Communications, Operating Systems, Mathematics for Computer Science, as well as Programming for Non-CS Majors. 

 

Joshua Waxman

Assistant Professor of Computer Science

Joshua Waxman earned his PhD in Computer Science in 2014, his rabbinic ordination from RIETS in 2005, and his BA from Yeshiva College in 2000. He has many years of experience in both software development and in academia, in teaching and research. In industry, over the course of 22 years, he has developed device drivers for aircraft network simulator cards, telephony integration, bespoke CRM software, stock trading software, reporting software for traders and hedge fund managers, and NLP / ML-based assessment of survey respondent attention. In academia, he has taught computer science for 15 years and, shortly after obtaining his PhD, returned to YU to teach at Stern College for Women.

His present research interests include:

* Natural Language Processing, especially for languages which lack large linguistic resources; machine learning, deep learning, speech recognition.

* Social Network Graphs

* Digital Humanities, especially as it applies to Judaic texts.

Courses taught: Introduction to Computer Science, Algorithms, Programming Languages, Web Development, Natural Language Processing

Skip past mobile menu to footer