Skip to main content Skip to search
""

Computer Science

The computer science program at Yeshiva College provides students with the theoretical foundations and practical skills required for long term success in industry and in graduate school.

See results and read feedback from students:  2019-2020 annual report2018-2019 annual report

Our Faculty has:

  • 91+ years of full-time corporate experience across Google, Microsoft, IBM, Intel, Goldman Sachs, Bell Labs, Motorola, Barclays, and Millennium Partners
  • 42 issued patents
  • 120+ publications
  • Student success as its #1 priority

Degrees Offered

Students earn a Bachelor of Science (BS) in Computer Science upon completing either of our four year tracks, and a Bachelor of the Arts (BA) for completing our three year track. Please see the requirements dropdown for details about the different tracks.

Interested in Getting Involved?

For more information about the Computer Science Department at Yeshiva College, please contact Judah Diament at diament@yu.edu.

Program Information

Careers

Recent graduates work in top companies across many industries, including:

  • Amazon
  • Facebook
  • Google
  • IBM
  • Intel
  • Accenture
  • Blackrock
  • Bloomberg
  • BNY Mellon
  • Citi
  • Deloitte
  • Goldman Sachs
  • Prudential
  • TD Securities

Graduate School

Our students gain acceptance to top graduate schools such as Carnegie Mellon, Georgia Tech, Columbia, NYU, & Wharton.

Computer Science Major

For complete information regarding the tracks in the major, requirements, and prerequisites, please see The Complete Guide to the Computer Science Majors at Yeshiva College (current version: Spring 2021)

After you have read the guide, feel free to contact Professor Diament or Academic Advising with any further questions.

Students who have matriculated before Fall 2017 may follow the old requirements. Click here to see the old requirements.

Computer Science Minor

  • Introduction to Computer Science (COM 1300)
  • Data Structures (COM 1320)
  • Math for Computer Science (COM 1310)
  • Introduction to Algorithms (COM 2545)
  • One additional course in Computer Science of your choosing
  • Calculus 1 (MAT 1412)
  • Linear Algebra (MAT 2105)

Requirements Beyond the C.S. Major

  • Students in the B.A. track have the same non-C.S. requirements as all other B.A. students in Yeshiva College
  • Students in either B.S. track have the general education requirements show in the table below.
  • All students need a total of 128 credits in order to graduate
  • IBC and JSS courses transfer to YC for the BS in the same exact way they transfer for a BA (this is relevant to the second and last lines below.)

General Education Requirements

Requirements Credits Number of Courses
First Year Writing 3 1
BIB, JHI, JST, or JTP 4 2
Choose from Contemporary World Cultures (COWC) or Cultures Over Time (CUOT) 3 1
Interpreting the Creative (INTC) 3 1
Human Behavior and Social Institutions (HBSI) 3 1
Electives: choose from any of the following Y.C. departments: ART, BIO, BIB, CHE, ECO, ENG, HEB, HIS, JHI, JST, JTP, MUS, PHI, PHY, POL, PSY, SOC, SPA 6 2
TOTALS 22 8

For more details regarding what the various categories (COWC, HBSI, etc.) mean, what Y.C. courses count towards them, etc. please consult Y.C.’s web site or academic advising. Since B.S. students must be on campus for 8 semesters and there are 8 non-C.S. requirements, B.S. students can take one non-C.S. requirement each semester to pace themselves and evenly distribute their workload. We caution against waiting until late in your college career to fulfill these requirements, as you may not find all the courses you need being offered exactly when you would need them if you procrastinate.

Judah Diament

Judah Diament   (LinkedInGoogle Scholar)
Department Chair, Clinical Associate Professor of Computer Science
Program Director, Undergraduate Data Science

  • IBM T.J. Watson Research Center: 2000-2014
    - Patents: 14 U.S. patents issued
    - Publications: 6 conference papers & journal articles
    - Impacted multiple IBM software products, including shipping code
  • Goldman Sachs: 2014-2016, Vice President, Finance Engineering
  • Alumnus of Y.U., R.I.E.T.S.

Richard Dutton

Richard Dutton   (LinkedIn)
Adjunct Professor of Machine Learning

  • Facebook: Feb. 2021 to Present Head of Content Understanding in AI Platform
  • Google: Dec. 2017 - Feb. 2021 Head of Machine Learning for Corporate Engineering
  • Millennium: 2017 Head of Data Analytics and Cloud Application Development
  • Barclays: 2005-2014 Director; Head of Rates Technology Asia
  • Microsoft: 2000-2001 Speech Recognition

Dave Feltenberger

Dave Feltenberger   (LinkedIn)
Adjunct Professor of Computer Science

  • Google: 2012-Present Senior Staff Software Engineer, Quality & ML in Google Maps; founder of Corp Eng ML team
  • Goldman Sachs: 2010-2012 Senior Software Engineer, post-execution trading platform

Van kelly

Van E. Kelly   (LinkedIn)
Clinical Professor of Computer Science

  • Bell Labs: 1993-2001
    - Distinguished Member of Technical Staff
  • Motorola: 2006-2010
    - Senior Member Technical Staff

Avraham Leff

Avraham Leff   (LinkedIn, Google Scholardblp)
Professor of Computer Science

  • IBM T.J. Watson Research Center: 1991-2017
    - Patents: 18 U.S. patents issued, more pending
    - Publications: 44 conference papers & journal article
    - Impacted multiple IBM software products, including shipping code

Dr. F. Patricia Medina

F. Patricia Medina   (LinkedIn, Google Scholar)
Assistant Professor of Computer Science

  • Publications: 6 papers, 3 theses, 40 conference talks, seminars, and posters.
  • Worcester Polytechnic Institute: 2016-2019.
  • Brown University: Spring 2019. Visiting Postdoctoral Scholar, ICERM, Computer Vision.
  • Oregon State University: 2014-2016. Instructor
  • Bowling Green State University: 2006-2009. Graduate Research & Teaching Assistant
  • Universidad Simón Bolívar: 2004-2006. Instructor (Assistant Professor level)

Avi Rosenfeld

Avi Rosenfeld   (LinkedIn, Google Scholar)
Adjunct Professor of Computer Science

  • Lev Academic Center (Machon Lev) 2007-present
    - Publications: 23 journal articles, 8 book chapters, 39 conference articles, and 9 posters.
    - Patents: 1 U.S. patent issued, 2 pending
    - Head of Data Science Program of Machon Lev
  • One of four member of Israel’s Education Counsel responsible for judging all academic degrees in Data Science
  • Alumnus of M.T.A., Y.U., Azrieli, R.I.E.T.S.

Ben Wymore

Ben Wymore   (Google Scholar)
Assistant Professor of Computer Science

  • Patents: 9 U.S. patents issued
  • Intel
    - Application Services and Research Laboratoryspeech recognition and natural grammars for residential productivity applications
    - Intel Tablet Organization
  • Crestron Electronics
    - Software for touchpanels, audio servers, and other products
    - Team lead for Crestron's iOS and Android applications

A number of courses in the Computer Science major are taught by the faculty of the Department of Mathematics.

The department employs advanced undergraduate students as tutors and teaching assistants. Students who are interested in such activities should contact Professor Diament.

Computer Science Orientation 2020

Torah Wisdom & Guidance Specifically for C.S. Majors from R' Mayer Twersky

Introduction to the C.S. Major, by Judah Diament, C.S. Professor & Department Chair

Meet the Rest of the Computer Science Faulty

Greetings & Experience From Recent Alumni

Jacob Saks, class of '19 and Software Engineer at BlackRock, and Micah Hyman, class of '20, Summer intern at Amazon and semicha student at RIETS, share thoughts on how YC CS prepared them for their jobs.

C.S. Student Summer Internships During COVID-19

When COVID-19 shutdowns radically reduced the number of Summer internships that were available, the Yeshiva College Department of Computer Science undertook multiple efforts to create opportunities for our students. In this video, you will hear from six students who got their internships through these efforts, what they learned and did at their internships, and how YC CS prepared them for their jobs.

C.S. Student Summer Research During COVID-19

This is our second video about what YC CS did for our students in the Summer of COVID-19. In this video, you will hear about the research done by three students who spent the Summer doing Data Science research with one of our professors, Dr. F. Patricia Medina, and their thoughts on how YC CS prepared them and helped them.

Alex Schlesinger, Summer with Nomura Holdings and Google

Although the CS department did step up to help many students who did not have internships, that should not distract from the fact that a number of our students did in fact have internships on their own. In this video, Alex Schlesinger describes his Summer experience with Nomura Holdings and Google.

General Guidance on the Tech Interview Process

Your preparation for getting a job starts from day #1 in your C.S. classes, since ultimately to get and keep a good job you have to learn, know, and apply computer science, and our FAQ section includes a number of questions that are relevant to preparing for your career. However, the gatekeeper of tech jobs is the tech interview process. This page provides some basic guidance and resources for that process.

Interviewing done right! is an extraordinarily good video from an accomplished Googler - Raymond Blum, Google - on the dos and don'ts of interviewing - this is a must watch!

Preparation Before Interviewing

  • Do a LOT of practice on HackerRank and/or LeetCode - step #1 of the interview process for strong companies is usually a code challenge, and those challenges usually come from one of these sites. (LeetCode Premium is well worth the money.)
  • Have a clear personal story about your interest and experience in CS to communicate to an interviewer
  • Resume:
    • Your resume paints a picture of who you are and what you know – you have to design it to stand out and provide a clear and consistent message.
    • Your resume should include a link to your GitHub profile, and any/all impressive coding projects you have done, whether in school or on your own, should be publicly accessible there. Be sure to have a separate github repository for separate projects, and don’t forget to give each project a clear description that shows up on your profile page, and a well-written README.md file that talks about the project
    • It's a huge plus to have at least one big programming project posted to your GitHub that you have done that was NOT required by school
  • Networking:
    • you should create a LinkedIn profile ASAP, and start networking.
    • connect with people in the industry, they can help you with jobs
    • connect with alumni, get them to review your resume and give you practice interviews. Do many practice interviews – it takes a lot of practice to get good at it

Applying

  • Places to Search for jobs: LinkedIn, StackOverflow, and the web sites of companies you’d like to work at
  • Apply to MANY (>100) jobs, even those that are not in your top 30 choices
    • you have no idea where you will get an offer from
    • every interview is very important practice even if it is with a company you would not accept an offer from
  • DO NOT stop applying to more jobs until you have been offered, and have accepted, a job

Marketing Yourself During the Interview Process

  • Before any interview with a live person (as opposed to merely a code challenge), you must research the company you are applying to and:
    • …know all about the company and the services / products it sells
    • …be able to relate your personal story to that company
    • …have a very good reason why you want to work at that company
    • …speak and connect with at least one person in the company beforehand, both to be able to mention them on an interview and also to get to understand the culture
  • Prepare answers for standard behavioral interview questions. For example, be ready to talk about situations in which you:
    • …were challenged
    • …problem solved
    • …failed, and what you learned from it
    • …took on a leadership role; how did you do so, and what did it entail
  • Come in ready to discuss big projects you did in YC CS, since they are impressive and unique
  • Be ready to talk through every/any aspect of your resume, projects, etc. with both technical and non-technical people
  • Give complete and thoughtful answers to any interview questions, but don’t drone on and on.
  • Humor is risky – it can help you, but if taken the wrong way it can completely sink you as well.
  • Always be 100% honest, but think before volunteering unnecessary information

Interview Preparation Resources

Tech interviews are notorious for focusing on how quickly one can solve somewhat contrived data structures & algorithms problems on the spot. Some resources to prepare for this are:

Web sites

Books

Specific Internship Opportunities

For first and second year students: Microsoft: Explore Microsoft

For everyone: Major League Hacking Fellowship Programs

Yeshiva College Department of Computer Science Academic Integrity Policy

Resources & Collaboration

The allowed resources for Computer Science assignments will vary from course to course, and even from assignment to assignment, including:

  • what sources of information, printed or online, may be accessed and used,
  • the level of collaboration and discussion which is permitted among students,
  • whether someone else's previous work may be incorporated, as-is or with changes

The rules may be communicated to the students in several forms, including:

  • assignment instructions
  • lecture slides
  • course syllabi
  • class emails
  • online class forums (e.g., Canvas, Piazza, GitHub)

Students are responsible to know and follow both the general rules for each course as well as the specific provisions for each assignment. If there is ambiguity about a particular resource, they should assume that its use is not permitted, pending any further clarification by the professor.

Citing Sources

When submitting work for any assignment for which use or adaptation of code (or other work) written by others has been allowed by the professor, the student is required to follow the citation practices outlined by the professor in the specific course or assignment. If the professor does not outline a specific citation practice, students must do the following:

  • Insert the URL of the code and the date of retrieval. Add more details if it will help the reader get a clearer understanding of the source.
  • If you adapted the code, you should indicate “Adapted from:” or “Based on” so it is understood that you modified the code.

If you are not clear on what is required and acceptable, ask your instructor.

FAQ About the C.S. Major

We assume that students know absolutely nothing about C.S. coming in to COM 1300, Introduction to Computer Science.

It depends on which area of C.S. one works in. The vast majority of professional Software Engineers will use very little advanced math, or none at all, and the little math they do use is not more than what they learned in their K-12 schooling. Data Science, graphics algorithms, and cryptography, for example, are all heavily mathematical, but the vast majority of Software Engineers in industry spend their time working on applications and/or infrastructure that do not involve any significant amount of math at all. And, even within Data Science etc., a large percentage of the Software Engineers that work in those areas simply use code libraries that are built by someone else, and do not actually understand all the underlying math. To summarize: the vast majority of Software Engineers use very little math, if any.

There is no one personality, set of abilities, or interests that guarantee success or failure in C.S. Whether one is "left brained" or "right brained" is no indication - one person will approach software engineering primarily as a creative process while another will approach it primarily as an analytic process, and both are valid and powerful, depending on the exact situation. Whether one has enjoyed or despised math in his K-12 education is not much of an indication either - aside from the fact that there are many factors that go into K-12 math going well or badly that have little to do with student ability, some parts of C.S. are highly mathematical and some parts are entirely divorced from math. The only way to know if C.S. will work for you is to try it.

Our B.S. in C.S. tracks are designed to give students the opportunity to succeed without going to graduate school. Students in the B.A. track, however, are strongly encouraged to get at least a masters.

Many students have been in MYP, had a night seder, and completed the Distributed Systems or Data Science tracks. Having a consistent night seder does, however, require managing your time well, e.g. using your Friday, motsaei Shabbos, and Sunday afternoon wisely. This is no different than continuing to learn throughout the rest of your life - the choices you make when it comes to priorities and time management will greatly impact how much time you have for learning. 

You do not need a minor to get a good C.S. job in any industry. Smart companies hire the best software engineers they can find and are more than happy to teach those software engineers on the job what they need to know about the business/industry. From the perspective of getting a good C.S. job, the best thing you can do in your "copious free time" is build some software that 1) does something that you find interesting, useful, or important 2) is not required by your C.S. courses and 3) you can explain on an interview why you were motivated to build specifically that and how you did. Then create a public GitHub repository, push the code there, and include a link to it on your resume. If there are courses offered that are relevant to what you'd like to accomplish in life personally or professionally, you should take those courses, but you should not think that having a minor per se on your resume is necessary for your career. It is a much better use of your time to think through how to develop yourself into the person and/or professional you want to be, and take the courses (or pursue activities outside the classroom) that will give you the intellectual, emotional, and spiritual tools to get there.

No - students who complete the B.S. in C.S., Data Science track, get a minor in math automatically.

Other Y.C. departments / programs grant a B.A. degree, not a B.S., and according to the rules of NYSED you can not double major when one major is a B.S. and one is a B.A. You can, however, earn a minor from any other YC department.

You do need your own laptop to do your C.S. work. If you are buying a new laptop, we strongly recommend a large amount of RAM (at least 16GB, preferably 32GB or even 64GB) and a fast internal drive (e.g. SSD NVMe). If you already own a laptop, we recommend that you not invest in a new one until successfully completing Intro to C.S. and Data Structures. Whether you get a Mac or a Windows laptop is up to you. If you choose a Windows laptop, you may be required for some classes to use the Windows Subsystem for Linux and/or run a Linux virtual machine on your laptop.

B.S. in C.S. students must be full time students at Y.U. for a full 8 semesters. The B.A. has the same residency requirements as any other B.A. program from Y.C.

As a rule, we do not allow for C.S. classes to be taken in the summer. Please do not expect to get credit for any C.S. summer courses without getting written permission from the C.S. department chair before taking the summer class. Math classes (i.e. those whose course name/number starts with "MAT", not "COM) that are required for a C.S. major may be taken in the summer as long as the given course at the given university has been approved by the math department. However, we very strongly recommend that C.S. students use their summers to get work experience in C.S. both to build their resumes and to help them explore and understand what area in C.S. they would like to pursue a career in.

B.S. in C.S. students must be on campus full time for 8 semesters. In the case of a student switching majors, we will try to work with you to help you graduate after 8 semesters on campus by catching up via summer courses. Whether it is possible to catch up or not will depend on what other courses (e.g. math courses) you took before deciding to switch in to the B.S. in C.S. program and/or other factors in your personal situation.

No - B.S. in C.S. students must be full time students for a full 8 semesters. If you find that you have extra room in your schedule, you can take any classes you like in YC or SSSB, and/or transfer credits from your UTS program in order to be registered for a full 12 credits each semester.

Yes. The B.S. in C.S. program is a part of Yeshiva College, and all the same rules regarding to what counts for credit in other majors apply here as well.

Skip past mobile menu to footer