Fundamentals of Machine Learning (CSCI-UA 9473)

Credits: 4
Duration: 14 Weeks
Dates: Mon
Credits: 4
Duration: 14 Weeks
Dates: Mon,Wed
Credits: 4
Duration: 14 Weeks
Dates: Mon,Wed

Machine learning is an exciting and fast-moving field of computer science with many recent consumer applications (e.g., Microsoft Kinect, Google Translate, Iphone’s Siri, digital camera face detection, Netflix recommendations, Google news) and applications within the sciences and medicine (e.g., predicting protein-protein interactions, species modeling, detecting tumors, personalized medicine). This course introduces undergraduate computer science students to the field of machine learning. Students learn about the theoretical foundations of machine learning and how to apply machine learning to solve new problems. Assuming no prior knowledge in machine learning, the course focuses on two major paradigms in machine learning which are supervised and unsupervised learning. In supervised learning, we learn various methods for classification and regression. Dimensionality reduction and clustering are discussed in the case of unsupervised learning

Computer Science (Undergraduate)
4 credits – 14 Weeks

Data Structures (CSCI-SHU 210)

Data structures are fundamental programming constructs which organize information in computer memory to solve challenging real-world problems. Data structures such as stacks, queues, linked lists, and binary trees, therefore constitute building blocks that can be reused, extended, and combined in order to make powerful programs. This course teaches how to implement them in a high-level language, how to analyze their effect on algorithm efficiency, and how to modify them to write computer programs that solve complex problems in a most efficient way. Programming assignments. Prerequisite: ICS or A- in ICP. Equivalency: This course counts for CSCI-UA 102 Data Structures (NY). Fulfillment: CS Required, Data Science Required, CE Required.

Computer Science (Undergraduate)
4 credits – 15 Weeks

Sections (Spring 2023)


CSCI-SHU 210-000 (20398)01/30/2023 – 05/12/2023 Tue3:00 PM – 5:00 PM (Late afternoon)at ShanghaiInstructed by Tam, Yik-Cheung


CSCI-SHU 210-000 (20399)01/30/2023 – 05/12/2023 Thu3:00 PM – 5:00 PM (Late afternoon)at ShanghaiInstructed by Simikin, Sven


CSCI-SHU 210-000 (20400)01/30/2023 – 05/12/2023 Wed3:00 PM – 5:00 PM (Late afternoon)at ShanghaiInstructed by Simikin, Sven


CSCI-SHU 210-000 (20401)01/30/2023 – 05/12/2023 Mon11:00 AM – 1:00 PM (Morning)at ShanghaiInstructed by Tam, Yik-Cheung


CSCI-SHU 210-000 (20402)01/30/2023 – 05/12/2023 Wed11:00 AM – 1:00 PM (Morning)at ShanghaiInstructed by Simikin, Sven


CSCI-SHU 210-000 (20403)01/30/2023 – 05/12/2023 Fri11:00 AM – 1:00 PM (Morning)at ShanghaiInstructed by Simikin, Sven

Introduction to Computer Programming (Limited Prior Experience) (CSCI-UA 3)

This course introduces object-oriented programming, recursion, and other important programming concepts to students who already have had some exposure to programming in the context of building applications using Python. Students will design and implement Python programs in a variety of applied areas.

Computer Science (Undergraduate)
4 credits – 15 Weeks

Sections (Fall 2022)


CSCI-UA 3-000 (9289)09/01/2022 – 12/14/2022 Tue,Thu11:00 AM – 12:00 AM (Morning)at Washington SquareInstructed by Arias Hernandez, Mauricio

Introduction to Cryptography (CSCI-SHU 378)

The study of modern cryptography investigates mathematical techniques for securing information, systems and distributed computations against adversarial attacks. We introduce fundamental concepts of this study. Emphasis will be placed on rigorous proofs of security based on precise definitions and assumptions. Topics include: one-way functions, encryption, signatures, pseudorandom number generators and zero-knowledge proofs. Prerequisite: Algorithms, theory of probability, or permission of the instructor. Fulfillment: Mathematics Additional Electives; Honors Mathematics Electives; CS Electives.

Computer Science (Undergraduate)
4 credits – 15 Weeks

Sections (Fall 2022)


CSCI-SHU 378-000 (18506)09/05/2022 – 12/16/2022 Mon,Tue3:00 PM – 4:00 PM (Late afternoon)at ShanghaiInstructed by Guo, Siyao

Computer Science Senior Project (CSCI-SHU 420)

The purpose of the Senior Project is for the students to apply the theoretical knowledge they acquired during the Computer Science program to a concrete project in a realistic setting. During the semester, students engage in the entire process of solving a real-world computer science project. It requires students to pursue a long-term, mentored learning experience that culminates in a piece of original work. At the end of the semester, the proposed work comes to fruition in the form of a working software prototype, a written technical report, and an oral presentation at a capstone project symposium. Prerequisite: senior standing. Fulfillment: CS Required.

Computer Science (Undergraduate)
4 credits – 14 Weeks

Introduction to Computer Programming (CSCI-SHU 11)

An introduction to the fundamentals of computer programming. Students design, write, and debug computer programs. No prior knowledge of programming is assumed. Students will learn programming using Python, a general purpose, cross-platform programming language with a clear, readable syntax. Most class periods will be part lecture, part lab as you explore ideas and put them into practice. This course is suitable for students not intending in majoring in computer science as well as for students intending to major in computer science but having no programming experience. Students with previous programming experience should instead take Introduction to Computer Science. Prerequisite: Either placed into Calculus or at least a C in Pre-Calculus Fulfillment: Core Curriculum Requirement Algorithmic Thinking; EE Required Major Courses. Note: Students who have taken ICS in NY, Abu Dhabi, and Shanghai cannot take ICP.

Computer Science (Undergraduate)
4 credits – 14 Weeks

Sections (Spring 2022)


CSCI-SHU 11-000 (17503)02/07/2022 – 05/13/2022 Mon8:00 AM – 10:00 AM (Morning)at ShanghaiInstructed by Simon, Daniel


CSCI-SHU 11-000 (17504)02/07/2022 – 05/13/2022 Tue3:00 PM – 5:00 PM (Late afternoon)at ShanghaiInstructed by Simon, Daniel


CSCI-SHU 11-000 (23632)02/07/2022 – 05/13/2022 Wed8:00 AM – 10:00 AM (Morning)at ShanghaiInstructed by Simon, Daniel


CSCI-SHU 11-000 (23633)02/07/2022 – 05/13/2022 Wed8:00 AM – 10:00 AM (Morning)at ShanghaiInstructed by Liu, Yijian


CSCI-SHU 11-000 (23634)02/07/2022 – 05/13/2022 Thu3:00 PM – 5:00 PM (Late afternoon)at ShanghaiInstructed by Simon, Daniel


CSCI-SHU 11-000 (23767)02/07/2022 – 05/13/2022 Thu3:00 PM – 5:00 PM (Late afternoon)at ShanghaiInstructed by Liu, Yijian


CSCI-SHU 11-000 (26252)02/07/2022 – 05/13/2022 Tue9:00 PM – 10:00 PM (Evening)at ShanghaiInstructed by Spathis, Promethee


CSCI-SHU 11-000 (26253)02/07/2022 – 05/13/2022 Thu9:00 PM – 10:00 PM (Evening)at ShanghaiInstructed by Spathis, Promethee

Introduction to Computer and Data Science (CSCI-SHU 101)

This course has three goals. First, the mastering of a modern object-oriented programming language, enough to allow students to tackle real-world problems of important significance. Second, gaining an appreciation of computational thinking, a process that provides the foundations for solving real-world problems. Finally, providing an overview of the very diverse and exciting field of computer science – a field which, arguably more than any other, impacts how we work, live, and play today. Prerequisite: Introduction to Computer Programming or placement exam. Equivalency: This course counts for CSCI-UA 101. Fulfillment: Core Curriculum Requirement Algorithmic Thinking; Computer Science Major Required Courses; Computer Systems Engineering Major Required Courses; Data Science Major Foundational Courses; Electrical and Systems Engineering Major Required Major Courses.

Computer Science (Undergraduate)
4 credits – 14 Weeks

Sections (Spring 2022)


CSCI-SHU 101-000 (17449)02/07/2022 – 05/13/2022 Tue8:00 AM – 10:00 AM (Morning)at ShanghaiInstructed by Gu, Xianbin


CSCI-SHU 101-000 (17509)02/07/2022 – 05/13/2022 Thu8:00 AM – 10:00 AM (Morning)at ShanghaiInstructed by Yin, Wen


CSCI-SHU 101-000 (17572)02/07/2022 – 05/13/2022 Thu8:00 PM – 9:00 PM (Evening)at ShanghaiInstructed by Yin, Wen


CSCI-SHU 101-000 (17596)02/07/2022 – 05/13/2022 Wed9:00 AM – 11:00 AM (Morning)at ShanghaiInstructed by Gu, Xianbin


CSCI-SHU 101-000 (17751)02/07/2022 – 05/13/2022 Fri9:00 AM – 11:00 AM (Morning)at ShanghaiInstructed by Yin, Wen

Natural Language Processing (CS-UH 2216)

The field of natural language processing (NLP), also known as computational linguistics, is interested in the modeling and processing of human (i.e., natural) languages. This course covers foundational NLP concepts and ideas, such as finite state methods, n-gram modeling, hidden Markov models, part-of-speech tagging, context free grammars, syntactic parsing and semantic representations. The course surveys a range of NLP applications such as information retrieval, summarization and machine translation. Concepts taught in class are reinforced in practice by hands-on assignments.

Computer Science (Undergraduate)
4 credits – 7 Weeks

Sections (Fall 2024)


CS-UH 2216-000 (9051)08/26/2024 – 10/11/2024 Mon,Wed2:00 PM – 3:00 PM (Early afternoon)at Abu DhabiInstructed by Habash, Nizar

Computational Social Science (CS-UH 2219E)

Credits: 4
Duration: 15 Weeks
Dates: Mon,Wed

This course introduces students to various techniques and concepts that are essential for data scientists. It also provides an in-depth survey of the latest research methodology and topics that prepare the students to produce high quality research in Data Science. This seminar-based course will cover applications from different fields, such as sociology, psychology, network analysis, and artificial intelligence. In this context, the course will cover the use of computational techniques to model and predict various phenomena using real data. Students will be required to complete a course project, and to write up the results in a short article.

Computer Science (Undergraduate)
4 credits – 15 Weeks

Computer Systems Organization (CS-UH 2010)

Credits: 4
Duration: 15 Weeks
Dates: Mon,Wed

The course focuses on understanding lower-level issues in computer design and programming. The course starts with the C programming language, moves down to assembly and machine-level code, and concludes with basic operating systems and architectural concepts. Students learn to read assembly code and reverse-engineer programs in binary. Topics in this course include the C programming language, data representation, machine-level code, memory organization and management, performance evaluation and optimization, and concurrency.

Computer Science (Undergraduate)
4 credits – 15 Weeks

Discrete Mathematics (CS-UH 1002)

Credits: 4
Duration: 15 Weeks
Dates: Mon,Wed
Credits: 4
Duration: 15 Weeks
Dates: Mon,Wed
Credits: 4
Duration: 15 Weeks
Dates: Mon,Wed,Tue,Thu

Discrete mathematics concerns the study of mathematical structures that are discrete rather than continuous, and provides a powerful language for investigating many areas of computer science. Discrete structures are characterized by distinct elements, which are often represented by integers. Continuous mathematics on the other hand deals with real numbers. Topics in this course include: sets, counting techniques, logic, proof techniques, solving recurrence relations, number theory, probability, statistics, graph theory, and discrete geometry. These mathematical tools are illustrated with applications in computer science.

Computer Science (Undergraduate)
4 credits – 15 Weeks

Computer Networks (CS-UH 3012)

Credits: 4
Duration: 15 Weeks
Dates: Tue,Thu
Credits: 4
Duration: 15 Weeks
Dates: Tue,Thu,Fri

Have you ever wondered how the internet or Facebook is able to support a billion simultaneous users? This course teaches students the design and implementation of such Internet-scale networks and networked systems. Students learn about the principles and techniques used to construct large-scale networks and systems. Topics in this course include routing protocols, network congestion control, wireless networking, network security, and peer-to-peer systems. Upon completing this course, students are able to initiate and critique research ideas, implement their own working systems, and evaluate such systems. To make the issues more concrete, the class includes several multi-week projects requiring significant design and implementation. The goal is for students to learn not only what computer networks are and how they work today, but also why they are designed the way they are and how they are likely to evolve in the future. Examples are drawn primarily from the internet.

Computer Science (Undergraduate)
4 credits – 15 Weeks

Capstone Project in Computer Science 1 (CS-UH 4001)

Credits: 4
Duration: 15 Weeks
Dates:
Credits: 4
Duration: 15 Weeks
Dates:
Credits: 4
Duration: 15 Weeks
Dates:
Credits: 4
Duration: 15 Weeks
Dates:
Credits: 4
Duration: 15 Weeks
Dates:
Credits: 4
Duration: 15 Weeks
Dates:
Credits: 4
Duration: 15 Weeks
Dates:
Credits: 4
Duration: 15 Weeks
Dates:
Credits: 4
Duration: 15 Weeks
Dates:
Credits: 4
Duration: 15 Weeks
Dates:

The capstone experience in Computer Science requires students to engage in a long-term, mentored learning experience that culminates in a piece of original work. The specific project is developed during the Research Seminar in Computer Science. During the Capstone Project, the proposed work comes to fruition in the form of a research paper along the lines of those in a scholarly computer science journal. Students also participate in a capstone research symposium during which they present their work orally.

Computer Science (Undergraduate)
4 credits – 15 Weeks

Capstone Project in Computer Science 2 (CS-UH 4002)

Credits: 4
Duration: 15 Weeks
Dates:
Credits: 4
Duration: 15 Weeks
Dates:
Credits: 4
Duration: 15 Weeks
Dates:
Credits: 4
Duration: 15 Weeks
Dates:
Credits: 4
Duration: 15 Weeks
Dates:
Credits: 4
Duration: 15 Weeks
Dates:
Credits: 4
Duration: 15 Weeks
Dates:
Credits: 4
Duration: 15 Weeks
Dates:
Credits: 4
Duration: 15 Weeks
Dates:
Credits: 4
Duration: 15 Weeks
Dates:

Continuation of CS-UH 4001

Computer Science (Undergraduate)
4 credits – 15 Weeks

Introduction to Computer Science (CS-UH 1001)

Credits: 4
Duration: 15 Weeks
Dates: Mon,Wed
Credits: 4
Duration: 15 Weeks
Dates: Mon,Wed,Tue,Thu
Credits: 4
Duration: 15 Weeks
Dates: Mon,Wed,Tue,Thu

Computer Science is an innovative and exciting field that focuses on producing efficient solutions for solving problems in any field. This course introduces students to the foundations of computer science. Students learn how to design algorithms to solve problems and how to translate these algorithms into working computer programs using a high-level programming language. The course covers core programming concepts including basic computation, data structures, decision structures, iterative structures, file input/output, and recursion. Students also learn the elements of Object Oriented Programming (OOP), such as objects, classes, inheritance, abstraction, and polymorphism. A final project allows students to combine these concepts to produce a large program of their design.

Computer Science (Undergraduate)
4 credits – 15 Weeks

Artificial Intelligence (CSCI-UA 9472)

Credits: 4
Duration: 14 Weeks
Dates: Tue,Thu
Credits: 4
Duration: 14 Weeks
Dates: Tue,Thu,Thu

There are many cognitive tasks that people can do easily and almost unconsciously but that have proven extremely difficult to program on a computer. Artificial intelligence is the problem of developing computer systems that can carry out these tasks. We will focus on three central areas in AI: representation and reasoning, machine learning, and natural language processing.

Computer Science (Undergraduate)
4 credits – 14 Weeks

Design Project (CS-UY 4523)

Credits: 3
Duration: 15 Weeks
Dates: Tue,Thu
Credits: 3
Duration: 15 Weeks
Dates: Tue,Thu
Credits: 3
Duration: 15 Weeks
Dates: Tue,Thu

Students or several students work with a faculty member and/or graduate students on a current topic in computer science. Each term, a project course with a particular theme is offered by the Department of Computer and Information Science. A faculty member assigns individual or group projects. The project course is highly structured and supervised closely by faculty. Students are expected to use the design and project-management skills they learned in CS-UY 4513 Software Engineering. Alternatively, students may work with a faculty member on an individual project of mutual interest. A written report and oral presentation are required. | Prerequisite: CS-UY 4513 or CS-UY 3513.

Computer Science (Undergraduate)
3 credits – 15 Weeks

Penetration Testing and Vulnerability Analysis (CS-UY 4773)

Credits: 3
Duration: 15 Weeks
Dates: Mon

The course will start off with an in-depth review of the exploitation mitigations introduced in modern operating systems. The instructors will demonstrate their limitations through simple examples and gradually develop the basic exploitation techniques into more complicated methods applicable to real-world exploitation. Unlike most other exploitation courses, we will focus on approaching exploitation as a creative problem-solving process rather than an exercise of applying cookbook techniques to common types of vulnerabilities. Most of the course will focus on the hands-on application of the material through exercises and leading the students through the development of reliable exploits for recently patched vulnerabilities in widely used software. | Prerequisites for Brooklyn Engineering Students: CS-UY 3933 and (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better). | Prerequisites for CAS Students: CS-UY 3933 and CSCI-UA 201. | Prerequisites for Abu Dhabi Students: CS-UY 3933 and CS-AD 103

Computer Science (Undergraduate)
3 credits – 15 Weeks

Problem Solving and Programming I (CS-UY 1113)

Credits: 3
Duration: 15 Weeks
Dates: Mon,Wed
Credits: 3
Duration: 15 Weeks
Dates: Mon,Wed
Credits: 3
Duration: 15 Weeks
Dates: Mon,Wed
Credits: 3
Duration: 15 Weeks
Dates: Mon,Wed,Fri
Credits: 3
Duration: 15 Weeks
Dates: Mon,Wed,Fri
Credits: 3
Duration: 15 Weeks
Dates: Mon,Wed,Fri
Credits: 3
Duration: 15 Weeks
Dates: Mon,Wed,Fri
Credits: 3
Duration: 15 Weeks
Dates: Mon,Wed,Fri
Credits: 3
Duration: 15 Weeks
Dates: Mon,Wed,Fri

This course introduces problem solving and computer programming and is for undergraduate engineering students who do not have prior experience in programming in any language. The course covers fundamentals of computer programming and its underlying principles using the Python programming language. Concepts and methods introduced in the course are illustrated by examples from engineering and other disciplines. | Co-requisite: EX-UY 1; Anti-requisite: CS-UY 1114

Computer Science (Undergraduate)
3 credits – 15 Weeks

Software Engineering (CSCI-UA 474)

An intense hands-on study of practical techniques and methods of software engineering. Topics include advanced object-oriented design, design patterns, refactoring, code optimization, universal modeling language, threading, user interface design, enterprise application development, and development tools. All topics are integrated and applied during the semester-long group project. The aim of the project is to prepare students for dynamics in a real workplace. Members of the group meet on a regular basis to discuss the project and to assign individual tasks. Students are judged primarily on the final project presentations.

Computer Science (Undergraduate)
4 credits – 15 Weeks

Sections (Fall 2021)


CSCI-UA 474-000 (21436)09/02/2021 – 12/14/2021 Mon,Wed2:00 PM – 3:00 PM (Early afternoon)at Washington SquareInstructed by Bloomberg, Amos