5 ms·
I agree. My computer science classes were taught almost entirely in C. Learning C-like languages is pretty easy, but I constantly feel like I'm using Python inc
by Declanomous 10y ago
I agree. My computer science classes were taught almost entirely in C. Learning C-like languages is pretty easy, but I constantly feel like I'm using Python incorrectly. I feel like I'm trying to take what is elegant in C and implement it in Python, even though what is elegant in Python is very different.
- 0xffff2 10y agoI think it's largely the opposite for current students. My university's CS program is taught entirely using Python and other higher level languages. CS students here don't have to learn C at all anymore; if you want to learn C here, you have to get a Computer Engineering degree.
- santaclaus 10y agoAren't most OS courses taught in C? At least two years ago when I took operating systems (in the US) we had to hack up Linux source in C. Edit: And thinking on it our computer graphics course was in C++ (yea yea C != C++).
- acomjean 10y agoMost OS are written in C. Thus to interface to get good use from the OS you use the libraries which are in C.. (To get networking, shared memory, message passing, process scheduling and all that good stuff). I wrote c wrappers for ada, and it was a pain. Much easier to use C (or C++) to get to OS functionality. As long as OS are written in C, it will be with us. Also useful for embedded. see: /usr/include
- jlarocco 10y agoThere's a huge variety in CS programs and you can't really assume anything about the languages they all use. My understanding is that accreditation for CS degree programs is based on concepts, not implementation details like programming language. My OS class (a while ago) used assembly language for a simple VM, with one or two assignments requiring us to modify the VM itself to implement new instructions required for new OS features (task switching, virtual memory, etc.).
- 0xffff2 10y agoA lot of CS programs aren't even accredited. My (highly ranked US university) doesn't have any accreditation for the CS program.
- dagw 10y agoOS (or computer graphics) courses aren't necessarily mandatory for CS degrees. In fact, if I'd put my mind to it, I'm pretty sure I could have gotten a CS degree without too much programming at all by loading up on as many math and theory courses as possible. Personally I did study C via a couple of electrical engineering courses I took.
- duaneb 10y agoAt the same time, understanding the underlying ideas of memory management, process isolation, IPC, IO/CPU sharing is really, really useful for not making silly mistakes.
- dagw 10y agoOh absolutely. My point was mainly that just having a CS degree isn't a guarantee of, well, anything really.
- fgandiya 10y agoWhile we used some C for manipulating kernel stuff, we implemented a lot of the algorithms in Python since it let us do multi threading, multi processing, signals and a couple of others and my college uses a lot of Python...A bit too much Python now that I think about it.
- pfranz 10y agoI've heard many colleges have switched to Python for Comp Sci. I've seen linear algebra and computer graphics courses done in Python, too (including writing a ray tracer). The goal is learn the concept without the language getting in the way. Performance isn't a big concern (with poor performance you can still play with sparse data structures and other optimizations). While I imagine it was good to get familiar with writing C, even assignments for operating systems classes didn't have all of the performance concerns or strict checking that production code would, right? (but C still is probably the best choice for other reasons in an OS class)
- 0xffff2 10y agoMy undergrad OS course was taught in Java shudder. It was a very theory heavy class, and the only code we actually wrote was a toy scheduling algorithm.
- ohyoutravel 10y agoCS50 used C almost exclusively, that was very recent.
- Declanomous 10y agoIt really depends on the school you attend. The CS program at my school was very theory heavy, and light on programming. The entire department used (and still uses) C because you can use it for every class and every professor knew it. I think from a computer science perspective, C was preferred because you have very low-level control and it is a very verbose language where everything is performed explicitly.
- fgandiya 10y agoInteresting. My college used a lot of Python for nearly all the classes except for language seminars and some parts of other classes. I asked my professors why and they argued that Python "doesn't get in the way" (static typing, compilation etc.) allowing us to focus more on learning the algorithms and theory.
- Declanomous 10y agoI think I'd prefer to use Python in most cases. My data structures class was taught by a professor who LOVED a ten year old book. Unfortunately, more than half of the assignments in the book wouldn't compile with GCC. Everyone I know who took that class said it was the hardest class they took in college because you basically had to rewrite every program from scratch. I still preferred C to Java. I'm sure Python would have made that class way easier, though I do love pointers.