Your feedback has been sent to our team.
10 Ratings
Hours/Week
No grades found
— Students
Sections 1
- Lectures are dull
- Every assignment besides the final one is easy if you plan with teammates and go to office hours
- The final assignment is tough but very doable and you have a lot of time to do it
- Exams are annoying but if you just study the slide shows you'll be fine
- Professor is a chill dude
Out of all the CS classes I've taken so far, this one has been the best so far. The course content is really useful, and it really changes the way you think, plan, and write software in a really beneficial way. Most of your grade is the homework assignments which are done in teams. If you want to do well on those assignments, make sure to pick good group members and plan ahead to finish the assignment early. Also, don't procrastinate hw, they take longer than it might seem at first, and all it takes is one small, last-minute change to introduce a bug that can take off a lot of points. I also recommend going to office hours as needed as its a great resource for getting help.
Overall, the course isn't too bad, but it is pretty time-consuming. The class includes 6 group projects that you complete throughout the semester. These aren't too bad, however, they don't show you an auto grader so you have to create your own test cases. It is definitely more difficult to do well on these assignments than normal coding assignments in other courses. You should start them early and spend a considerable amount of time on these assignments, especially the later ones. You should also try to plan out your group early on, otherwise it might be hard to find a group.
Otherwise, the exams aren't too bad, no trick questions, and pretty straight forward. Overall, I think it was a pretty fair exam. The final had a lot of written sections that were looking for specific wording in the answers, so when studying, I would pretty much brute memorize the slides/lecture.
Overall, the course was very structured and easy to follow, professor is very very nice and really makes himself available as a resource to his students. He's very understanding, and it definitely would be worth the time to get to know him!
This class jumps around a lot and there's a lot of stuff to keep track of but it's overall a reasonable amount of work, and you learn some cool stuff. Professor Nguyen organizes each lecture into a "module" with readings and videos as well. I went to lecture mostly but it's not really necessary because the videos just cover the same topics. Professor Nguyen is really organized and also understanding of when the course might be moving too fast.
Your grade is composed mainly (65%) from 6 group homeworks. As long as you have a good group (you can work with the same people up to 4 times) and get on top of these early, they will not be that bad at all. 10% is based off of "quizzes" that are free and designed to make sure you are understanding the big topics. There are 2 exams worth 10% each. These were definitely the hardest part because there's so much information to know so try to study for these as much as you can, but they also aren't worth that much. Finally there was a professional reflection worth 5% where you have to do an unnecessary amount of writing. There is also a lot of opportunities for extra credit.
Overall this course is really manageable compared to other required CS classes. You learn a lot of different skills like testing, JavaFX, SQL, JSON, etc. that are really applicable. Get a good group, stay on top of the lectures, and you will do well in the class.
#tCFS24
This course was well-structured and materials, resources, and expectations communicated and accessible. The course topics were aligned really well with the assigned homework assignments. I appreciated how the topics and concepts covered in the course taught real-world skills that I know will be helpful down the line in my computer science career. This course is the reason I decided to major in computer science. The recorded lectures and detailed readings meant that I got to move through materials at my own pace which I found very helpful. Every assignment is meant to be done in groupwork which can take some time getting used to, but I valued that it emulated what it would be like to work on a professional software development team.
The one aspect of the course I wish was different would be to include the ability to earn back points of homework after receiving feedback. I think this would make the course even more realistic to what it means to be a software engineer in the real world: receiving feedback from a client and making necessary changes to improve the program. It would also offer valuable learning opportunities to enhance student engagement with the content.
Some tips for those coming into the course: start homeworks early, utilize TA office hours, find a good group (it's worth it), many of the quiz questions come directly from assigned readings, get familiar with the aspects of your program-- especially those concepts that were completed by partners, and make sure you understand all content on practice exams (the exams look very similar conceptually but differ with exact questions/answers.
Overall, it was a very enjoyable, project-based course that has given me a strong understanding of engineering programs and a joy to do so!
#tCFS24
Professor Nguyen is hands down the best CS professor I've had at UVa. He is extremely organized. He makes videos covering all of the course lectures and even provides additional online resources to help students better understand the content. Professor Nguyen is very understanding, gave the entire class extensions on homework assignments on multiple occasions and also provided students with ample extra credit opportunities.
This class is very fair. It consists of 6 homework assignments, 10 quizzes (Students only have to complete 8 at 80% to receive full credit and open note), and two exams. The homework assignments are definitely challenging and time-consuming, especially the latter half, but TAs are very helpful during office hours and are also very gracious in their grading efforts, really trying to award you the most points possible. The key to doing well in this course is getting a good group for your homework projects because although you can do them alone, it makes your life a lot easier to work with the 3 teammates Nguyen lets you, so try to take this course with peers that you know and start assignments EARLY.
Additionally, I went to pretty much every lecture, which, to be completely honest, was not necessary because he was great about posting the content online, but I was awarded bonus points for attending lectures and was able to understand course content on a deeper level and beyond the online resources. If you don't have time to do this, try to set aside a couple of hours a week to catch up on all the videos, look over the slides, and understand the code examples.
As a pretty lousy test taker, I did pretty mediocre on both the midterm and final exams and was still able to earn an A- in the course, as they are only worth 10% of your grade each. For these exams, really make sure you understand big concepts, the purpose of code, vocabulary, and coding structures. Be prepared to have to write some code by hand as well.
Everything you learn in this course is VERY relevant if you want to go into SE or are trying to score that SE internship (JSON, FXML, JavaFX, Database Queries, GUI + much more). This class made me love and appreciate CS again, and I am super grateful to have taken it with Professor Nguyen.
#tCFS24
Let's start with the professor. He was nice and tried to make the content relevant. He was also gracious in extending some HW deadlines a bit. He also is a really cool guy and has some really cool experiences, so get to know him.
The course content isn't very hard and is VERY useful for software careers, so make sure you pay attention and learn and practice. There are 6 HWs. The first two HWs are pretty easy and require maybe 1-3 hrs of work on each HW from you (since you're in groups). The next four HWs require a lot more work, but aren't extremely difficult or extremely time consuming, until HW 6 (capstone project, from scratch). The online quizzes are easy and open note, so should be free 100s. The professional reflection was surprisingly a free 100, you had to put a lot of effort and explanation. The midterm and final threw me off, but weren't exceptionally difficult. Make sure you study all the content thoroughly and use the practice exams well.
I took this course alongside DSA2 (CS 3100) and CSO2 (CS 3130), so I kind of let SDE sit on the back burner for most of the semester...but for anyone else planning to take it alongside a heavy workload, I'll still talk about my experience.
The grade for the course is made up of 7 homework assignments, 10 quizzes, 1 midterm about halfway through the semester, and a professional reflection + final exam at the end of the course. The quizzes are virtual and occur weekly/biweekly, with ~10 questions and 5 attempts each. They're really easy but don't forget to do them on time! The homeworks get progressively harder and more time consuming so I'd suggest working with a group (although you can't repeat teammates more than 4 times, so I'd suggest maybe doing the first homework solo). The midterm and final are okay and mostly test that you understand general vocab/big ideas/concepts, with questions like "Why is modularity important?".
I skipped almost all of the classes to go to a conflicting DSA2 section basically the whole semester and instead just took notes on the videos Prof. Nguyen posted for each week's content, which worked pretty well overall. My biggest suggestions would be to just keep up with the content and at least spend an hour or two each week looking over the slides, code examples, and homework to make sure you have a semi-solid understanding. There's a lot of resources for you to learn however you do best: a course pack with article-style writeups on each topic, lecture recordings, slides, and code examples. I personally relied on the slides a lot and didn't have a good enough understanding of the syntax for subjects like database queries and FXML, and you will be expected to do fill-in-the-blank/short-answer style code writing for things like that. And although I skipped a lot, it was more out of necessity than choice; if you have the time to go to class, I'd highly suggest doing so. Prof. Nguyen is very engaging, kind, and funny.
#tCFS24
Tl;dr find good teammates ASAP, don't stress too much over the readings
Your experience in this class almost solely hinges on whether or not you get good people to work with. Assignments can be lengthy even if you start early, so I recommend getting to know some people taking the class before it starts. If you can, try to get friends to take the class with you so you can have a backup plan, and since you can't work with the same people for more than four assignments, get your peers to recommend people at the very least. TA Office Hours are helpful and provide generous times, so attend them whenever possible. Thankfully, while the assignments are a lot content-wise, it's not difficult until the last third of the semester when databases and GUI are covered. If you're able and willing, take this class with another fundamental CS class, since this is probably the only fundamental easy enough to take in conjunction with classes like CSO1 or DSA2. That said, definitely start the final homework earlier since you'll have to code almost exponentially more.
Professor Nguyen's teaching style worked well, and he's gracious enough to provide extra readings and videos from previous semesters. The study guides he recommends you do before each class are a bit much, and you can honestly get away with watching or skimming the videos before lectures without doing the reading or reviewing the code samples he goes over in class anyway. I have heard of some bad interactions with him one-on-one, but I have not experienced them myself.
#tCFS24
The class was pretty interesting and gave me a lot of coding practice. The assignments were also interesting, ranging from making your own Wordle to making a Course Review app. If, like me, you weren’t super comfortable coding in Java when you enter the class, you definitely will be much more comfortable by the end. We worked in groups of 1-3 people, but you couldn’t stay in the same group the whole time.
However, I also found the assignments to be pretty difficult even though they had starter code. Office hours are usually filled with people and it takes forever to get a response, but the Piazza was pretty helpful. I definitely recommend going over all the slides and rewatching the lecture videos before starting the homework. Before we did that, it was extremely frustrating and stressful to be consistently turning in the homework 30 seconds before the due date because we had no idea what was happening. I definitely recommend starting as early as possible. Half our problems also came from setting up JavaFX, so be prepared to waste a lot of time on issues that aren’t even coding-related. Also, the exams were hard but doable as long as you study enough.
Professor Nguyen is an alright instructor during lecture and in his prerecorded videos but myself (and others) have had rude interactions with him one-on-one. He was also not helpful at all during office hours. If you’re not already great at CS and you need some extra help, be prepared for him to be condescending and snappy.
Get us started by writing a question!
It looks like you've already submitted a answer for this question! If you'd like, you may edit your original response.
No course sections viewed yet.