comp sci

(Computer Science)

Mitchell Morris (4 reviews)

Knarig Arabshian (2 reviews)

Bernard Yee (2 reviews)

Salvatore J Stolfo (10 reviews)

Christos Papadimitriou (10 reviews)

Michael Mauel (9 reviews)

Peter Belhumeur (6 reviews)

Eleni Drinea (7 reviews)

Martin Haugh (3 reviews)

Gail Kaiser (10 reviews)

Maria Chudnovsky (9 reviews)

Luca Carloni (2 reviews)

Robert Holliday (4 reviews)

Omri Weinstein (5 reviews)

Ravi Ramamoorthi (6 reviews)

Angelos Keromytis (10 reviews)

Nazlı Yurdakul (1 review)

Paul Etienne Vouga (1 review)

John Ruoyu Zhang (1 review)

Abishek Sainath Madduri (1 review)

Joshua Reich (1 review)

Adam Cannon (80 reviews)

Rocco Servedio (15 reviews)

Swapneel Sheth (13 reviews)

William Reinisch (1 review)

Hui Qiao (1 review)

Steven Bellovin (7 reviews)

Celeste Layne (2 reviews)

Alexandros Biliris (13 reviews)

Xiaodong Wang (15 reviews)

Chris Murphy (4 reviews)

Nizar Habash (2 reviews)

Iasonas Petras (1 review)

Ilia Vovsha (5 reviews)

Xi Chen (7 reviews)

Alfred Aho (19 reviews)

Augustin Chaintreau (6 reviews)

Nakul Verma (9 reviews)

Julia Hirschberg (8 reviews)

Matthew Burnside (1 review)

Jon Feldman (1 review)

Tal Malkin (18 reviews)

Ramana Isukapalli (2 reviews)

Tony Dear (16 reviews)

Henning Schulzrinne (12 reviews)

Jae Woo Lee (42 reviews)

Mihalis Yannakakis (14 reviews)

Mitchell Laurent Flax (1 review)

Eleni Drinea (1 review)

Blake Shaw (1 review)

Donald Ferguson (17 reviews)

Ken Ross (8 reviews)

Yassine Benajiba (8 reviews)

Andreas Mueller (1 review)

Steven Feiner (18 reviews)

Ramachandran Shankar (1 review)

Aurelie Lozano (1 review)

Lydia Chilton (3 reviews)

Allison Lewko (3 reviews)

Salman Baset (1 review)

Paul Blaer (46 reviews)

Priyank Singhal (1 review)

Clifford Stein (31 reviews)

Alexander Pasik (33 reviews)

Jonathan Reeve (1 review)

Susan McGregor (1 review)

Lior Horesh (1 review)

Yechiam Yemini (6 reviews)

Dawn Strickland (10 reviews)

Edward Shortliffe (1 review)

Alexandr Andoni (2 reviews)

Claire Monteleoni (1 review)

Terence Pender (3 reviews)

Stephen Unger (11 reviews)

Shree Nayar (12 reviews)

Shlomo Hershkop (23 reviews)

Vijay Saraswat (1 review)

Simha Sethumadhavan (8 reviews)

Eugene Galanter (47 reviews)

Baishakhi Ray (3 reviews)

Peter Allen (23 reviews)

Ryder Moody (1 review)

Don Yu (1 review)

Emily Stolfo (2 reviews)

Ang Cui (2 reviews)

Itshack Pe'er (14 reviews)

Vishal Misra (5 reviews)

Dragomir R. Radev (2 reviews)

German G Creamer (3 reviews)

Anargyros Papageorgiou (12 reviews)

Jessica Ouyang (1 review)

Eugene Wu (1 review)

Yuan Jochen Kang (1 review)

Daniel Rubenstein (28 reviews)

Steven Nowick (3 reviews)

Michael Sikorski (2 reviews)

Daniel Bauer (16 reviews)

Shuran Song (1 review)

Tristan Boutros (6 reviews)

Stephen Edwards (21 reviews)

Erich Nahum (1 review)

Michael Collins (7 reviews)

Luis Gravano (16 reviews)

Jonathan Gross (27 reviews)

Brian Smith (2 reviews)

Ansaf Salleb-Aouissi (22 reviews)

Vinod Prabhakaran (1 review)

Joseph Traub (13 reviews)

Satyen Kale (2 reviews)

Apoorv Agarwal (2 reviews)

Philip Gross (4 reviews)

Roxana Geambasu (2 reviews)

Bailey Pierson (1 review)

Eitan Grinspun (10 reviews)

Henryk Wozniakowski (4 reviews)

Timothy Paine (4 reviews)

Jonathan Voris (6 reviews)

Michael Rubin (1 review)

David Sidorsky (33 reviews)

Bo Dincer (1 review)

James Fei (2 reviews)

Tony Jebara (12 reviews)

Seung Geol Choi (5 reviews)

Martha Kim (43 reviews)

David Elson (3 reviews)

Gil Zussman (3 reviews)

Iddo Drori (3 reviews)

Debra Cook (1 review)

David Vawdrey (1 review)

Junfeng Yang (4 reviews)

Kathleen McKeown (8 reviews)

Ashish Chhabria (1 review)

Jason Nieh (23 reviews)

Xi Chen (7 reviews)

Michael Reed (3 reviews)

Gregory Whalen (2 reviews)

Bert Huang (1 review)

Daniel Joseph Hsu (6 reviews)

Lakshmi Nadig (1 review)

Carl Vondrick (1 review)

Sambit Sahu (5 reviews)

Dan Federman (1 review)

John Kender (20 reviews)

Bjarne Stroustrup (1 review)

Xiodang Wang (2 reviews)

Christina Leslie (5 reviews)

  • Advanced Algorithms
  • Advanced Cryptography
  • Advanced Database Systems
  • Advanced Internet Services
  • Advanced Logic Design
  • Advanced Machine Learning
  • Advanced Programming
  • Advanced Software Engineering
  • Advanced Topics in Image-Based Rendering
  • Algorithms for Data Science
  • Analysis fo Algorithms I
  • Analysis of Algorithms I
  • Analysis of Algorithms II
  • Applied Machine Learning
  • Artificial Intelligence
  • Biometrics
  • Cloud Computing
  • Cloud Computing
  • Cloud Computing and Big Data
  • Combinatorial Theory
  • Combinatorial Theory
  • Compilers
  • Computational Aspects of Robotics
  • Computational Genomics
  • Computational Linear Algebra
  • Computer Animation
  • Computer Architecture
  • Computer Graphics
  • Computer Networks
  • Computer Science Theory: Computability - Models - Computation
  • Computer Vision
  • Computer Vision and Machine Learning for Mobile Platforms
  • Computing in Context
  • C++prog For Derviatives Pricing
  • Database System Implementation
  • Data Structures and Algorithms
  • Data Structures in C
  • Data Structures in Java
  • Deep Learning
  • Digital Logic
  • Discrete Mathematics
  • Distributed Systems Fundamentals
  • Emerging Scholar's Program
  • Essential Data Structures
  • Fundamentals of Computer Organization
  • Fundamentals of Computer Systems
  • Graph Theory
  • Honors Data Structures
  • Honors Data Structures and Algorithms
  • Honors Introduction to Computer Science (Java)
  • Information Theory
  • Information Theory in TCS
  • Internet Technology, Economics, and Policy
  • Introduction to Agile Project Management Using Scrum
  • Introduction to Biomedical Informatics
  • Introduction to Computational Complexity
  • Introduction to Computational Learning Theory
  • Introduction to computer programming (Fortran)
  • Introduction to Computers
  • Introduction to Computer Science for Engineers/Applied Scientists - Python
  • Introduction to Computer Science in Java
  • Introduction to Cryptography
  • Introduction to Databases
  • Introduction to Quantum Computing
  • Introduction to Software Engineering
  • intro to agile project management
  • Intro to Computer Science- Programming in C
  • Intro to Computer Science- Programming in Java
  • Intro to Computer Science- Programming in MATLAB
  • Intro to Information Science
  • Java
  • Language Library Design
  • Machine Learning
  • Malware Reverse Engineering
  • MIDI Music Production
  • Natural Language Processing
  • Network Security
  • Numerical Algorithms and Complexity
  • Object-Oriented Programming and Design in Java
  • Operating Systems I
  • Principles and Practices of Parallel Programming
  • Principles of Innovation and Entrepreneurship
  • Programming Languages and Translators
  • Programming Languages: C#
  • Programming Languages: C++
  • Programming Languages: Java
  • Programming Languages: Java Scripting Languages
  • Programming Languages: MATLAB
  • Programming Languages: Python
  • Programming & Problem Solving
  • Projects in Computer Science
  • Ruby On Rails
  • Scientific Computation I
  • Security Architecture & Engineering
  • Sequential Logic Circuit
  • Serverless cloud computing
  • Spoken Language Processing
  • Topics in Computer Science: Advanced Topics in Computational Complexity
  • Topics in Computer Science: Computational Approaches to Emotional Speech
  • Topics in Computer Science: Computational Aspects of Geometric Design
  • Topics in Computer Science: Intro to Social Networks
  • Topics in Computer Science: Intro to the Semantic Web
  • Topics in Computer Science: Machine Learning for NLP
  • Topics in Computer Science: Machine Translation
  • Topics in Computer Science: Search Engine Technology
  • Topics in Computer Science: Social Networks
  • Topics in Computer Science: Storytelling with Streaming Data
  • Topics in Computer Science: Video Game Design and Production
  • Topics in Computer Science: VoIP Security
  • Topics in Learning Theory
  • User Interface Design
  • Web-Enhanced Information Management
  • May 2021

    Many of the reviews so far are unfair and lack perspective. If you're into thinking, actually understanding why, and experiencing what it is like to work as a software engineer, Professor Ferguson's class is the one to take. Yes, the instructions are vague. Do you think your manager at work will give you a step-by-step outline of what to do? If you're at an elite organization that solves tough problems in the world (honestly doesn't that sound nicer than being a coding monkey???) then your manager will say, here is the exciting problem - solve it. Your will need to then reach out to people at your organization, do research online, use your brain. Yes, if you're new at a project and your boss is good, you can reach out to your boss AFTER you exhausted the other avenues. Otherwise, why does your boss need you over someone else if they always need to hand-hold you ever step of the way? Professor Ferguson stands in the middle where he provides helper code, provides recorded "how-to" examples to get you started, and is always there to help, whenever you ask. I've actually never seen a professor make himself so available to his students. Your manager probably won't even give you as much time! If you're working on something important and novel after school, often there is no one "right" answer. Prof. Ferguson involves some such questions on his homework. Yet, instead of being excited, I saw many students get flustered and not know what to do when they are asked to think for themselves. For example, he asked students to create an ER diagram on some data. Students asked him questions such as "is there a one-to-many relationship for x and y data?" That is a coding monkey question! Ferguson pushes students to up-level their thinking to that of a best-in-class engineer. For example, the best engineers out there say, "based on what we are trying to achieve and what data we have, here is my recommendation on how we organize it." There are many other points on why Prof. Ferguson is one of the top professors I've ever taken, but I'll leave you with one more. Many professors tell you to memorize some rule, you memorize it, you answer on the test, and then you forget. Professor Ferguson asks you questions where you end up understanding the why and internalize the why. For example, everyone who has taken a databases class knows the different types of data storage, such as a star schema. However, do you actually know how to take some data that is not pristine, wrangle it into a star schema, and then query it? In what cases would you use a star schema over another layout? What data should actually be on what table? How do you take the data from Third Normal Form to a Star Schema? I bet if you didn't take Ferguson's class then you will need your hand held when you start working as you wouldn't actually know the answers.

    May 2021

    I took this course with Prof Dear but this review is more about the course than the professor. COMS 4701 is very much "plug-and-chug" and leaves very little room for self-discovery. If this does not match your learning style, you will probably feel like you're wasting your time. Because there is so much hand-holding involved, it's easy to score well without doing all that much work. That said, I think this course is a great introductory course for non-majors or people just starting CS. Material--very broad overview of AI and high-level discussions of concepts. To get a sense of what the book is like, you can just check out the Wikipedia page on "Artificial Intelligence" or any of the topics on the syllabus. You will not find much more depth in 4701. Quizzes--the quizzes are mostly multiple choice and it's all open book. Extra study time generally is not rewarded as there's not that much depth involved. Also, expect some wrong multiple choice answers to be adversarial in nature so be prepared to second guess your response all the time. Homework--About 75-80% of the code is written all ready, and the remaining code is not difficult to implement. Most of it was translating pseudocode into python. The short answer responses were also not terribly interesting. "Is this implementation more efficient than the other", "Is this guaranteed to find a solution", etc. Grading--There is a curve, but it's probably not necessary since everyone is scoring in the 80s and 90s. The grading rubric is well defined and expectations for each assignment/quiz are clear. I would recommend this course to people without a background in CS or math. The professor is very knowledgeable and the TA's are helpful. Or, if you want an easy A, go for it.

    May 2021

    I found this class incredibly elitist. Professor Cannon constantly made jokes/comments about how special/smarter-than-everyone-else Columbia students are. He also dropped his air of kindness and approachability to snap at students in lectures who asked something he didn't like. I'm guessing from the positive reviews that many students enjoy getting their egos stroked for attending a top school, but it just screams of insecurity. He even compared Columbia to San Jose State once just to flex how much "smarter" his students are... I have no idea why he felt the need to make fun of an institution with far fewer resources that makes higher education more successful. He's nice enough but seems caught up in prestige and unable to see the enormous privilege he himself holds. In addition, the class was average at best at introducing java. Cannon assigned large portions of a textbook to explain many topics that could be distilled much more efficiently through slides/lectures. This class was a review for me, but I could see how difficult it must have been for someone new to the material to try to sort through the readings to find the important information. Overall, this class is straight forward and some of the TA's are incredible. It's not the worst thing you could take, but there is so much room for improvement.

    May 2021

    Do not take this class with Celeste. The lectures were incredibly boring and at times she would look at the slide and go "I don't know what this slide is about" and move on to the next. She also presented herself as flexible and easygoing but was not in my experience. The class lectures did not relate to the homework and I think a lot of people in the class had previous javascript experience, but those of us who didn't basically had to teach it to ourselves with webpages she would link. Overall really boring lectures and tedious homework that didn't relate to the lectures. Participation is graded but all you have to do is answer questions in the zoom chat and you can just wait a second and then copy what everyone else said (that strategy probably won't work in person though)

    May 2021

    The course is insightful and covers good ground in terms of operating systems and how they work - This course is great for any CS student who isn't sure of what the OS does and how. The course gets into the weeds of the Linux kernel which depending on your point of view can be good or something that will haunt you for the rest of your days. There are very good reasons why you should take this course but be sure of your reasons and make sure you have the time to dedicate to this course because it is time-consuming and mentally draining in some ways. The rest of this review can kind of be summarized in -"Workload is hell be ready for the pain going in" PSA: If you're a masters student who already understands OS well enough and isn't from the software systems track and doesn't really need to enhance their C/linux kernel programming - DO NOT TAKE THIS COURSE (unless you like to suffer in which case nothing better really) Hours upon hours are spent staring at the Linux kernel and going one level deeper till you've opened up 70 tabs and you've forgotten where you've come from who you are and why you even exist. The first homework has really strict grading but is otherwise easy, aside from that though the rest of the Homeworks are a pain although they do broaden your horizons I would have been happier to not deal with them Office Hours are a must if you hope to survive and are not already a kernel GOD and luckily we had a good bunch of TAs who understood the material and were mostly willing to point you in something of a direction(god help your souls if you gets a bad bunch of TAs which is unlikely). If you get a bad team you will get torched and the 40+ hours that it usually takes per homework could easily turn into double that (I lucked into a good team but I saw the fate of others) The finals and midterms due to the COVID semester were open book/note and coding based and quite related to the homework and not so much linked to the theoretical lecture content. I think it will go back to whatever it was earlier after COVID