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, elective)
    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.
  • 2512 Networking and Communications 3 credits (Fall, elective)
    An analysis of the modern model of intranets and the Internet - the application, transport, network, data link, and physical layers, and a study of the major protocols associated with them. Additional topics include client-server and peer-to-peer architectures, socket programming, network management, security, data compression, error detection, and wireless/mobile computing.  Programming projects simulate these various networking tasks, as well as labs tracking and analyzing actual network traffic.
    Prerequisites: COMP 1320C, COMP 2115C.
  • 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.
  • 3610 Operating Systems 3 credits (Spring, elective)
    Fundamental principles of the design and implementation of operating systems for modern computers, covering: the components of an operating system, and details of processes, concurrency, multithreading, CPU scheduling, synchronization, deadlocks, main and virtual memory, secondary storage, file systems, and security. Programming projects focus on the individual portions of an operating system.
    Prerequisites: COMP 1320C, COMP 2115.
  • 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.
  • 3780 Web Programming and Development 3 credits (Fall, elective)
    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
  • 3920 Applied Machine Learning 3 credits (Fall, elective)
    Introduction to the practice and theory of machine learning. Applying machine learning to real world problems through proper model and metric selection. Topics include: supervised learning, decision trees, linear regression, classification, ensemble methods, kernel methods, unsupervised and deep learning, neural networks.
    Prerequisite: COMP 1300C, COMP 1320C, Math 1412, Math 2105, and one more COMP programming course.
  • 4930H Natural Language Processing 3 credits (Spring, Honors elective)
    Algorithms for understanding and producing human language. NLP applications of tokenization, word and sentence segmentation, part-of-speech tagging, morphological analysis, syntax parsing, and the overlap between NLP, information retrieval, machine learning and deep learning. Implementation of algorithms, and use of popular NLP frameworks to apply these algorithms.
    Prerequisites: COMP 1300C, COMP 1320C, Math 1412, and one more  COMP programming course.

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. 

How Prof. Alan Broder Changed the Game for Hybrid Teaching

July 6, 2021

This past year, as the vast majority of classes were operating at least partially online, Chair of Computer Science at Stern College for Women (SCW) Prof. Alan Broder set up a technological system for his hybrid classes that allowed for a more engaging experience for his virtual students without sacrificing the experience of those in-person.

2021 Senior Class Nominates Chair of Computer Science Department for Professor of the Year Award

June 3, 2021

Yeshiva University awarded the Lillian F. and William L. Silber Professor of the Year Award to four professors across its three undergraduate schools, Yeshiva College (YC), Stern College for Women (SCW) and Sy Syms School of Business (SSSB). This year’s award recipients were Professors Dr. Irina Catrina for YC, Alan Broder for SCW and Mark Finkel and Yitzchak Rosenthal for SSSB for women and men, respectively.

Reinventing Tech Internships at Stern College for the Summer of Corona

August 21, 2020

As the summer of 2020 approached, students in the Stern College for Women computer science department faced the unpleasant reality that many companies were cutting back on their summer intern hiring because the presence of COVID-19 made it difficult to remotely administer internship programs. But Prof. Alan Broder, chair of the department at Stern College, was determined that the summer of 2020 would not be a loss for his students.

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.

Original Torah Contributions and the Public Domain

October 10, 2019

In my scholarly work in developing and applying algorithms to Jewish texts, I sometimes come across issues of copyright. In one recent example, my research group was trying to train a machine learning model to recognize instances of citations.

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 Computer Science Department to Get New Collaboration Lab

January 20, 2019

Stern College for Women at Yeshiva University has received a major grant from the Selma T. and Jacques H. Mitrani Foundation to renovate a space on the Israel Henry Beren Campus into a computer science collaboration lab. Once completed, students in the Stern College computer science program will have a dedicated space to work on coding, creating, and collaborating.

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

Q: Why is it important to start the CS degree in a Fall semester?

A: The sequence of CS courses is best pursued by starting in a Fall semester, so we strongly encourage students to start in the Fall – with the first course: COMP 1300 – Introduction to Computer Science. COMP 1300 is a pre-requisite for all our other CS courses and is offered every semester.

The most important reason to take COMP 1300 in the Fall, is that the next course, COMP 1320 – Data Structures, is only taught in the Spring. The content covered in Data Structures is a key element of internship interviews. So, without the course, it could be challenging to get past the initial job interview screening. 

To understand why the timing is so important, suppose, for example, that you were to start at Stern in the Spring of 2022 with COMP 1300. That would mean that you wouldn’t be able to take COMP 1320 until the following Spring of 2023, which would be too late for interviews for Summer 2023 internships which were conducted months earlier. On the other hand, had you started at Stern in Fall of 2021, you’d take COMP 1320 in Spring of 2022. That following summer of 2022 when interviews for Summer 2023 internships start, you’d have already taken COMP 1320, and be ready to compete for a position.

Why the big focus on internships? Because internships are a very important step towards securing a good job for when you graduate. 

All of that said, we know that students have compelling reasons to want to stay in Israel for an extra semester. Feel free to reach out to Professor Broder to discuss any questions you may have.

 

Q: What kind of laptop should I buy when I get started with a CS degree

Here are the main characteristics we recommend for your new laptop whether Mac or Windows: 

- RAM (memory) - at least 16 GB
- Hard Drive - make sure it is a Solid State Drive (SSD), it should contain at least 256GB, but 512GB is better for you in the long run. 
- Screen Size - you'll be spending a lot of time looking at the screen, so while some students seem to be ok with a 13" screen, you may be happier with a 14" or 15" screen, but they are of course larger and heavier. 

Those are the minimum characteristics. When you shop for a laptop it is wise to try to get your hands on the computer at the store to make sure you’re happy with the keyboard and the screen. Some of the lower-end Windows laptops tend to have disappointing keyboards and screens.

Please do not get a Chromebook - it just won't work for the software we will be using.

Skip past mobile menu to footer