扣扣传媒

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  and .

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鈥檚 Computer Science program is ideally situated near the heart of Manhattan鈥檚 鈥淪ilicon 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 , , or contact Professor Alan Broder, Department Chair at alan.broder@yu.edu

Program Information

Please see the Schedule of Classes for the current semester鈥檚 offerings.

  • 1001 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. This course does not satisfy the prerequisite requirements for further Computer Science courses. Math and Computer Science majors must take COMP 1300.
  •  
  • 1300 Introduction to Computer Science, 4 credits (Spring and Fall)
    This course introduces the application of Computer Science concepts through the development of procedural and object-oriented programs in the Python 3 language. We will cover the following topics in this course: number systems, built-in data types, variables, arithmetic and logical expressions, conditionals and loops, lists, dictionaries, tuples, graphics, input and output, functions and modules, and object oriented programming with custom data types.  A significant part of this course involves actually writing Python programs that implement the above topics 鈥 in labs, for homework, and on exams.  (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.
  •  
  • 1320 Introduction to Data Structures, 4 credits (Spring)
    This course provides a survey of fundamental data structures and algorithms needed to implement efficient, scalable programs. Topics include: arrays, sorting, stacks and queues, linked lists, recursion, binary trees, hash tables, heaps, and graphs. A significant part of this course involves actually writing Python programs that implement the above topics 鈥 in labs, for homework, and on exams.  Writing usable algorithms and data structures depends on their being well-engineered and reliable. This course also covers the application of unit testing techniques to build Python implementations that can be automatically tested for correct functioning as it is built and maintained throughout the code鈥檚 lifetime. (lecture: 3 hours; lab: 2 hours).
    Prerequisite: COMP 1300.
  •  
  • 1504 Discrete Structures, 3 credits (Fall)
    This courses provides a survey of discrete mathematical concepts often arising in computer science. Topics include: 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.
    Pre- or Corequisite: COMP 1300
  •  
  • 2113 Computer Organization, 3 credits (Fall)
    We will cover the following topics in this course: 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.  A significant part of this course involves actually writing programs in machine code, assembly language, and the C programming language that implement the above topics 鈥 in labs, for homework, and on exams.  
    Prerequisite: COMP 1300.
  •  
  • 2314 Linux Programming for Data Analysis, 4 credits (Fall, elective)
    The Linux Operating System provides the infrastructure that powers the vast majority of the Internet.  This course introduces Linux, with a particular focus on writing code and algorithms on the command line, in scripts, and in programming languages, to manipulate massive amounts of data to achieve analytic objectives. The courses cover the following topics: the Linux command line (aka 鈥渢he Shell鈥) and built-in features, permissions and processes, regular expressions on the command line and within code, the 鈥済awk鈥 programming language, version control and automated application building, advanced Python features (such as generators) and its libraries, visualization packages such as matplotlib. There is special emphasis on Hadoop and Spark to build algorithms for massively scalable computations on clusters of Linux computers.  (lecture: 3 hours; lab: 2 hours)
    Prerequisite: COMP 1300.
  •  
  • 2512 Networking & 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 1320, COMP 2113.
  •  
  • 2545 Algorithms, 3 credits (Fall)
    This course introduces several broad algorithmic approaches to solving problems, many interesting and practical algorithms within several problem domains, and formal and empirical methods of assessing the computational complexity of algorithms using the Python 3.10 programming language. The following topics in this course will be covered: union-find and dynamic connectivity, bottom-up merge sort, Graham Scan, graph implementations and their repercussions on various graph algorithms, dynamic programming algorithms, backtracking algorithms, greedy algorithms, graph algorithms, substring search algorithms, implementing finite state machines and regular expressions, data compression algorithms, encryption algorithms, and basic machine learning algorithms. Students will learn to compare algorithmic approaches, both empirically (by timing, or tracking primitive operations). A significant part of this course involves actually writing or understanding Python programs that implement the above topics 鈥 for homework and on exams.
    Prerequisites: COMP 1320, COMP 1504, MATH 1412.
  •  
  • 3562 Database Systems, 3 credits (Spring)
    This course provides students with both the theory and practice of relational database management systems. Topics include an overview of database systems; the relational model and algebra; the data definition language (DDL) and data manipulation language (DML) aspects of Structured Query Language (SQL); database design using E-R models and diagrams; database normalization; primitive and complex data types; physical and data storage; indexing techniques; application development, client-server model, and multi-tiered architecture; query processing and optimization; transactional management and concurrency control; security considerations.
    Prerequisite: COMP 1320.
  •  
  • 3610 Operatin