r/uofu • u/AccomplishedUse1405 • 4d ago
classes & grades 2nd-year transfer student struggling with CS2420
Hey everyone,
I’m a second-year transfer student at the University of Utah, and I’m feeling pretty overwhelmed about CS 2420.
My previous programming experience is mainly Python, and I’m now trying to learn Java. I understand basic programming concepts, but I’m finding the transition to Java harder than I expected.
I’m especially struggling with the basics and knowing what I actually need to learn before getting into the CS 2420 material. I've already asked my professor for help but he just said use chatgpt and google.
I’m also pretty stressed because I’m a transfer student and feel like I’m behind everyone else. I have some programming experience, but Java is making me feel like I’m starting over.
If you have any tips what should I focus on?
•
u/SnooPets5564 4d ago
Honestly, you're just going to have to learn java. You can either do that on your own as soon as you can, or you can take the class later and do 1410/1420 now.
•
u/AccomplishedUse1405 4d ago
Do you have any tips for learning java fast?
•
u/Sensorama 4d ago
You are in a tough spot. It also depends on what your Python coursework did - did you make Python classes and also make classes that inherit from another class? If not, it is not just the Python part, you also are missing important concepts from OO programming that are assumed you know. And the shift from Python to Java is jarring enough.
If you are determined to stick it out, try something like https://java-programming.mooc.fi - and do it all this long weekend.
But the problem is that the time to switch to 1420 was last week and really only possible before tomorrow ends. So you can't decide if this online course is going to make sense in time to make that decision.
•
u/SnooPets5564 4d ago
I learned rust by sitting down and reading the guide that comes with the documentations.
my advice: don't do that
(also, https://www.freecodecamp.org/news/learn-java-free-java-courses-for-beginners/ and choosing a patient partner for the programming assignments)
•
u/SnorkaSound 4d ago
I assume you didn't take 1410/1420 because you're a transfer student?
•
u/AccomplishedUse1405 4d ago
Yeah, exactly. In my other uni we only did python courses in year 1and java was supposed to be for 2nd year.
•
u/Zealousideal-Milk933 4d ago
I was a xfr student too and got smoked by 2420…..took it three times. Graduated now but SHEESH.
if I could go back, I would have started in a pre-req. choose your partner wisely, work closely with the Cade lab tutors.
The 3000 level Software Practice course in C will be a nightmare if you don’t get an extremely solid understanding in 2420
•
u/hellomoto320 4d ago
dang I didnt realize kopta and parker had become so pathetic because kopta is supposed to be co-director of undergrad education with germain. I would recommend using the coding tutor feature in gemini gems. The key thing you need to survive 2420 is studying the data structures and types for object oriented programming. This is also a good tool https://pythontutor.com/java.html#mode=edit. Also go through this book - https://opendatastructures.org/ods-java/ this was the book erin parker suggested when i took the course. warning - 2420 is a weed out class so dont get intimidated by your classmates being ahead because imho most of them dont care about cs and a lot of them plagiarize on assignments. Instead you should focus on the core algorithms and syntax for the exams since they are brutal but you will get through if you work through the problems and the structure
•
u/AccomplishedUse1405 4d ago
Thanks so much for this.
•
u/hellomoto320 3d ago
it's all good - don't give up and compare yourself. Avoid Erin Parker, Cem Yuksel as much as you can. Erin has particularly rude behavior and is kinda demoralizing as a teacher but she teaches alright if you figure out how to survive her. Kopta used to be nice and chill but I guess he's tired of people plagiarizing and constantly challenging their grades. And dont worry about genai - focus on learning the core concepts, math and engineering fundamentals and take the ml classes you need to(the important ones that are not hot topic because those come and go)
•
u/highonlife---- 4d ago
I'm also a transfer student, I did 2420 in python and now my 3500 class is in C#. The first week was not too bad but I want to know If I will have difficulties later on.
•
u/hellomoto320 4d ago
wut they are still teaching c# - c# is a pain and pointless to learn when so many srtudents and the upper level divisions and classes use linux. real cs people use linux/unix so this whole push to microsoft and c# is lame. thought kopta and germain would again fix the curriculum but oh well looks like utah behind the times again
•
u/JeSuisLePain 4d ago
2420 is taught in Java, 3500 is taught in C#, 3505 is taught in C++, etc... the point is to familiarize students with a multitude of programming languages, as there's no way to predict what they'll end up using in their professional life. Learning how to adapt is more important than mastering any one method, especially in an industry as turbulent as ours.
•
u/hellomoto320 3d ago
I know lol I went through the whole program. Problem is Rajeev, erin parker, noelle brown, kopta and the whole utah cs program except for a few profs emphasize language mastery lmao and you dont really learn how to adapt until you take 4400 and os. Those classes and pl really test how well you adapt and learn methods
- cs 1410/1420 - java/java+python
- 2420 - java
- 3500 - C#
- 3505 - c++99 or c++11 depending on the prof
- cs 3810: MIPS(why - they should be teaching C and RISC V but rajeev kinda lazy)
- CS 4400: C99
- OS: C99 or maybe rust now
- programming languages: racket
- database systems - C# LINQ (wtf - focus more on internals and SQL aint nobody write SQL in C#)
•
u/JeSuisLePain 4d ago
The bad news is that 2420 is deliberately overwhelming (it being the weed-out class), so having to learn a new language on top of that will undeniably pose a challenge. The good news is that basically all the OOP concepts you've learned so far will translate between the languages, so most of your adjustments will be syntactical. It also helps that Java and Python aren't that different. In fact, you could probably get the basics of Java down over the course of a single afternoon. I'd recommend sitting down and writing code by hand, then checking it against code from lecture or online examples. Start with simple stuff, like variable declaration and method headers, then move on to more complicated things like classes and inheritance. Make a list of everything that confuses you, then address them one by one.
AI and Google are useful if you know the exact nature of your problem, but if you feel like you're drowning, go to the TA sessions in the CADE lab. Seriously, I had to take 2420 three times, and only on the last time did I pass; not only did I pass, but I got an A. You know how? I went to every TA hour I could and wasn't afraid to ask them stupid questions. They're there to help, and talking to a real person with experience will make things a lot for you than trying to muscle through by yourself.
•
u/lavender_curve 4d ago
You are taking the class because you don't know this material, of course it will be new. If you already knew the material, why take it? This is the name of the game as a software engineer. You will get thrown into the deep end. You'll start a job and they'll use a language or library you don't know. Or you start at a place that has a development stack you have experience with but they do everything in a completely different way.
•
u/emilypii 4d ago
run a few problems through an LLM harness that can grade you on your translation attempts and interactively tell you when you're screwing up or need some trivia about Java.
•
u/AccomplishedUse1405 3d ago
do you know what the best LLM for translation is?
•
u/emilypii 2d ago
Since you're probably not writing complex programs, any will do. try the u's chatgpt edu for students, or, get a claude subscription
•
u/ikerr95 4d ago
If I were you I’d drop the class and switch to 1420 to get Java experience. 1420 is an advanced intro to programming so as a second year you would definitely be up to speed on the programming side, and you could learn the 2 weeks of material taught in that class quite quickly.
Sucks to delay a semester but you could make up for it by taking 3505 and algos at the same time down the line.