4 ms·
I think a but source of this issue is the house amount of unrelated classes I must take in college. I'm very lazy when it comes to things I have absolutely no i
I think a but source of this issue is the house amount of unrelated classes I must take in college. I'm very lazy when it comes to things I have absolutely no interest in. I think I can provide some useful insight.
Right now I'm at New Jersey Institute of Technology. I am in the Ying Wu college of computing science. After this semester (at the start of the third year) I will have no more computer science classes I need to take for my degree. I personally believe I am very competent with the skills required to be a computer scientist in the real world (Software engineering, system design, managing, etc).
The remaining classes I have are as follows.
* "Software Architecture" where you don't actually need to write software. I think you just learn about PHP or something from what a friend told me. (One of my professors said you didn't need to write any code for the class)
* Proofs where you just learn discrete math.
* Calc 1, 2, Linear, Diff EQ (in that order)
* Physics 1 & 2
* ~ 2 hum classes
* 2 PE classes
* 4 Non-CS courses in lower level (easier like EE100) and upper level (harder EE300) course numbers
The only CS related thing I need to do is my senior project which is just to write some software and hand it in with a write up. This will be very easy for me. I'm not going to name names but one of my friends who did this submitted something that I was able to write in a weekend. Theirs was less polished and broke during the presentation (mine is still running). Their write up was good though. So they passed and got their degree.
I've basically got a laundry list of projects on my github page of projects I've done that would work as a senior project (let alone what I've been writing for the research group I'm working for).
I've also TA'd for a CS class here. Both times my class was in the top 10% scoring similarly to the honors sections. Not all my work but I like to think my explanations of the topics helped.
So why am I still here? Why do I need those check boxes? I'm basically stuck doing BS that I suck at because they want me to be "well rounded". I don't think that's 1) a reasonable goal to expect, 2) what college is for, 3) what im paying for.
The reason I have to take calc 1 and physics 1 still is because I failed my first year. Only those too classes. Even with 2 Fs on my transcript my CS classes kept my GPA at a ~2.9. Funnily enough I'm working in the physics department writing software for physics PhDs and talking with them on a reasonable level of understanding about their research even though I couldn't pass Physics 1. I'm also the treasurer for the Ham radio club (I'm KD2JAO and I'll be at Dayton or wherever this next hamfest). I have a pretty ok understanding of propegation and radio and I'm currently studying for my general. But I couldn't pass Physics 1.
Why? I think a large amount of reasons.
The first and most prominent one is I don't care about what was taught. It was all projectile motion which is asinine and boring.
Second was I have a life and other classes I cared about that were far more interested. I could either do well in my classes I liked or do meh in all my classes. I also had a lot of family troubles (death, divorce, moving, etc)
The final is more technical and out of scope for this conversation.
If we removed unimportant classes from the curriculum we wouldn't have this "I never get to sleep BS" and the times you would loose sleep would be because you love what you're working on. (I stayed awake in bed staring at my cieling some nights thinking of better solutions to my CS programming assignments assignment)
I think the bigger problem here is employers requiring 4-year Computer Science degrees when they don't actually want computer scientists, they want software engineers.
Thus the Computer Science zeitgeist as a whole becomes this unholy combination of academic things relevant to computer science and practical things relevant to software engineering, instead of actually focusing on computer science and having a separate 2-year program for software engineers.
Why don't you get an internship and take a leave of absence afterwards if the company will offer you a full time position? If you don't want to finish your degree and you can get a job offer you don't need to go back. It should be noted that this will make getting into grad school ever next to impossible and getting a work visa outside the USA very, very hard at best.
For Physics try the Structure and Implementation of Classical Mechanics. It's SICP for Classical Mechanics. I will leave to others the reasons to know in depth Discrete Mathematics and Calculus.
If you have so many ideas for a senior thesis, such ability in Phyics and so little desire to do the courses, why not try and get out of it? You say you can talk intelligently to Physics Ph.D. students and do good work with them. If that's true could you do enough meaningful work to get second authorship on a paper? That would go a long way to persuading the relevant person to waive one course's requirements. But you need to be really, really persistent and annoying. I have seen people make an entire semester of tuition disappear by being really persistent, and get bureaucrats to make up a transfer of credit agreement just for them by being really annoying.
All that is more work than doing the classes but possibly more fun.
I do highly recommend doing some decent humanities courses though. You're unlikely to ever write at such length again, to such high standards.
> Why don't you get an internship and take a leave of absence afterwards if the company will offer you a full time position? If you don't want to finish your degree and you can get a job offer you don't need to go back. It should be noted that this will make getting into grad school ever next to impossible and getting a work visa outside the USA very, very hard at best.
I'm pretty happy where I am right now because I do enjoy the coures that ARE CS related. I really like challenging myself and that's what the professors like doing. Everyone I've taken seems to enjoy when I ask if my way is better or if they can show me a faster implementation (maybe I break the monotony of "Why doesn't GCC compile this .CPP file"). I'm also working with a group of some of the smartest people I've ever met and writing software for them for money. I couldn't really ask for more: hard problems in school, "I've done this before" problems at work, and people to learn from about business/R&D/scientific reasoning.
I'm getting paid to go to an afterschool special basically and getting to work for people who apreciate my skillset since it's alien to their own for the most part. Similarly I feel the same about them.
> For Physics try the Structure and Implementation of Classical Mechanics. It's SICP for Classical Mechanics. I will leave to others the reasons to know in depth Discrete Mathematics and Calculus.
I'll definetly have to give that a look. What we use here is absolutly useless.
> If you have so many ideas for a senior thesis, such ability in Phyics and so little desire to do the courses, why not try and get out of it?
I have very little clinical CS knowladge. I have a basic understanding of calculious and how radio behaves a little bit. Mish mash some concepts in and I've got a shakey but effective enough base in physics to be able to write the software I need to write.
> If that's true could you do enough meaningful work to get second authorship on a paper
Hopefully that's where this position I'm at is leading to. I've been mentioned in papers but I eventually want to write the parts that deal with data aquasition, agregation, and processing. I don't care about the physics past what's already well understood. I care about the software and systems behind everything.
> That would go a long way to persuading the relevant person to waive one course's requirements. But you need to be really, really persistent and annoying. I have seen people make an entire semester of tuition disappear by being really persistent, and get bureaucrats to make up a transfer of credit agreement just for them by being really annoying.
I doubt that will happen for me sadly. I have a situation right now where I'm basically stuck in a class that I don't belong in. It's a networking class that talks about implementing client & server architectures. In my free time I designed and implemented a network protocall for a game I was working on. It has a lot of features (multiparts, different prority streams, blob data, and untracked packets) that are useful for game networking projects. I took it to the professor and she said "yea it's cool but you still need to take the class". I wouldn't know where to go with this.
Similarly I was in an operating systems class that was talking about OS design & implementation.... only I don't care about design and they didn't teach any implementation. I've dabbled a bit on my own ( https://github.com/gravypod/Simple-OS https://github.com/gravypod/Simple-OS ) and unfortunatly reached the limit of where I can take it in my own learning abilities. I got stuck with figuring how to get FS and MM working. I still got pretty deep into the theory part while reading and was able to pass the class with a B+. Still no way to skip it though even though I was able to boot into C, get IDT and ISRs working. Remap them. Get vidmem working. Handle keyboard and timer interrupts.
Nothing special but further then we went into OSs in the class. Again I couldn't take it anywhere.
> I do highly recommend doing some decent humanities courses though. You're unlikely to ever write at such length again, to such high standards.
Last semester I submitted the same essay 3 times in a row only changing ~10% of the words. The topics were 3 completely different prompts. I got B+, A, A on the papers. A in the course.
Humanities subjects are important but only if they are taught to the standard at which they need to be to provoke thought in the individuals taking the corse and if the course is relevant to the students.
Since I'm looking into going into Software Engineering I should take a class in IP/Copywrights (to understand what I own), a class in Software Development Culture & History (to show me how we got here, what all of this comes from, why we do specific things), and classes in philosophy to excersie the parts of my brain that think about abstract systems.
Sadly none of that will be provided to me in my education because that would be too useful. Instead I'm probably going to take pingpong, walking, and another BS hum class.
All of these things I've had to suppliment myself dating back into highschool when I started programming. I'm lucky I got a head start. There's graduate students at my school who couldn't for their life tell you what historically important programs/protocalls are like vim or telnet is, who don't know who RMS is, who don't know what Bell Labs is, who don't know that by writing code they own it to some degree acording to our country's legal system.
Read the "Credit By Examination" section on this page:
http://www5.njit.edu/registrar/transfer/ http://www5.njit.edu/registrar/transfer/
If you're willing to self-study and pay for some tests, you could potentially CLEP out of Physics, Calculus, your non-CS lower-level course requirements, etc. Talk to your registrar.
Testing out of all the basic stuff could cut your list of remaining classes by half, and you won't have to worry about some bad score in a history class bringing down your GPA because you only cared about passing.
And even if you wanted to be well-rounded, it'd still be a good way to bypass boring general education courses and get into more rigorous and interesting upper level classes where the professors and the students care more about the subject matter.
CBE only applies to specific courses. Not upper level.
" For students interested in gaining credit for more advanced (upper division) courses, most of our academic departments offer a limited number of exams in their academic area. Interested students should contact the individual departments and learn about the availability of tests and procedures for being tested. Once the academic department has approved a request for a departmental examination, the student may be referred to the Counseling Center to complete forms."
For CBE we would just give the students the tests in CS100. It doesn't work the same for upper.
Another problem is they want you to parrot back some things that they say. For instance in our OS class we had to learn about Solaris and memorize some commands for Solaris. We had to learn things like what is "JCL". These were not for the operating systems side. This was because the professor did that at his place of work before coming to NJIT. Naturally since he did it, it has to be good for all of us.
The courses are thrown together so CBE is near impossible. I'd say you need to know less about how something actually works and more about what the professor thinks is important.
You were complaining about having to take non-CS classes, many of which sounded like lower level general education classes, so I offered a potential solution: weed out some of those classes with CLEP exams.
I didn't see that your problem was related to your upper level CS coursework. If you aren't even interested in that, then you really should consider taking a break from school before you burn out. Maybe become a TripleByte candidate or something and get a software engineering job at a startup, or look for a local business that needs someone skilled to help them out.