Network Programming Homeworks from the Automatics and Computer Science Faculty, UPB, 5th year, prof. Valentin Cristea. The archive contains a homework made in Java. Themes: RPC (Remote Procedure Call), Sorting trees using MPI, Secure chat server in JAVA, Bidding system using CORBA.
Continue reading…
Parallel Algorithms Homeworks from the Automatics and Computer Science Faculty, UPB, 5th year, prof. Valentin Cristea. The archive contains a homework made in Java. Themes: Parallel Game of Life with OpenMP, Sudoku with Replicated Workers, image manipulation (filters, Huffman coding), routing tables.
Continue reading…
This is by far the most extensive part of my review. My plan was to make two separate posts, but I realized I couldn’t talk about the subjects without talking about the teachers.
There was an extensive discussion with the fourth year students about what could be changed in the faculty. There were many interesting ideas, such as replacing C with Python or Alice in the basic programming course and replacing the x86 assembler course with a more general course that would allow students to program on pretty much any platform. A more radical proposed approach was to put the C in a separate course, taught after the computer architecture course.
I finally got to presenting my experience in the faculty. For those who might read this later on, I must say I have a 5 years degree. Nowadays, students only spend 4 years in the faculty and the curriculum has changed a little. In the end I will talk about the new subjects, but let’s start with the old stuff.
First year
The first year was full of non-technical subjects. Math, Physics, Culture & Civilisation or Sport were all useless courses meant to quickly go in the history’s recycle bin.
The two most important courses were Computer Programming (with E. Kalisz) and Data Structures and Algorithms (with F. Moraru). Both subjects were taught in C and unfortunately the emphasis was on the language’s capabilities rather than the actual principles. My opinion is that the choice of the language was correct, as C allows the students to familiarize themselves with curly-brackets languages as well as presenting them (the hard way) with some notions on parameter passing. Some might argue that learning C pointers just to illustrate some of the many parameter-passing techniques is just too much, but I disagree. Once you understood pointers, other similar structures will be much easier to grasp.
Second year
The second year was pretty much like the first one. 17 courses in all, with lots of electronics and little computer science. Again, I will not go in details about most of the subjects. They’re a necessary evil in my opinion, but they shouldn’t distract a student from learning as much as he can from books or tutorials on the internet.
The two programming courses were PLAS (Assembler language programming) and OOP (Object Oriented Programming). PLAS (with Prof. Lungu) was pretty much a review of x86 assembler commands. Again, too much focus on the language itself and too little about the principles of computer architectures and assembler programming. As one TA put it:
After this course, students should be able to program pretty much any device, from an ARM to an x86.
OOP is the most extensively discussed course in the whole faculty. It’s importance is beyond discussion, but the language chosen to illustrate the concepts is again at the center stage of the fight. The teacher (Prof. Moraru again) chose Java many, many years ago. Microsoft technology fans argue that .NET should be used instead, while other want a comparison between the two or C++. What I would have liked to see is a specially designed, all-object, no thrills language that would provide little more that OOP-specific properties (inheritance, polymorphism, etc.). If that was impossible, I would have preferred C++, because it offers some features abandoned in high-level languages.
Third year
This was the first year when I felt I was at the right faculty. 🙂 We had courses like Algorithms Analysis (AA), Computer Architecture, Computer Graphics, Data Transmissions, Software engineering or Communication Protocols, that reopened our taste for the faculty.
The AA course, with prof. Cristian Giumale, should have been done in the first year, not in the third. It talked in a not-so-easy-to-understand way about P/NP problems, the O, o and omega functions and so on.
The software engineering course was the first opening on the industry we had from the moment we entered the faculty. It talked about software development cycles, testing and design patters. This course, as well as the Protocols course were taught by TA’s only 3 or 4 years older than us, which allowed for easier interaction. Unfortunately, the Protocols course is misplaced, it should be taught AFTER the Networking course.
The Computer Graphics (D. Zaharia) and Data Transmissions (can’t remember the teacher’s name) could/should have been some great courses. Unfortunately, they were little more than history lessons. The same cannot be said about the Computer Architecture course (taught by prof. A. Petrescu, the father of most Romanian compuers in the 1970s and 1980s). This one started with the oldest computers but continued with the most recent technologies. Too bad the TA’s (the 4 Popescu as they were known) were not anywhere near prof. Petrescu’s enthusiasm and knowledge.
Fourth year
This year was divided in 2 very different semsters – in the first one there were more CS subjects, while the second represented the beginning of the specialization.
In the fall semester we had to pass through Operating Systems, Networking, Microprocessors and Database. The Operating Systems (with D. Zaharia) and the Microprocessors (with N. Ţăpuş) courses were yet again history lessons. Fortunately for us, the OS lab was excellent – taught by Cristina Cărbunaru after labs written by Răzvan Deaconescu.
The Networking (R. Rughiniş) and Computer Structure (E. Sluşanschi) courses were much more updated, as they were taught by younger teachers. Both had their problems though – Rughini? was much too concerned with cheating and Slu?anschi too focused on the top 500 supercomputers list.
The Database course was quite interesting (with. F. Rădulescu), but the lab sucked. A special mention should be given to Management – the only non-technical course in the faculty to be taught seriously AND in a way that was easy to understand for geeks.
In the second semester we met the famous subject that make this faculty such a feared one: Compilers (V. Palanciuc) and Operating System Design (O. Purdilă). Unfortunately, both teachers had serious problems with pedagogy and those problems shadowed their high technical skills. The labs were very interesting and the homeworks much easier than in previous years.
Other courses were Database Design (much less interesting with prof. M. Petrescu), Parallel Architectures (an introduction to OpenMP and MPI with prof. N. Ţăpuş) and Functional Programming with C. Giumale. The latter turned out to be like an Ali Baba’s cave – a totally new approach to programming, something different from what we knew before. Unfortunately, it was also very difficult to grasp, despite the teachers best efforts.
Final semester
The final semester was, as expected, the easiest one. We had 2 subjects with prof. Valentin Cristea and a Distributed Systems course (which turned out to be more like a J2EE course) with Corina Stratan.
Most of us were pleasantly surprised by the attitude prof. Cristea had towards the courses. From the older student we found out that he was pretty much uninterested and distant with the students. This year there was a whole different story. We felt that he was extremely motivated in trying to send us the maximum of knowledge. Perhaps all the changes in the curriculum actually managed to get the teachers a little more interested? Hope so…
New stuff
The most notable new entry is USO – Operating Systems Use. It teaches students on how to use a *NIX system: how to compile a program, how to secure the system, what’s a process, a thread, a I/O device, etc. The teachers are the same as in the Networking course.
Another novelty in the 4 years system is the Information Technology specialization. The way I see it, it’s just another way to squeeze even more students in an already overcrowded place.
I also noticed that the last year of study is different – you can choose subjects from other specialization branches as well as from a common pool. This is a good thing, as it allows for more choices from the students.
As a conclusion, I might say that the faculty actually begun for me in the third year. Even then, there were few subjects where both the lectures and the labs were good. Most of the time, only one of them was well-made.
Descriere: Referatul prezintă un proiect de reţea pentru o companie cu sedii în mai multe oraşe. Este analizat inclusiv costul acestei reţele.
Materie: Evaluarea Performanţelor, Reţele
Referat făcut la facultate.
Continue reading…
Descriere: Sistemele de calcul pot fi reprezentate cu ajutorul modelelor de cozi de taskuri.
Materie: Evaluarea Performanţelor
Referat făcut la facultate.
Continue reading…
Descriere: Scopul acestui referat este prezentarea algoritmului Another Itemset Miner pentru determinarea cosurilor de produse frecvente, realizat de Amos Fiat şi Sagi Shporer.
Materie: Evaluarea Performantelor, Complemente de Informatica
Referat făcut la facultate.
Continue reading…
I start my look back on my years at UPB by looking at how the main campus (the one between Regie and Iuliu Maniu) has changed from 2003.
When I first entered the campus (in February 2003) it seemed like a huge, abandoned city to me. The new library building looked as is if it was just started, the roads were full of potholes and there was nobody around. 😀 I later found out that the lack of people was caused by the exams, but at that time it was pretty scary.
I entered by the lower gate (near the Dâmboviţa river) and I had to work my way to the other side of the campus, were my future faculty was. There were some signs at every crossroads, but they were so vague they turned out to be an annoyance rather than helpful.
The first image of the faculty that I remember is pretty much like this one. As i neared the buildings, though, i started to see the signs of time on the building – rusty window profiles, broken windows, etc.
Later on that year, I had the opportunity to see the interiors. Not too impressive for a future student, I must say. Old paint jobs, water leaking from the roof of the top floor, broken chairs, blackboards that looked like they were bombarded with chalk, etc. All that hasn’t put me down and I soon became a student at the faculty I’ve always wanted to study at. 😀
Unfortunately, that was like opening Pandora’s box. I soon discovered that the much publicized labs were only used by students in their last year or by teachers. For newbies, there were some leftovers – Pentium 1 computers with as little as 16MB of RAM. The bottom of the pit was in the second year when we had an assembler lab that was made out of 286 IBM PC’s. Yes, that kind of stuff (minus the color screen). They didn’t even had they’re own hard-disks, but were just terminals connected to a mainframe computer. State of the art technology… from 20 years ago.
So has all this changed? Well, some of it has. The buildings are slowly being renovated. Unfortunately, the well-known habit of handing over the works to relatives of the men in charge of the projects has taken its toll: the roof of some newly painted labs is leaking, the linoleum has already peeled off, and so on.
However, there are now 2 course halls fitted with projectors, and the doorman has another one to be used in the other halls. The „minimum” requirements for a computer has (apparently) gone up to 64MB of RAM. Impressive compared with that old 286. 😛
Some expenses are less than useful: the faculty had 2 LCD TVs installed last year, and 2 more this year. To what purpose? They only showed informations that you could easily get from the website. After some break-ins last year, there was a new security system installed. Too bad it was installed to the dean’s office and not the labs. Perhaps some people were concerned they might loose their Solitaire high-scores, who knows? 😀
And because I mentioned the new library building, I must admit I was partially wrong about it – in the first year, I said it still won’t have walls when I would finish the faculty. Well, it now has walls and a roof. Actually, it seems pretty much done on the outside, probably needs some finishing touches on the interior.
Another thing that HAS changed about the campus are the cars – like everywhere in the city, there are a lot of cars, slowly taking over the green space. The solution? Put a barrier in the middle of the campus and don’t let anyone pass except the teachers. That was probably the dumbest idea I’ve seen in this University.
So, how much longer until we’ll (or rather you’ll) have a decent campus? I don’t know. I hope for the best, but expect something much worse. 🙂
I just passed my last exam in the Computer Science Faculty of the Politehnica University of Bucharest. Inspired by Vlad, add and this thread on the Softpedia Forum, I decided to write about the last 5 years of my life. I divided my story in 4 parts; each part will appear on Friday evening (hopefully).
The 4 parts are (I’ll put the links as I write the articles):
- CS Faculty Review: The School – about the campus and the labs
- CS Faculty Review: The Teachers and The Curriculum – about the people that are supposed to teach you and what they teach you
- CS Faculty Review: The Marks – how good is the grading system and how it could be improved
- CS Faculty Review: The Future – how I see the future of this school.
N-am prins chiar tot ce vedeţi acolo, dar oricum mă simt 🙂
Because of the lack of subjects and time, I decided to close one of my blogs, CoderTricks. The few of you that used to read it need not worry, you can find the posts on this blog, in the Programming category. Many thanks to DragoÅŸ, his articles were the most successful of the whole site.