the whole class was essentially one big project. Build a linux shell. But it's done with partners, and my partner did pretty much nothing. Choose your partner wisely.
If you don't have a solid CS10-CS14 foundation, this class will be harder (I didn't have a solid foundation, hence my 8 rating.) Start the work plenty ahead of time. Take it with a reliable friend with a good work ethic.
You have one big project(done with a partner) in this class that's basically a Linux shell written in C++, which you complete in parts as the weeks go by. It's not too difficult but it will take a lot of time trying to figure out the correct functions to utilize to get it working in C++.
Hated this class with Jeff. Get the textbook and study off that, much better than lectures/slides for exams. The labs are easy but assignments are killer. Do not procrastinate on them, you won't do well. Lots of reading up on system calls which sucked.
Find yourself a good partner, this is a team based class. People complained through out the entire quarter on how an individual was doing all the work. We had a graduate student as a prof and he didn't really explain the design patterns or uml diagrams well. This is one of the classes that reminds you that Community College CS classes were amazing because you actually had your prof teach you the material during the labs, here you learn it all on your own.
As long as you do the labs and try understand them, you should be fine on the design patterns that you will be tested on. There is a linux shell project that you should not procrastinate on and should definitely begin working on the day they are assigned because you'll be spending a lot of time learning how to use the required functions and THEN implementing them. Depending on how you program your project, you may have to go back and rewrite most of it so be careful in your design choices. The last assignment is going to be horrifying if you did not code the previous ones well. Overall, it's an alright class with a time-consuming project.
pretty fucking difficult, the professor talks extremely fast that its hard to process, couldnt understand jack shit, the powerpoints are the only thing left in this humanity for this class. the midterm was brutal, the assignments were probably the hardest shit i have ever done in my life. it required time, sacrifice, patience, never giving up after many seg faults error with that stupidfuking terminal that u cant debug and ya but nonetheless it was a journey
Took this with Professor Crites and this class requires a lot of time, especially if you are a transfer student. It's a huge learning curve from writing small programs to designing and coding an entire Linux Shell throughout the course. The design patterns may seem easy to understand in the slides, but when asked to apply them, will be difficult. Do yourself a favor and ASK FOR HELP. For the first couple of weeks I went to the professor's office hours almost every chance I got. I would ask the professor questions that I would consider to be base knowledge for many students, and Professor Crites was more than helpful in answering my questions and informing me on what I should catch up on in terms of prereq knowledge. Super approachable professor who will go out of his way to help you. The tests aren't all too bad if you review the slides and understand the gist of the design patterns. The assignments and labs are what you should focus on if you want to pass the class. If you do well on them you can pass the class on the basis of labs and assignments alone. The main project that you will be working on throughout the course does not really require any specific design pattern, so it's up to you to decide how you will design it. My advice for the assignment is think of the long term and make sure that your code is flexible and able to add features relatively easily. Otherwise you will run into the issue that I and many students have in this class where you will find yourself rewriting your code almost every assignment in order to meet spec and make things work. You will not be allowed to switch partners for assignments (at least I don't think) so choose your partner wisely. Labs aren't too bad, except the instructions for the labs can seem kind of vague at times and most of the time will be spent figuring out what the hell you're actually supposed to do or what the output is supposed to be. But once you understand the instructions it's not too bad. DO NOT, wait until the day or even a few days before your assignment is due to start your code. I've tried it, don't bring that stress and anxiety upon yourself like I did. You will lose your mind. You will question your major. Don't give up, always ask for help and everything will be okay.
Took this class with Crites. The class wasn't extremely difficult, it was just very time consuming and tedious. Lectures are straightforward and if you miss a class the slides will be posted online. The textbook is recommended, but get it anyways because it will help you if you get confused from the lecture slides. Labs are chill if you have a good partner, but beware of the hammer server, it's such a pain to use. The midterm was so bad he had to curve. The final on the other hand was MUCH easier, split up into two days so the final lecture was the multiple choice portion and the scheduled final day was the conceptual/written portion. Make sure you know how to draw UML diagrams properly because they will show up on both midterm and final. The assignments are basically the final project but split up into 4 assignments, so each assignment builds from the previous one. You have to build a C++ shell, and he does not teach any of this during lecture so read up on it early before he starts posting assignments. If you screw up an assignment, you have to go back and fix it before you move onto the next one. MAKE SURE YOU HAVE A GOOD PARTNER. Be prepared to lose a lot of sleep and skip classes to finish these off. GO TO OFFICE HOURS, Crites will help you and explains things a lot easier.
Big fun 10/10 (difficulty)
This class was hard because Crites assumes that everyone just pops out of the womb knowing linux. Pick a good partner. Focus on the labs and the assignments. Lectures are mostly worthless if you're keeping up with the work, with the exception of the last one on ethics. There will be questions verbatim from that lecture on the final.
I took this course with Brian Crites. The only hard part of this course is the project. The actual material is fine, because you get taught the subject abstractly before you apply it in lab which is very nice. The labs are essential to passing the exams. The project is a bit difficult because of the documentation that has to be read and the partner you have. My partner did some work later on in the quarter, but the beginning was all me. So that made it difficult for my partner to understand all my code. I eventually finished it all, and it was fun.
Make sure you get a partner that will not slack off on you, otherwise you are screwed.
still have PTSD taking this with Crites
Crites, I think the labs/class project was easy but the disconnect between his Lectures and Labs/the class project was insane. The most useful thing in the course (unit testing) was glossed over and not once brought up in a meaningful way in the course, he just linked us to someone else's paper on it. Which was very vague and not helpful in applying our skills. Everyone else seems to say that he was helpful, but despite going to office hours he was very curt/unhelpful to me. I'm not an idiot and could hold my own in conversations with him, but I received the most help from my peers or those at the transfer center, who helped me walk out the logic of the unix terminal without giving away the answers. The grader for the course, Luis Garcia, was one I had to constantly fight with because he graded things super late. He graded our major class assignments during Week 11. Crites also added "ethics assignments" that I think as a minority are pretty insensitive. One was "define your personal definition of hate speech", wtf? I'm all for adding representation to social issues and the consideration with technology is a good idea, but this was a horrible execution. He's gone now so idk if this is relevant anymore.
PRAY TO EVERY GOD THAT YOU GET LUTFOR, "Md Lutfor Rahman" is the BEST professor and it's because he's also a student so he knows EXACTLY what we're all going through. He's updated the slides from Crites and made them better. He DOES have a pretty thick accent, but he makes up for it by being super cool and lenient with grading schedules + helping us out so forth. The brunt of the responsibility of this class is the shell project, so try to start it early by yourself. You will be building a linux-type shell, it's pretty hard to build so fast (and yes, you'll be building the whole thing, they just reveal more features as the quarter goes on), so I'd get a headstart.
The labs are simple as long as you do it on time and don't procrastinate. The exams were easy as long as you understood the design patterns and how they work. Took this with professor Md Lutfor Rahman spring 2020.
A lot of busy work and projects, instructions always unclear from Professor Reem, made the class more difficult then it should have been.
Honestly, wasn't as bad as people make it sound. Its more about what your life is gonna be like in the actual cs industry rather than learning more code. Pretty cool
Do yourself a favor: expose yourself to design patterns before you take the class. Learn Strategy pattern, so you can get a good wraparound on what a design pattern is. The class is a great feel for how it's like to use your programming language in practical applications like industry. The hardcore stuff is the design patterns, so if you got those down, the class should be an easy A if you put in the effort. DO NOT, I repeat, DO NOT PROCRASTINATE ON THE LABS.
Professor Ali was awesome. But to get an A you really have to understand the software development methodologies and design patterns to do well. Also pick good a good lab partner and final project group.
Had Professor Ali for this class. Very important to choose a good lab and project partner to work with you, you'll depend on them heavily. If your partner is very bad or very poor in C++, you will most likely have a more difficult time in this class.
This class is HEAVILY project-based so make sure you get a good lab partner/final group. We had 3 exams that made up like 23% of our grade and the other 75% or so was all from the labs and the final project. The final project replaces the final so start it early so you're not up till 5 grinding the day before it's due. Most of the actual course content is just learning git and design patterns, so make sure you know how the design patterns work before the exams.
Exams were tough but luckily they weren't worth too much. Last lab on the visitor pattern was really hard so try and get that out of the way asap. Start the final project early and make sure your uml diagram has the two design patterns shown in them by the time phase 2 is done. Get a good group and make sure your groupmates are contributing code to the project frequently
As people said before, if you are a transfer student and dont know c++ you are going to struggle. for labs you have to know pointers pretty well and for the project you have to know how to link together files and understand cmake which isnt really taught in the actual class, you're just supposed to know. If you're not a transfer student though, it really isnt hard at all. midterm and final was really easy and labs had extra credit if you did it early. If you get a good partner for lab and a good group for project youll be fine.
Took it with Reem Ali Fall 2023. She posted all of her lecture notes on Canvas, so I barely went to any lectures. There were two midterms about lecture material, but a cheat sheet was allowed (midterm questions covered almost everything in the slides). The final was a group coding project (text-based RPG, task manager, etc). Groups of four, but make sure to pick a GOOD group and don't procrastinate because it's a lot of work if you leave it for Week 10.
Class is very important and full of information that is critical for CS. You pick a partner at the start of the quarter that you will have to work with for the entire time. Take the time to find a partner who is diligent and not completely lost. If you don't, you can get stuck doing all the work for the weekly labs.
Took with Reem Ali. She’s really great. You don’t need to worry about the lecture material in this class AT ALL, it’s incredibly simple to understand, and she allows “cheat sheets” on her exams. What you DO need to worry about are projects and labs. I cannot stress this enough- PICK GOOD PARTNERS. Overall, the class requires a good amount of effort, with a wide variety of assignments, but not much brain power.