COM SCI 97
Variable Topics in Computer Science
Description: Lecture, one to four hours; discussion, zero to two hours. Designed for freshmen/sophomores. Variable topics in computer science not covered in regular computer science courses. May be repeated once for credit with topic or instructor change. Letter grading.
Units: 4.0
Units: 4.0
Most Helpful Review
Spring 2024 - He is definitely under pressure by the department to maintain a grade distribution so he will give you crappy grades even if you did everything asked of you. This class tends to end up with <15 people so 8 or more people get Bs and Cs for absolutely no reason. He will act really happy throughout the year and tell you that you are doing great and then slap you with a B.
Spring 2024 - He is definitely under pressure by the department to maintain a grade distribution so he will give you crappy grades even if you did everything asked of you. This class tends to end up with <15 people so 8 or more people get Bs and Cs for absolutely no reason. He will act really happy throughout the year and tell you that you are doing great and then slap you with a B.
AD
Most Helpful Review
Spring 2020 - I wrote the following when people asked me for my opinion on CS 97 vs 35L. So this may not be a pure review per se but more like a comparison with 35L. Disclaimer: I am someone who came into UCLA with a healthy amount of programming experience in C/C++ and some experience working with the Linux/Unix terminal. That said I had little to no experience with high-level scripting languages like Python or building web apps using JavaScript/node etc. I took CS 97 as an online class during Spring 2020 because of the COVID-19 pandemic so can say more about that but I will try to compare it with 35L as best I can. I may have missed some (or many) points here. Consult academic counselors/other students for more opinions. First, some similarities between the classes and some advice for them: 1. Eggert is in charge. He writes the assignments and exams. Exams are typical Eggert exams - brutal with low averages. More on this later. 2. They are intended to teach you practical skills for software development - comfort with the Linux terminal, version control (git), scripting, etc. 3. TAs/LAs are your saviors. All of them were AMAZING this quarter. It is in your best interest to seek their help as soon and as often as possible. 4. There is the generous late policy of 2^(n-1) points deducted for n days late (iirc) 5. Exams are open book, open note and if taking online, open computer. 6. You are largely on your own for learning stuff outside the syllabus which, bear in mind, WILL be required for assignments/projects(CS 97) - this is a radical departure from CS 31-33 where you are taught everything and guided almost entirely (if you need it) for all assignments/homework. Not here - time to wake up and smell the coffee. These classes will significantly improve your ability to learn independently. Google and Linux man pages are your best friends. Here are the MINOR differences between the 2 classes: 1. 35L is a 3 unit course, 97 is a 4 unit course (you must take it for 4 units if you want to apply credit towards 35L) 2. 35L is requires 4 hours of lab every week, 97 is a full course requiring 6 hours per week - 4 hours of lecture + 2 hours of discussion (the 2 extra hours may be a major difference for some people) Here are the MAJOR differences: Grading: 35L has 10 programming/homework assignments each weighted 5% (total 50%) and a final exam worth 50%. 97 has 4 programming/homework assignments which count for 5% total, 2 midterms worth 10% each, a final worth 23% and a project worth 50%. The remaining grade is made up of stuff like LA feedback surveys, class evaluation, etc. Lectures: 35L is entirely TA-led. For 97, Eggert delivers 4 hours of lecture every week on various topics. More on this below. Project: 97 has a project requirement (the name of the course is Software Construction Projects) whereas 35L does not . This project is half of your course grade and a major reason this class was introduced in the first place. We had to make something with a client-server architecture and almost everyone opted to build web/mobile apps with node/React. There were groups of 2,3,4 and even 5 people. Now I will share my opinion on CS 97: *Pros:* Lectures: Gotta give credit where credit is due. Eggert is a LEGEND. As a lecturer, he is simply brilliant. Lectures mostly cover shell commands, file systems, Emacs, git, Python, client-server theory, C programming and debugging, etc. along with the history and philosophy of how these techniques came into play. Keep in mind I am someone who is usually irregular with attending lectures but I made it a point to watch and absorb every Eggert lecture and felt it was worth it. In my opinion, this is a major advantage of 97 over 35L which is known to be a broken class for lacking a teaching component like this. Project: Even though I did not enjoy it too much personally, I’m sure I’m an exception here. The project experience was a huge plus for most people. A lot of people made a lot of awesome stuff. A good learning experience on how to build a large piece of software (much larger than CS 32 Project 3), web development, collaboration with team members, using git/GitHub and solving problems. Also, it’s relatively straightforward to score points so you can secure 50% of your grade if you don’t mess up simple instructions. You also get something to put on your resumé. Assignments are worth less: I think 3 of the 4 assignments we had were also in 35L and these assignments can be hard. Fortunately, they aren’t worth much in 97 so you need not stress over them. Caveat: a good chunk (say around 30%) of exam questions were rooted in the assignments. So doing them can help you after all. But knowing how to do them may be sufficient for exams instead of stressing over meeting a deadline. Variety of topics covered: The assignments and project requirements introduce you to a wider variety of material than 35L. Last time I checked, topics like client-server theory, JavaScript, HTML/CSS, React are not covered in 35L but I may be wrong. *Cons:* Exams: 97 has two more exams than 35L. Eggert exams are some of the most stressful ones in our CS curriculum. The exams are based largely on the lectures and assignments so you can sort of prepare for them and in an online quarter, the exams are open computer but a midterm is a midterm and I’d rather not have one than have one. But then these exams are what allow them to weigh the assignments at only 5%; also, if you somehow manage to do well (read: better than most other people) on them, you’re almost guaranteed an A since most people get identical grades for the other components. So I guess with exams, it goes both ways. I also feel the exams were fair - they related to the lectures/assignments and covered the objective of the course as a whole. Assignments: The lectures DO NOT help with the assignments. We covered topics needed for assignments in lecture after the assignment was due. Assignments can put you in a tricky situation. They are medium-long time consuming and worth 0.75% or 1% max. So you may decide to skip them but then the thought of losing those points may linger in your head. Also, as mentioned above, doing the assignments is helpful for exams, so spending those hours may be worth it. YMMV. Preparation for Upper Divs: I am only speaking from my experience of taking CS 111 so far, this may not be true. Almost all of 35L’s assignments are text editors, Python, C programming, scripting and debugging. This is not the case with CS 97 which covers those topics but not at the same level of depth. Problem is, mastering these techniques is essential for success in upper divs. For example, I struggled much more with Project 0 of CS 111 than I would have had I taken 35L. This point is open to discussion though, someone with more upper div experience could comment better. Workload: Looking at the course websites, the workload for CS 97 seems heavier than 35L but since I haven’t taken 35L, I cannot comment on this accurately. TL;DR / Overall Verdict: Go for CS 97 if you like awesome lectures on CS and really want the project experience. The lectures and project will most likely serve you well in the long run. Also, if you are good at taking exams and have good intuition for things, it might be easier for you to get an A since you can use your intuition to convince the graders. On the other hand, take CS 35L if you are someone who loves C programming, the Linux terminal, systems programming and someone who lives and dies by the command line. It will prepare you better for upper division classes (CS 111 at least) and help you master command-line tools better. If I could go back and make a choice again, I would pick 35L since I fall in the latter category and didn’t enjoy web development a lot. I liked CS 97 though, it wasn’t boring or bad in any sense and I ended up learning a lot. But that is just a personal take. Hope this helps.
Spring 2020 - I wrote the following when people asked me for my opinion on CS 97 vs 35L. So this may not be a pure review per se but more like a comparison with 35L. Disclaimer: I am someone who came into UCLA with a healthy amount of programming experience in C/C++ and some experience working with the Linux/Unix terminal. That said I had little to no experience with high-level scripting languages like Python or building web apps using JavaScript/node etc. I took CS 97 as an online class during Spring 2020 because of the COVID-19 pandemic so can say more about that but I will try to compare it with 35L as best I can. I may have missed some (or many) points here. Consult academic counselors/other students for more opinions. First, some similarities between the classes and some advice for them: 1. Eggert is in charge. He writes the assignments and exams. Exams are typical Eggert exams - brutal with low averages. More on this later. 2. They are intended to teach you practical skills for software development - comfort with the Linux terminal, version control (git), scripting, etc. 3. TAs/LAs are your saviors. All of them were AMAZING this quarter. It is in your best interest to seek their help as soon and as often as possible. 4. There is the generous late policy of 2^(n-1) points deducted for n days late (iirc) 5. Exams are open book, open note and if taking online, open computer. 6. You are largely on your own for learning stuff outside the syllabus which, bear in mind, WILL be required for assignments/projects(CS 97) - this is a radical departure from CS 31-33 where you are taught everything and guided almost entirely (if you need it) for all assignments/homework. Not here - time to wake up and smell the coffee. These classes will significantly improve your ability to learn independently. Google and Linux man pages are your best friends. Here are the MINOR differences between the 2 classes: 1. 35L is a 3 unit course, 97 is a 4 unit course (you must take it for 4 units if you want to apply credit towards 35L) 2. 35L is requires 4 hours of lab every week, 97 is a full course requiring 6 hours per week - 4 hours of lecture + 2 hours of discussion (the 2 extra hours may be a major difference for some people) Here are the MAJOR differences: Grading: 35L has 10 programming/homework assignments each weighted 5% (total 50%) and a final exam worth 50%. 97 has 4 programming/homework assignments which count for 5% total, 2 midterms worth 10% each, a final worth 23% and a project worth 50%. The remaining grade is made up of stuff like LA feedback surveys, class evaluation, etc. Lectures: 35L is entirely TA-led. For 97, Eggert delivers 4 hours of lecture every week on various topics. More on this below. Project: 97 has a project requirement (the name of the course is Software Construction Projects) whereas 35L does not . This project is half of your course grade and a major reason this class was introduced in the first place. We had to make something with a client-server architecture and almost everyone opted to build web/mobile apps with node/React. There were groups of 2,3,4 and even 5 people. Now I will share my opinion on CS 97: *Pros:* Lectures: Gotta give credit where credit is due. Eggert is a LEGEND. As a lecturer, he is simply brilliant. Lectures mostly cover shell commands, file systems, Emacs, git, Python, client-server theory, C programming and debugging, etc. along with the history and philosophy of how these techniques came into play. Keep in mind I am someone who is usually irregular with attending lectures but I made it a point to watch and absorb every Eggert lecture and felt it was worth it. In my opinion, this is a major advantage of 97 over 35L which is known to be a broken class for lacking a teaching component like this. Project: Even though I did not enjoy it too much personally, I’m sure I’m an exception here. The project experience was a huge plus for most people. A lot of people made a lot of awesome stuff. A good learning experience on how to build a large piece of software (much larger than CS 32 Project 3), web development, collaboration with team members, using git/GitHub and solving problems. Also, it’s relatively straightforward to score points so you can secure 50% of your grade if you don’t mess up simple instructions. You also get something to put on your resumé. Assignments are worth less: I think 3 of the 4 assignments we had were also in 35L and these assignments can be hard. Fortunately, they aren’t worth much in 97 so you need not stress over them. Caveat: a good chunk (say around 30%) of exam questions were rooted in the assignments. So doing them can help you after all. But knowing how to do them may be sufficient for exams instead of stressing over meeting a deadline. Variety of topics covered: The assignments and project requirements introduce you to a wider variety of material than 35L. Last time I checked, topics like client-server theory, JavaScript, HTML/CSS, React are not covered in 35L but I may be wrong. *Cons:* Exams: 97 has two more exams than 35L. Eggert exams are some of the most stressful ones in our CS curriculum. The exams are based largely on the lectures and assignments so you can sort of prepare for them and in an online quarter, the exams are open computer but a midterm is a midterm and I’d rather not have one than have one. But then these exams are what allow them to weigh the assignments at only 5%; also, if you somehow manage to do well (read: better than most other people) on them, you’re almost guaranteed an A since most people get identical grades for the other components. So I guess with exams, it goes both ways. I also feel the exams were fair - they related to the lectures/assignments and covered the objective of the course as a whole. Assignments: The lectures DO NOT help with the assignments. We covered topics needed for assignments in lecture after the assignment was due. Assignments can put you in a tricky situation. They are medium-long time consuming and worth 0.75% or 1% max. So you may decide to skip them but then the thought of losing those points may linger in your head. Also, as mentioned above, doing the assignments is helpful for exams, so spending those hours may be worth it. YMMV. Preparation for Upper Divs: I am only speaking from my experience of taking CS 111 so far, this may not be true. Almost all of 35L’s assignments are text editors, Python, C programming, scripting and debugging. This is not the case with CS 97 which covers those topics but not at the same level of depth. Problem is, mastering these techniques is essential for success in upper divs. For example, I struggled much more with Project 0 of CS 111 than I would have had I taken 35L. This point is open to discussion though, someone with more upper div experience could comment better. Workload: Looking at the course websites, the workload for CS 97 seems heavier than 35L but since I haven’t taken 35L, I cannot comment on this accurately. TL;DR / Overall Verdict: Go for CS 97 if you like awesome lectures on CS and really want the project experience. The lectures and project will most likely serve you well in the long run. Also, if you are good at taking exams and have good intuition for things, it might be easier for you to get an A since you can use your intuition to convince the graders. On the other hand, take CS 35L if you are someone who loves C programming, the Linux terminal, systems programming and someone who lives and dies by the command line. It will prepare you better for upper division classes (CS 111 at least) and help you master command-line tools better. If I could go back and make a choice again, I would pick 35L since I fall in the latter category and didn’t enjoy web development a lot. I liked CS 97 though, it wasn’t boring or bad in any sense and I ended up learning a lot. But that is just a personal take. Hope this helps.
Most Helpful Review
Fall 2017 - I had zero coding experience prior to UCLA, so I had a difficult time choosing between CS31 and CS97. I ended up taking 97 (obviously) and I'm actually really glad I did. Professor Millstein does a great job of creating a strong base of coding knowledge and clearly explaining more difficult concepts. The class was Python-based and covers recursion, arrays, loops, lambda functions and map/list/reduce. While participation isn't mandatory during lectures, I'd recommend answering questions in class to get the most out the course. CS31 was pretty easy because I took 97 first, and having two languages (Python and C++) as a freshman looks great on a resume, so I'd definitely recommend taking it if you're feeling unsure. Plus, some of the concepts you learn in 97 aren't actually taught until CS32 or upper division CS classes, so it's cool to get a sneak peek so early in the year. Definitely would recommend taking CS97!
Fall 2017 - I had zero coding experience prior to UCLA, so I had a difficult time choosing between CS31 and CS97. I ended up taking 97 (obviously) and I'm actually really glad I did. Professor Millstein does a great job of creating a strong base of coding knowledge and clearly explaining more difficult concepts. The class was Python-based and covers recursion, arrays, loops, lambda functions and map/list/reduce. While participation isn't mandatory during lectures, I'd recommend answering questions in class to get the most out the course. CS31 was pretty easy because I took 97 first, and having two languages (Python and C++) as a freshman looks great on a resume, so I'd definitely recommend taking it if you're feeling unsure. Plus, some of the concepts you learn in 97 aren't actually taught until CS32 or upper division CS classes, so it's cool to get a sneak peek so early in the year. Definitely would recommend taking CS97!