Skip to main content
Sponsored
CS 3140 Software Development Essentials
Last taught: Fall 2025
☆ Rating
Difficulty
GPA
Instructor
Enjoyability
Difficulty
Recommend
Reading
Writing
Groupwork
Other
Total Hours

Grade Distribution

No grade data available

Average GPA
Students Measured

15 Reviews

Add Review
Spring 2024
4.3
Average

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

Instructor 5.0
Enjoyability 4.0
Recommend 4.0
Difficulty 4.0
Hours/Week 9.0
Spring 2024
3.7
Average

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.

Instructor 3.0
Enjoyability 4.0
Recommend 4.0
Difficulty 3.0
Hours/Week 5.0
Spring 2024
4.3
Average

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

Instructor 4.0
Enjoyability 4.0
Recommend 5.0
Difficulty 3.0
Hours/Week 7.0
Spring 2024
3.3
Average

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

Instructor 3.0
Enjoyability 4.0
Recommend 3.0
Difficulty 3.0
Hours/Week 10.0
Spring 2023
2.3
Average

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.

Instructor 2.0
Enjoyability 2.0
Recommend 3.0
Difficulty 4.0
Hours/Week 12.0
Sponsored