Class:
I'm sure a lot of people have already complained about this but I might as well throw in my two cents as well. The exam was a massacre. I had studied the SQL queries, the python equivalents, XML, Java Refactoring, and the likes... But when it came time for the exam, the unthinkable happened. The entire exam was in Python and had nothing to do with the SQL queries, XML, exercises or even the quizzes that we had in class. I won't go into detail about what was on the exam but as I said it was a massacre. For some strange reason, and I'm not alone when I say this, I felt misled. I'm not sure why the exam was set up the way it was. It seemed largely unfair compared to the first test. Some part of me feels that the professor had set up the exam this way because the average for the first exam may have been too high. My assumption is that by making the second exam excessively difficult, the professor will exercise his right to curve. I guess he will curve the second exam up to make the average of the two test averages lie in the 70-75 range.
Overall Final Words:
I believe this class should be required for all CS students. I am actually very shocked that this class is not currently required. I have learned more from this class about life after college as a software developer than from any other class. In fact, if test driven development would have been stressed earlier in my academic career I feel as though many of my other classes would have been made much easier. I would highly recommend this class to any CS students that are serious about becoming better programmers and especially for those looking to get a job. Finally a word of advice to the professor. While the SQL queries and XML are important aspects of software development I feel that the last few weeks would have been more helpful to students if you had spent more time on the refactoring and the design patterns. I think the presentations from the guest speakers are helpful but the speakers should be required to have powerpoint presentations to stay on track. Finally a special thanks for everything that you do to ensure our success. It is evident that you are dedicated to your students' success and we appreciate it. Thank you.
Sunday, August 17, 2014
Sunday, August 10, 2014
Week 9
Class:
Once again this was a rather short week. We had a guest speaker from Indeed.com on Wednesday. For those of you who don't know Indeed is a job listing aggregator and search site. Our speaker was a software engineer and had come in to talk in particular about various tools and processes used in development. Early into the presentation however the presentation seemed to turn more into a question answer session in which we asked the speaker various questions about developing the in the real world and he answered them to the best of his ability. Although the presentation was quite informative I strongly feel the speaker would have benefited by creating a powerpoint presentation ahead of time. This would have helped him organize his thoughts and stay on topic as there were several occasions where we digressed.
The week started off by going over some code written in java in which we abstracted a video rental store application that calculated the rental charges of a given video. Through each iteration of code we refactored and modified the general architecture of the code and explored the consequences of our decisions. This helped to show how a little bit of pre-thought can help make the code cleaner and run faster. We finished off the week by revisiting the final iteration of the video store and also covering some popular design pattens like factor method, singleton, etc... I do however feel that we should have had the guest speaker come in on a Friday as I feel a lot of people had a hard time remembering the examples from Monday.
Project:
The final phase of the project was not as difficult as I had expected. The only real major addition to our site was the search function. Our partner Kevin came up with a brilliant solution in which we used Beautiful Soup (html parser) as the text that we would search in order to determine our results. For a small dataset this is feasible but we feel in the future we will definitely have to revisit our search function. Given that our final exam is coming up we all elected to not push the bar and implement user logins. The end goal is to do better on our exams instead.
Once again this was a rather short week. We had a guest speaker from Indeed.com on Wednesday. For those of you who don't know Indeed is a job listing aggregator and search site. Our speaker was a software engineer and had come in to talk in particular about various tools and processes used in development. Early into the presentation however the presentation seemed to turn more into a question answer session in which we asked the speaker various questions about developing the in the real world and he answered them to the best of his ability. Although the presentation was quite informative I strongly feel the speaker would have benefited by creating a powerpoint presentation ahead of time. This would have helped him organize his thoughts and stay on topic as there were several occasions where we digressed.
The week started off by going over some code written in java in which we abstracted a video rental store application that calculated the rental charges of a given video. Through each iteration of code we refactored and modified the general architecture of the code and explored the consequences of our decisions. This helped to show how a little bit of pre-thought can help make the code cleaner and run faster. We finished off the week by revisiting the final iteration of the video store and also covering some popular design pattens like factor method, singleton, etc... I do however feel that we should have had the guest speaker come in on a Friday as I feel a lot of people had a hard time remembering the examples from Monday.
Project:
The final phase of the project was not as difficult as I had expected. The only real major addition to our site was the search function. Our partner Kevin came up with a brilliant solution in which we used Beautiful Soup (html parser) as the text that we would search in order to determine our results. For a small dataset this is feasible but we feel in the future we will definitely have to revisit our search function. Given that our final exam is coming up we all elected to not push the bar and implement user logins. The end goal is to do better on our exams instead.
Sunday, August 3, 2014
Week 8
Class:
This was rather a short week. Class was cancelled as the professor had to take care of some official UT business on Friday. We also had a guest speaker on Wednesday. The guest speaker was from a local austin company that makes software for mobile devices for various clients. The topic of the lecture was about responding to change in the world of software development. Imagine that you have written thousands of lines of code that uses a specific underlying content service provided by a third party and then all of a sudden the company that provides that services goes out of business. As a result the service is no longer supported. Although other companies quickly move in to replace that service, your code is now broken. This catastrophe can be made much more manageable by using the SOLID principles discussed in class. Such was the case when Google decided to discontinue their RSS feed reader. Companies that had written code using the SOLID principles were able to quickly interchange small portions of code that connected their software to one of the many new services after choosing an alternate service provider and the rest of the pieces worked as they should with minimal to no changes at all. Other companies had to start from scratch.
Project:
The final phase of the project is a bit more involving. One of the biggest challenges is having to critique another groups website. The problem arrises when we have to critique something that is changing frequently and heavily. The group we were tasked with critiquing decided to modify their API drastically after we had already coded up many test cases for their API. Another problem we faced early on was that Django 1.6 doesn't allow us to change our model without forcing us to dump all of our data. I spent an entire day early on trying to upgrade our website to Django 1.7 to prevent this problem but pythonanywhere kept giving me lots of issues. After loosing a day we decided to stay on 1.6 and cut our losses.
Being ambitious, we are looking to launch our site publicly soon and seek to allow the general public to submit reviews. This means we have to really hustle and put together the entire underlying architecture that will be able to support multiple users logging into our site to leave comments, ratings, and reviews for dishes.
This was rather a short week. Class was cancelled as the professor had to take care of some official UT business on Friday. We also had a guest speaker on Wednesday. The guest speaker was from a local austin company that makes software for mobile devices for various clients. The topic of the lecture was about responding to change in the world of software development. Imagine that you have written thousands of lines of code that uses a specific underlying content service provided by a third party and then all of a sudden the company that provides that services goes out of business. As a result the service is no longer supported. Although other companies quickly move in to replace that service, your code is now broken. This catastrophe can be made much more manageable by using the SOLID principles discussed in class. Such was the case when Google decided to discontinue their RSS feed reader. Companies that had written code using the SOLID principles were able to quickly interchange small portions of code that connected their software to one of the many new services after choosing an alternate service provider and the rest of the pieces worked as they should with minimal to no changes at all. Other companies had to start from scratch.
Project:
The final phase of the project is a bit more involving. One of the biggest challenges is having to critique another groups website. The problem arrises when we have to critique something that is changing frequently and heavily. The group we were tasked with critiquing decided to modify their API drastically after we had already coded up many test cases for their API. Another problem we faced early on was that Django 1.6 doesn't allow us to change our model without forcing us to dump all of our data. I spent an entire day early on trying to upgrade our website to Django 1.7 to prevent this problem but pythonanywhere kept giving me lots of issues. After loosing a day we decided to stay on 1.6 and cut our losses.
Being ambitious, we are looking to launch our site publicly soon and seek to allow the general public to submit reviews. This means we have to really hustle and put together the entire underlying architecture that will be able to support multiple users logging into our site to leave comments, ratings, and reviews for dishes.
Sunday, July 27, 2014
Week 7
Class:
Onto a new week. This week marked an important shift in the course. The focus of the course has now shifted towards databases. More specifically SQL and XML/JSON representations of the data stored in these SQL databases. This doesn't exactly mean that we are not going to be looking at python anymore though. In fact earlier this week we worked on converting a select and project statement into python code. I guess this is the professors way of making us understand exactly what the SQL statements are doing. On a harsher note I received my Test 1 grade and it was much worse than I expected. I was expecting a high B especially since I had studied much harder for this exam over the other one (Generic programming). It has however been such a tiring and event packed week that I have not had any time to go talk to the grader and see what mistakes I (or hopefully he) has made. This will likely happen tomorrow during his office hours.
Project:
Phase two of the project was completed in one week this time since everyone was focusing on the exam for the first week. This phase of the project was really tough as I seemed to be a little lost. It seemed like everyone had gotten a hold of one or two particular aspects of the project that they had locked down and owned as their responsibility. I on the other hand (given a limited time schedule due to the Deque Project) kept bouncing from one team mate to the other trying to make myself as useful as possible. I kept asking "what do you need me to do?" and then did my best to own up to the task assigned. With all that said, Im hoping on this next and final phase I will have more opportunities to contribute since I was able to get pretty familiar with unit testing the Apiary API. It should also help that the professor has given us adequate time (two weeks) to get the final phase complete and the final exam won't be until the week after.
Onto a new week. This week marked an important shift in the course. The focus of the course has now shifted towards databases. More specifically SQL and XML/JSON representations of the data stored in these SQL databases. This doesn't exactly mean that we are not going to be looking at python anymore though. In fact earlier this week we worked on converting a select and project statement into python code. I guess this is the professors way of making us understand exactly what the SQL statements are doing. On a harsher note I received my Test 1 grade and it was much worse than I expected. I was expecting a high B especially since I had studied much harder for this exam over the other one (Generic programming). It has however been such a tiring and event packed week that I have not had any time to go talk to the grader and see what mistakes I (or hopefully he) has made. This will likely happen tomorrow during his office hours.
Project:
Phase two of the project was completed in one week this time since everyone was focusing on the exam for the first week. This phase of the project was really tough as I seemed to be a little lost. It seemed like everyone had gotten a hold of one or two particular aspects of the project that they had locked down and owned as their responsibility. I on the other hand (given a limited time schedule due to the Deque Project) kept bouncing from one team mate to the other trying to make myself as useful as possible. I kept asking "what do you need me to do?" and then did my best to own up to the task assigned. With all that said, Im hoping on this next and final phase I will have more opportunities to contribute since I was able to get pretty familiar with unit testing the Apiary API. It should also help that the professor has given us adequate time (two weeks) to get the final phase complete and the final exam won't be until the week after.
Sunday, July 20, 2014
Week 6
Class:
So now we are on the other side of the exam and boy what an exam that was. There was nothing out of the ordinary. I didn't see anything that wasn't expected. In fact I was somewhat surprised at the difficulty (which wasn't so bad) but I would like to attribute that to myself being adequately prepared. I really liked the new exam format the professor set up. The entire exam was like a giant test suite in which we would have to write the functions along with test cases for our solution. I really liked this set up for several reasons. First of all it didn't require us to know the painfully small details that the previous exam format demanded of us. No more multiple choice requiring us to know what the output would be with the annoying answer choice "does not compile" to make us second guess. The next reason I liked this test was because even if you were dead lost on how to code the solution, you still had the opportunity to write test cases for it and gain some easy points. Finally, this exam was better because it, like other aspects of the class, prepared you for the real world. If you walked out of this exam earning the majority of the points simply from writing test cases, then there is a good indication that you should pursue a Software Development Engineer in Test position (SDET) position rather than just a software development engineer position.
Project:
We were contacted earlier in the week by the grader for IDB1 (Tyler) who informed us that we lost 10 points because our site was down. This was hard to believe because none of us had touched any of the code since the Thursday night turnin and because it was all working fine up until Monday of this past week. The error seems to have been generated from within pythonanywhere as we had seen the site be fairly buggy from the start. We pulled our code using the same SHA that we had used to submit and replicated the site at a new address (also on pythonanywhere) and it miraculously worked... with no changes whatsoever... We explained ourselves to the TA and luckily got back all our lost points. Lets just hope whatever this bug was doesn't show itself again.
So now we are on the other side of the exam and boy what an exam that was. There was nothing out of the ordinary. I didn't see anything that wasn't expected. In fact I was somewhat surprised at the difficulty (which wasn't so bad) but I would like to attribute that to myself being adequately prepared. I really liked the new exam format the professor set up. The entire exam was like a giant test suite in which we would have to write the functions along with test cases for our solution. I really liked this set up for several reasons. First of all it didn't require us to know the painfully small details that the previous exam format demanded of us. No more multiple choice requiring us to know what the output would be with the annoying answer choice "does not compile" to make us second guess. The next reason I liked this test was because even if you were dead lost on how to code the solution, you still had the opportunity to write test cases for it and gain some easy points. Finally, this exam was better because it, like other aspects of the class, prepared you for the real world. If you walked out of this exam earning the majority of the points simply from writing test cases, then there is a good indication that you should pursue a Software Development Engineer in Test position (SDET) position rather than just a software development engineer position.
Project:
We were contacted earlier in the week by the grader for IDB1 (Tyler) who informed us that we lost 10 points because our site was down. This was hard to believe because none of us had touched any of the code since the Thursday night turnin and because it was all working fine up until Monday of this past week. The error seems to have been generated from within pythonanywhere as we had seen the site be fairly buggy from the start. We pulled our code using the same SHA that we had used to submit and replicated the site at a new address (also on pythonanywhere) and it miraculously worked... with no changes whatsoever... We explained ourselves to the TA and luckily got back all our lost points. Lets just hope whatever this bug was doesn't show itself again.
Sunday, July 13, 2014
Week 5
Class:
Once again we were faced with a short week as there was no class this past Friday due to final exams for first session classes. I am really thrilled to see that the material is finally shifting towards making classes. Im not sure how much the professor is going to stress object oriented programming principles and paradigms but seeing classes show up in the example slides is definitely refreshing. I feel like this will be very useful for our projects. Again the material is becoming trickier to remember as Python blurs the lines between where a function begins and where it ends... From what I understand functions are declared in the heap so that they retain some form of life even when the execution path leaves the function and similarly some functions can access data from the calling function which is odd behavior but definitely useful. Its finally test week so the professor has uploaded some useful information on how to prepare for the test which is a huge relief. We have also been told that the exam will involve strictly writing code. Good luck to everyone and see you on the other end!
Project:
Phase one of the project was fun. I'm super lucky to have found a very talented group of individuals. Since the idea that was chosen was my own, I was very pleased to see the result of the end of phase one. While the future of this project will definitely be beyond the scope of this class, I hope the rest of this project helps us create the solid ground work that will allow us to make this project generate some real cash and actually be a useful site for Austinites looking for a bite to eat. I went out this past weekend and secured a domain name for the future completed site to be housed at and Im going to suggest to my group this week that we officially go forth with the name kravester for our project. I believe the hardest part of this past week was juggling the project for this class with the Big Integer project for the STL class but more about that on the other blog...
Once again we were faced with a short week as there was no class this past Friday due to final exams for first session classes. I am really thrilled to see that the material is finally shifting towards making classes. Im not sure how much the professor is going to stress object oriented programming principles and paradigms but seeing classes show up in the example slides is definitely refreshing. I feel like this will be very useful for our projects. Again the material is becoming trickier to remember as Python blurs the lines between where a function begins and where it ends... From what I understand functions are declared in the heap so that they retain some form of life even when the execution path leaves the function and similarly some functions can access data from the calling function which is odd behavior but definitely useful. Its finally test week so the professor has uploaded some useful information on how to prepare for the test which is a huge relief. We have also been told that the exam will involve strictly writing code. Good luck to everyone and see you on the other end!
Project:
Phase one of the project was fun. I'm super lucky to have found a very talented group of individuals. Since the idea that was chosen was my own, I was very pleased to see the result of the end of phase one. While the future of this project will definitely be beyond the scope of this class, I hope the rest of this project helps us create the solid ground work that will allow us to make this project generate some real cash and actually be a useful site for Austinites looking for a bite to eat. I went out this past weekend and secured a domain name for the future completed site to be housed at and Im going to suggest to my group this week that we officially go forth with the name kravester for our project. I believe the hardest part of this past week was juggling the project for this class with the Big Integer project for the STL class but more about that on the other blog...
Sunday, July 6, 2014
Week 4
Class:
We are now a good ways into the course and spent this past week working on function defaults. More specifically we learned how functions determine the values of their variables and the several ways in which we can specify those variables from the function call. This week was a little bit easier to follow in my opinion and I didn't have too hard of a time keeping up. I must say that it definitely helps to try and answer other peoples posts on piazza. This week a student posted a question and although I thought I knew the answer at first, I spent some time playing with python and trying different inputs to solidify my understanding of the material we learned this week while writing my response. Check out post 171 on piazza for a quick summary of some of the things we learned this week about unpacking and specifying function calls.
Project:
This project is extremely intimidating. I spent some time last year working on a dynamic website by following tutorials from www.lynda.com. It was a really cool experience but it was EXTREMELY time consuming. The main reason for that is a) I had no prior experience with any aspect of web development. b) I didn't know frameworks like django and bootstrap can make my life easier. But as a fortunate consequence, I learned how to read HTML, JavaScript, and some CSS (which I loathe). I also learned about MySQL and PHP. Most importantly I had learned how all of the above comes together to create a dynamic website. The challenging part about this project is that if you don't know much about any of the above, it can all really go over your head. I am really glad that the professor has grouped us together in hopes that we all learn something from each other but if you end up in a group that isn't very diverse in terms of skill sets, be prepared because there is likely a HUGE learning curve ahead. Our first week was off to a great start as we have a pretty solid, diverse, and experienced team. I can't wait to see all of the teams' end results.
Good Luck to all the teams :)
We are now a good ways into the course and spent this past week working on function defaults. More specifically we learned how functions determine the values of their variables and the several ways in which we can specify those variables from the function call. This week was a little bit easier to follow in my opinion and I didn't have too hard of a time keeping up. I must say that it definitely helps to try and answer other peoples posts on piazza. This week a student posted a question and although I thought I knew the answer at first, I spent some time playing with python and trying different inputs to solidify my understanding of the material we learned this week while writing my response. Check out post 171 on piazza for a quick summary of some of the things we learned this week about unpacking and specifying function calls.
Project:
This project is extremely intimidating. I spent some time last year working on a dynamic website by following tutorials from www.lynda.com. It was a really cool experience but it was EXTREMELY time consuming. The main reason for that is a) I had no prior experience with any aspect of web development. b) I didn't know frameworks like django and bootstrap can make my life easier. But as a fortunate consequence, I learned how to read HTML, JavaScript, and some CSS (which I loathe). I also learned about MySQL and PHP. Most importantly I had learned how all of the above comes together to create a dynamic website. The challenging part about this project is that if you don't know much about any of the above, it can all really go over your head. I am really glad that the professor has grouped us together in hopes that we all learn something from each other but if you end up in a group that isn't very diverse in terms of skill sets, be prepared because there is likely a HUGE learning curve ahead. Our first week was off to a great start as we have a pretty solid, diverse, and experienced team. I can't wait to see all of the teams' end results.
Good Luck to all the teams :)
Sunday, June 29, 2014
Week 3
Class:
Things are starting to get a bit more tricky when it comes to quizzes on Python. We are now getting into depth on how certain objects in python behave, especially when they are iterated over. Before this week I never used to look over notes from the previous class to do well on the quizzes but it is now becoming almost a necessity as Im starting to miss a couple of points here and there. It shouldn't be anything hard to recover from but I need to stay on top of it. The exam is coming up soon and I feel it might be time to start looking over notes from the past two weeks to make sure nothing catches me off guard.
Project:
The Netflix challenge was a lot of fun. Not only was it relevant to real life assignments where a company might ask you to generate a rating system for their products but it was also an opportunity to take advantage of python's speed and flexibility at scripting. I learned more from writing scripts to generate caches than I did from actually trying to beat the Netflix RMSE. When my partner and I started the project we felt really good about our ideas on how to get below an RMSE of 1.00. The obvious idea was to calculate the mean rating for every movie and the mean rating that a given customer would give out. Given the movie ID and the customer ID, one could simply query a cache and take the average of the two values. This got us down to 1.001 which was just out of reach for getting a non-zero grade. We then calculated the medians instead of the means and used a similar approach which got us to just under one. But we didn't stop there. The paper listed on the project page was the key to getting under 1.00 and based on the fact that the professor never really stressed reading it, it is my assumption that he wasn't counting on many of us reading it. Regardless, that paper outlined how to get under 1.0 and if you caught the professors hint about using averages from specific decades then you could easily get the bonus points as well which we were able to do.
On to week 4 :)
Things are starting to get a bit more tricky when it comes to quizzes on Python. We are now getting into depth on how certain objects in python behave, especially when they are iterated over. Before this week I never used to look over notes from the previous class to do well on the quizzes but it is now becoming almost a necessity as Im starting to miss a couple of points here and there. It shouldn't be anything hard to recover from but I need to stay on top of it. The exam is coming up soon and I feel it might be time to start looking over notes from the past two weeks to make sure nothing catches me off guard.
Project:
The Netflix challenge was a lot of fun. Not only was it relevant to real life assignments where a company might ask you to generate a rating system for their products but it was also an opportunity to take advantage of python's speed and flexibility at scripting. I learned more from writing scripts to generate caches than I did from actually trying to beat the Netflix RMSE. When my partner and I started the project we felt really good about our ideas on how to get below an RMSE of 1.00. The obvious idea was to calculate the mean rating for every movie and the mean rating that a given customer would give out. Given the movie ID and the customer ID, one could simply query a cache and take the average of the two values. This got us down to 1.001 which was just out of reach for getting a non-zero grade. We then calculated the medians instead of the means and used a similar approach which got us to just under one. But we didn't stop there. The paper listed on the project page was the key to getting under 1.00 and based on the fact that the professor never really stressed reading it, it is my assumption that he wasn't counting on many of us reading it. Regardless, that paper outlined how to get under 1.0 and if you caught the professors hint about using averages from specific decades then you could easily get the bonus points as well which we were able to do.
On to week 4 :)
Sunday, June 22, 2014
Week 2
Project:
With Project 1: Collatz out of the way I'm feeling pretty good. I managed to rank 6th in the class on leader times for the problem on the sphere ranking page. I would have tried to cut down my time even more and perhaps even tried to get the extra credit for the collatz v2 problem but alas being in both classes means you have to proportion your time appropriately. Collatz proved to be a great learning experience in terms of templates. I am absolutely in love with the way the professor broke down the templates to help us adhere to good software engineering ideas like TDD (Test Driven Development) and setting up a run harness. My Netflix partner Angela Hsu and I have been working hard this past week applying the same principles to the Netflix challenge that is due this upcoming Thursday. When the professor revealed the problem on Thursday I must admit I felt a little overwhelmed but after spending the past few days grinding away at the keyboard kicking out caches I feel comfortable that my partner and I will come away with a really good grade.
Class:
We are now digging deeper into the intricacies of Python as we learn about the different types the language supports. We finished up last week discussing various ways to make loops faster which was very useful for me since I spent this past weekend making caches for the Netflix project. I am very curious to see how the next week plays out and more importantly whats on the agenda in terms of the bigger group project. I made a dynamic website last year and it seemed very involved with multiple technologies and languages which makes me a little worried as to how involved this project will be. The quizzes seem to be getting progressively more difficult as time goes on.
General study tips continue as follows:
1) Print off the class slides (he updates them usually the night before) to take notes on... trust me, the exam will be a longer version of the quizzes
2) Do the readings... focus on the key ideas, they show up as easy points on the exam
3) START EARLY ON THE PROJECT
Sunday, June 15, 2014
Week 1
Let me first share why I am taking this class. As a computer science major I need this class to graduate as it counts for a writing elective. But that is not the only reason. I took a class from Professor Downing in the Fall of 2012. The class was called object oriented programming and was taught in C++. Since my first language was Java, and since I was also enrolled in the infamous CS 439, I found the course very difficult and ended up dropping after bombing both midterms. However, I realized that even though this was one of the hardest classes I had taken, the professors teaching method was solid and I knew that taking such a class would guarantee real proficiency in becoming a developer.
During the first week of this class the professor has right off the bat made it clear that he is more interested in making us employable rather than just eligible masters candidates. As I had been interviewing for the past year many employers had asked me about SOLID principles which appears on the schedule and about which we will learn at a later time. I bring this up because it is important. This class is designed to bridge the gap between what professors in computer science teach (mostly theory) and what employers expect (give me a program that I can sell). I admit that I am pretty bummed that this class is being taught in python. Many employers in the finance industry (in which I will be working as of September) value time as money and so they want code that runs fast. As a result they expect proficiency in C++. Python is picking up popularity though because companies want the analytical abilities of Matlab without having to buy licenses and there are a good set of libraries written in python for such work. I was hoping that this class would be taught in C++ so I could get more exposure to the language but I guess thats why I am also in CS 378 Generic Programming in the STL. It is however important to understand web technologies in the world we live in today. Learning Python, JavaScript, and Django for this course will definitely help me diversify my resume and I look forward to creating a useful website by the end of the class.
Just in the first week the professor has already gone over the importance having a portfolio demonstrating our abilities and obtaining a good summer internship in order to become more employable. In particular the professor has introduced us to the importance of developing in a certain format which requires us to first write test code thus helping us as developers narrow our focus to write passing code that only passes those tests that we have already written. The added benefit of working under this kind of paradigm is that if and when we run into a bug, it is always easy to simply run our test cases quickly to find out what errors our new code produced thus substantially reducing our debug time. Over the course of the semester I look forward to seeing how SOLID principles are applied to the C++ language and more specifically the intricacies of the STL.
A word of advice to other students planning on taking this class. Print off the slides that the professor will go over the next day in class. He usually puts them up the night before the class. Bring these notes to class and take active notes. This ensures that you won't forget about the small details that the professor mentions when he goes through the slides since laptops are not allowed. This is very good advice coming from someone who has taken his exams before.
Subscribe to:
Comments (Atom)