Your feedback has been sent to our team.
30 Ratings
Hours/Week
No grades found
— Students
Haven't finished this class but thought I'd get things started here. I'm sure you're only taking this class because it's required. It's basically all a group project you do throughout the semester in groups of ~8 (can't choose your team). This semester it's creating a new voting system for Virginia elections. Next semester it will be something different. Tough project because you don't get much guidance (I guess the idea is that in real life nobody will be there to hold your hand). Very rewarding and good resume/interview material though. Lecture can be boring but it's pretty important stuff I guess. Not everyone is a fan of Sherriff but he definitely cares a lot about the class and that you get the most out of it. There's probably not a much better professor to take the class with. Overall, you won't love this class so just suck it up and get through it.
Not a horrible class, but I thought grading was pretty harsh if given grades are accurate. Like always, Sherriff is a very engaging and understanding professor and probably one of very few professors at UVA that can help make this class not absolutely dreadful, so if you have to take this class you should probably take it with Sherriff. Expect some TA's to be assholes. For some reason, I feel like Sherriff purposely hires asshole TA's and some are just bad at speaking and communicating in general. I understand we're in the computer science department here, but the people who are your main point of contact for help and grading with assignments should be somewhat better with this. Or at least they should be.
---- Tl;dr: the project is most of your grade, so embrace it and do it well. Good to talk about in interviews. Sherriff is Sherriff. ---- This is one of those classes that you don't appreciate until it's over, kinda like 2150. I really enjoyed the group project for this class. The project makes up 50% of your grade and it's really the only thing you do the entire semester. Sherriff put my group of 8 together extremely well so we worked together incredibly. I was actually sad when the project was over because it was such a great experience. The project for this semester was to create a polling system for elections. We added a lot of extra features and thought through all of our design decisions very carefully so we ultimately received a 19.5/20 for our technical score (he really liked our extra touches, which didn't require a lot of extra coding, just a little bit of extra thought into who would be using the system and how to make it more accessible). Sherriff really values the software development process as a whole, so be sure to stay vigilant with YouTrack, source control, and planning tasks. My best advice is to listen to everyone's input before making decisions and relying heavily on the expertise of people with prior experience (e.g. ask people with Django experience for help, let UI people plan the UI, let the people with project management experience manage the project, etc.). This class is really what you make of it so be sure to take it seriously and you'll be rewarded. I'll definitely be talking about it in future interviews.
I like Sherriff as a professor. Lectures are boring because the material is really dry. The KAs/tests weren't too bad and you could make up the points you missed at the end as your final. The main part is the group project which depends on how your group is. The class is mostly just a simulation of what IRL software engineering is in industry. It's more about going through the software engineering process as a group and coming out on the other side and realizing what you should have done differently. Though this class gave me a lot of grief because my group didn't communicate as well as we should have, it was a really important learning experience. This is required for the BSCS, but for the BACS, if you want to go into software engineering then this a really good class to take. You have to learn Django on your own. Sherriff doesn't know Django and the TAs won't really help you with that. As long as your project is good and you don't completely fail the KA's (which are pretty easy) then you should get an A in the class.
Sherriff is a good professor and you will learn, but it is very difficult to talk to him in person, as he seems very irritated and annoyed. I didn't like that your grade depended on how lenient the TA was. Mine was incredibly annoying and kept trying to find reasons to not give us a good grade. There were other groups who put in half the effort and went by super easily. Overall, it is a meh course, and you probably have to take it, so just push through it!
I'm not really sure why I took this class because I was not interested in the topic and it wasn't required for me. Regardless, Sherriff did his best to make this topic entertaining and kind of succeeded just because of how friendly he is. The whole class is centered around a group project. I got a pretty good team, but I imagine if you don't the class is much worse.
MATERIAL: I completely agree with anon's summation below that this is a course you will not appreciate until it's over. The material is dry, and you will see a lot of people complaining that this is stuff that you would "learn in an internship." I disagree with that generalization. First of all, not all CS majors get specifically software development internships over the summer where they work with a team. So to claim that everyone should already know the material is pretty ignorant, not to mention that that really sells the material short. Sure, a lot of it can be picked up in internships, but there is definitely some stuff you would miss. Like, are you absolutely positive that every CS major doing a software development-type internship will learn about things like licensing? Speaking for myself, I am a 3rd year and maybe only knew about 10% of the stuff he was talking about.
While I did not enjoy learning boring concepts in the moment, looking back now I definitely see why it is required. The way the course was taught presented the material more as concepts that one should consider in the software devlepment process. Sherriff did not make the topics seem like "This is the Bible. You must always do this!" It was more of "This is something you need to consider in the development phase, because this can cause problems XYZ down the line, costing you or your company time and money." Did I like the material? No. Was it useful? Yes.
PROFESSOR: Sherriff really did his dogone best to make this course interesting. He really tries and cares so much about his students (just check out some of his youtube videos of his COVID lectures). He is a good lecturer and does a good job keeping the class engaged as best as possible. He is extremely approachable and willing to help (Although avoid posting memes on Piazza -- he views it as "unprofessional," as a friend of mine found out.) Sherriff is a professor I'd love to see be given a more enjoyable class to teach, because I think that would have the potential to be a fantastic class. He is also the biggest Dad in the CS department.
PROJECT: This is probably the best example of "life's not fair" that exists in the BSCS major (Except if you got stuck with Venkat in comp arch halfway through spring 2019 semester.). Your task is to create a Django framework web app that performs some simple, predetermined (but flexible) functionality. You are put in a group with 5 people and, after doing a HORRENDOUSLY long Django tutorial (I'm talking somewhere in the ballpark of 25 hours of work if you actual do it right), you are basically thrown to the wolves and told "Go, get to work!" There are 6 "sprint checks" throughout the semester with your assigned TA just to make sure you are on track to finish the project on time. Each sprint check will have specific tasks you need to have done in order to get credit. So make sure you pay attention to that. Yes, there are TA office hours who can help with specific Django questions, but as time goes on and your code gets more and more specialized, your odds of getting help from TAs goes down. Get good at utilizing google and stack overflow -- but I mean really, if you aren't already good at that by this point I don't know what to tell you. Anyway, I say that this is a classic "life's not fair" type project because the project CRITICALLY depends on your team. I knew nothing of Django coming into the semester, and I had never even taken a class that used python before (It was not hard to pick up after already learning Java, C, and C++). If you end up with a team of 5 like that, you are going to have a rough time. Now, I think Sherriff makes a point to try and balance teams out (he sends out a survey asking about your experience in python, django, etc. at the beginning of the semester), but you might end up with something like 2 "experienced" 4th years who have checked out of school and don't give a fuck. You're not going to have a good time if that is the case. I'm sorry about that. However, on the flip side, you could end up with a fantastic group, like I did. My group was well balanced. There was enough experience in our group such that we were able to lay the groundwork pretty quickly, which allowed those with less experience, like myself, to catch up, but we didn't have that one try-hard who knows Django inside and out, and "finishes" the project by his/herself in the first two weeks (until you realize in the last week of the semester that your website is actually garbage.) As a result, everyone on our team was expected to contribute their fair share, but we had enough people who could help us out if we ran into problems, and thankfully no one in our group had checked out, so our communication was good. I was definitely lucky in that regard, and I fully believe your experience with the project will depend on your team.
GRADING: Grades are kind of weird, but in a good way in my opinion. We use what is called the "XP" system (similar to World of Warcraft for you gamers out there) in which you "level up" from level 0 up as high as level 20, and your grade is based on what level you get to. Level 20 is an A+, with every subsequent level dropping a letter sign (A, A-. B+, etc.). For us, there was a potential 200,000 XP to earn. To get to level 19 (A), you needed to rack up 190,000 XP. 30% of the XP is obtained from "quizzes" (they are closer to exams honestly) These quizzes are not very hard, especially since he tells you pretty much exactly what to expect on the quizzes in the slides and in lecture. Not only that, but the "final" for the class is actually just an individalized test which asks you similar questions as the ones you missed on the first 6 quizzes for a chance to show that you "mastered" that material (and thus earn the XP from those quizzes back) 15% comes from the 6 "sprint checks" at lab throughout the semester. 5% is from just showing up to lab. 20% comes from the three big individual assignments -- the Django tutorial (which is brutal, start that early!) (10,000 XP), your role's "artifact" paper (15,000 XP), and your team's evaluation of your performance at the end of the semester (15,000 XP). 5% comes from small, random guided practices (small homeworks or in-class assignments). The other 25% comes from your actual project grade given to you by Sherriff at the end of the semester.
TIME COMMITMENT: This is actually kind of a hard one to gauge. It really depends on a lot of factors. For me, I probably averaged 8 hours of work per week for this class, although there were some weeks where I worked 15 hours, 30 hours (Looking at you Django Tutorial), and there were others I worked 2-3 hours. It comes in spurts. Generally, you will spend the most time on it at the beginning and end of the semester plus whenever your artifact is due.
OVERALL: This is a course that I came into with, while not really a bad attitude, I definitely took the attitude that this was a course I wasn't too hyped to take and that I wouldn't learn a ton. It seems every semester I have 1 course that I am kind of suprised about. This semeseter, it was this one. Sherriff is a great professor who does the best he can with dry material. The project is very hit or miss, but if you hit like my group, can be an EXTREMELY rewarding assignment. And, while the material may be dry, if you really make an effort to either go to or listen to the lectures, you will learn to think about problems or topics you may not have considered before. My impression is that I think this course can be cut from the BSCS degree requirements, but that I am in a better position now that I have taken the course.
Sherriff is a great lecturer who loves cracking jokes. He's probably the best lecturer in CS I've had and can explain concepts clearly. The course itself is really practical with a nod to mental health and other real life problems with a few drops. This is a super helpful course to get students somewhat of an industry experience. You'll learn useful concepts such as MVC, agile, project management, GitHub, and Django. Plus, the project you'll work on is something that you can talk to with employers. I would definitely recommend this class for anyone as prep for internships or jobs.
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.