I survived my first semester in the PhD of Computer Science program at Nova Southeastern University in Ft. Lauderdale, FL. The two classes that I took this semester were CISD 750: Database Management Systems and CISD 760: Artificial Intelligence. Both classes were a challenging mix of research, exams and papers. I ended up with an A in AI and an A- in DBMS. Both required considerable work. I gained valuable knowledge insights for my ultimate dissertation. Both instructors were helpful and very knowledgeable of their topics.
Journal articles were a major part of both classes. There were over 20 assigned papers for the database class and I reviewed nearly that many for the AI class. Reading journal articles was something that I expected from a doctorate program. While this is a distance degree program, both classes also had challenging in-class mid-term examinations. The program requires me to spend four days, in two trips, on-campus per semester. I traveled to Ft. Lauderdale both in August and October.
For this semester, the AI professor was by Sumitra Mukherjee and the database professor was by Junping Sun. Both were great! I would very much recommend classes taught by either.
CISD 750: Database Management Systems
The database management class covered many aspects of DBMS design. I had not previously taken an academic class on database systems, so there was quite a bit of new material for me. I had not worked with relational algebra prior to this class. I also learned about functional dependancies, schema normalization, the chase algorithm, hashing, indexing, dynamic programming, query optimization, and other topics. Most of the focus of the class was on relational databases. However, some time was spent looking into some NoSQL topics. The final and mid-term both tested our abilities to work through these algorithms.
I chose to do my research paper on frequent itemset mining. This is a Knowledge Discovery in Databases (KDD) topic. I compared the Apriori, Eclat and FP-Growth algorithms. I did an emperical study of what datasets are conducive to each algorithm. Most papers that I read about these algorithms studied the performance effects of varying the support threshold using known datasets. I wanted to take a different approach, so I looked at how I could generate a dataset a specified frequent itemset density and number of frequent items. I created a Python application to simulate generate this data. I was happy with how the paper turned out. I plan on posting the results from this research in a separate post here in the future.
I really liked the textbook that was chosen for this class. Database Systems: The Complete Book (2nd Edition) appears to be a classic in the field of DBMS. The examples and explanations were really clear. The material was very different than what I am used to for databases. I've worked with databases, such as Oracle and MySQL, for years. It was very interesting to see DBMS at a more academic level. I feel that I gained a deeper understanding of database topics.
CISD 760: Artificial Intelligence
The AI class covered a wide range of topics that provided a very good foundation of AI. The optional textbook was Artificial Intelligence a Modern Approach. I feel the textbook was a great choice, and I already owned a copy before the course began. Topics covered in this course included A*, Neural Networks, Decision Trees, Bayesian Inference, and Genetic Algorithms. We were given an assignment were we had to make use of several of these algorithms. I used Encog for the Genetic Algorithm and A* portions of the programming assignment.
Another assignment asked us to choose a peer reviewed article and perform a critique. For my article, I choose:
Larochelle, H., Bengio, Y., Louradour, J., & Lamblin, P. (2009, June). Exploring strategies for training deep neural networks. J. Mach. Learn. Res., 10 , 1-40.
I am interested in deep learning and wanted to research, and understand, some of the issues with applying it to continuous inputs. I ended up implementing a deep belief neural network in Java. The source code to this is on GitHub. I will make use of this code for Volume 3 of my AIFH series.
The major paper for this class was to write an idea paper. Idea papers are used in this program to capture potential ideas for a dissertation. I wrote an idea paper that detailed research that I might like to perform to use continuous input with deep learning. I believe that I would like to do my dissertation in the area of AI. I am not sure I will choose deep learning. Nevertheless, the paper was a great exercise. There are several areas that I gently nudged the boundary of human understanding, while writing parts of Encog. I plan to explore several of these for a potential dissertation. I also still have one more semester before I need to really get serious about a dissertation topic.
Next semester I am taking two courses again, and then two more in the fall of 2015. Once I am through these courses I have two more semesters where I will split between a single course and research hours. After that I will be a phd candidate and on to dissertation work.
The two courses that I will take next semester (Winter 2015) are:
- CISD 792 Computer Graphics
- ISEC 730 / DCIS 730 Network Security and Cryptography
The textbooks for my computer graphics class are shown here. There is no assigned book for the security class. My guess is there will be a number of assigned papers for the security class.
I am looking forward to the next semester! It looks like I will be learning about three.js in the graphics class. I am really looking forward to that.