Sixth Module : Artificial Intelligence

This module is about one of my most favourite area of interest: Artificial Intelligence (AI). Before the lesson began, I am excited that we will be using the famous AI text for our lectures, “Artificial Intelligence, A Modern Approach.” The text is written by top Computer Scientist in the AI arena, Peter Norvig, who currently works at Google and Stuart Russell, who currently is a professor at University of California, Berkeley, USA. The lecturer is Dr. Tat-Jun Chin, who also is involves in research in the area of Computer Vision and Machine Learning. The first half of the lecture class focus on search and game playing. Algorithms such as Best-first search, Greedy search, Uniform Cost Search, Mini-max and Alpha Beta Pruning are all being covered. There is also a discussion on heuristic strategies, enabling optimal search solutions. There are some topics on machine learning such as decision trees, classification using K-Nearest Neighbours algorithms etc. The second half of the lectures involve statistics and robotics. Bayesian network and Monte-Carlo simulation are being taught as well. The Robotics portion involves robot localisation using the partially observed markov decision process and other related algorithms. I think in this period of time where artificial intelligence and machine learning is getting very popular, I would strongly recommend taking this module.

Fifth Module: Advance Programming Paradigms

In this module, we learned about functional programming. The assignments are based on the Scheme Language. We have to use the software, “Dr. Racket” to complete the assignments. We also learned about the different parallelism strategies such as Single Instruction Multiple Data (SIMD), Multiple Instruction Multiple Data (MIMD) and Map-Reduce. We also have to make a video based on a functional language of our choice and its usage in the industry. We chose Haskell and did some research on it.

The text for this module is “Structure and Interpretation of Computer Programs.” The text is very well known text in academia for teaching functional programming. MIT open courseware has some lecture videos from a module that teaches this text. The language they used is Lisp, which Scheme is a dialect of.

The lecturer for this module is Dr. Andrew Wendelborn.

Fourth Module: Computer Systems

In this trimester, I am taking a level 2 module known as Computer Systems. This module is about understanding computer hardware organization and the way application programs are executed at machine level. We deal with DLX, which is a RISC(Reduced Instruction Set Computing). The DLX has a simple 32-bit load/store architecture. The coding is mainly done using the assembly language. The lecturer for this module is Dr. Lye Kong Wei, who graduated with a phD in Computer Engineering in Carnegie Mellon University, USA. From his lessons, we can feel his passion in this subject and he is very comfortable in sharing his knowledge along the way. After completion of this module, I have cleared all my level 1 and 2 modules. Next, I will be working on my level 3 modules! Looking forward to much more interesting ideas in Computer Science!

There are no text for this module as the required text was written by a professor from University of Adelaide. He is Dr. David Knight.

 

Third Module: Mathematics For Information Technology

Having completed DSA, it is now time to turn to the only Mathematics Module in this course. I am looking forward to this module as mathematics is a fundamental knowledge for computer science. To be good in Computer Science, you must be good in Mathematics. The Mathematics are split into 3 areas: Recurrence Relations and Cryptology, Discrete Mathematics and Probability. There is no course text for this module but you can get tons of resources from the library and the internet. We have 3 different lecturers for this module, all 3 of them flew in from the main campus, University of Adelaide, Australia. They are Dr Alison Wolff(Recurrence Relations and Cryptology),  Dr Nick Buchdahl(Discrete Mathematics), Dr David Parrott(Probability). There are 3 intensive weekends for this module, one for Recurrence Relations and Cryptology, one for Discrete Mathematics and one for Probability.

 

Second Module: Data Structures and Algorithms

JUST manage to move on from CSC, Data Structures and Algorithms (DSA)is one of the hardest module yet. As my friend working at Google USA say, “You can get an interview question on Breath-First Search at Google!” In this module, we get to learn, some of the most common data structures that Computer Science students always talk about. Hash Tables. Skiplist. Binary Search Trees. AVL Tree. Set. Maps. Trees. Queues. Stack. ArrayList. On top of these, we get some good exercises on Mathematical Proof by Induction. Why Proof by Induction? As things are, recursion are commonly used in some of the methods of these data structures and Proof by Induction has a close relationship to it. Big-Oh notations are also frequently mention in this module. Parting words about DSA: Efficieny and Complexity.

A huge thanks to Mr. Lim as well. Mr. Lim has taught me from Prep course to CSC and now to DSA. I have to say I have learnt alot from him. He is not only entertaining at times but he has a talent to explain big concepts in simple terms. Very ideal for beginners or students that do not have a strong programming background. Unfortunately, DSA will be the last module that Mr. Lim will teach me as he is not teaching any other modules. The future lecturers are most likely to be professors flying in from our Adelaide Campus. All the best Mr. Lim. Still hope to see you around and in NAA for many more years to come!

Course Text: Data Structures and Algorithm Analysis in Java by Mark A. Weiss

First Module: Computer Science Concepts

Having just completed the exams, I thought it will be good to do a post on the Computer Science Concepts(CSC) Module. CSC is a very interesting module, even though 50% of the contents are similar to what was cover in the prep course. The interesting(and challenging) topics occur from the second part of the module onward and they include Recursion, Finite State Machines, Complexity and Computability, Searching and Sorting and the use of Generics. Guest appearances include Fibonacci, Towers of Hanoi, Mergesort and Binary Search. Was pretty much caught off guard for this exam as the format of the paper is very different compared to all the previous ones. If you are taking csc in the coming terms, my advise is to prepare for the worst and brace for impact!

Course Text: Big Java: Compatible with Java 5, 6 and 7 by Cay S. Horstmann

Prep Course Final Project

For the final project for the prep course, we are to program a Jackpot Simulation. The assignment brief is something similar to this: The jackpot machine has a row of wheels. Each wheel has 5 fruits or symbol.  A player will place a bet by slotting the number of coins into the machine.  The round of game begins when the player press the button to start spinning the wheels.  The player wins when all the wheels shows the same fruit and wins big or win a smaller amount when there are three of the same fruits shown.

Started my prep course!

Hi all,

I have started my prep course this week! The lecturer is Mr. Lim.

Currently he is covering all the basic Java programming materials such as writing the “Hello World!” program and introduction to Java arithmetic operations.

Not only does he has a good background in Java programming, he even wrote his IDE! It is exciting to learn from someone who is also passionate about programming!

Even though I have done some Java programming before, I still manage to pick up some new knowledge along the way. The lesson also corrected some of my Java knowledge.

One good example is Math.random().

I always thought that it is a range from 0.0 to 1.0. My bad for  not reading the Java documentation! But Mr. Lim pointed out that it is non-inclusive, therefore the numbers will be from 0.0000 to 0.99999.

Nonetheless, looking forward to his next class!

Preparatory Course to Bachelor of Computer Science

Even though I was offered the direct entry to the Bachelor of Computer Science (BCS) program, I decided to sign up with the Preparatory Course to prepare myself for my BCS program.

The Preparatory Course for Computer Science are usually for students who do not meet the entry requirements for direct entry. This may be due to different reasons such as either their diploma are not pure IT based or their diploma are based on other engineering disciplines.  Another reason could also be that their  grade point average(gpa) is deemed not good enough.

The Preparatory Course consists of 4 modules: Java Programming 1, Java Programming 2, Introduction to Discrete Mathematics and Information Encoding.

For students who are required to attend the preparatory course, they have to pass the preparatory course with at least a 65% grade. Only upon successful meeting this requirement shall the student be allowed to attend the BCS program.

The timetable for the preparatory course:  http://www.adelaide.edu.au/sg/future/timetable/Prep_course_Apr_2012_intake_timetable.pdf

The above information was written to my best knowledge. You should always consult Ngee Ann- Adelaide for a more accurate information for your situation.

Introduction of Ngee Ann Adelaide

Dear readers,

I have created this blog for my upcoming undergrad studies for Bachelor of Computer Science with Ngee-Ann Adelaide.(http://www.adelaide.edu.au/sg/) This blog is inspired by Mr. Vincent’s Adelaide MBA in Singapore blog. (http://adelaide-mba-in-singapore.blogspot.com/) I have read his blog and find it meaningful and it gave some very interesting insights about his time with Ngee Ann Adelaide. First, I have to admit that this blog might not be updated frequently and in details. At the same time, I must stress that Ngee Ann Adelaide Education Center does not has any ownership, influence and relations with this blog. It will be mainly a summary of my student life in the Bachelor of Computer Science program with Ngee-Ann Adelaide.

Brief history of Ngee-Ann Adelaide Education Center

Ngee Ann Adelaide Education Center is a joint venture partnership with two of oldest and prestigious institution: Ngee Ann Kongsi and University of Adelaide. Since it commenced in 1998, it has produced some leading graduates who are currently working in local business, multinational corporations and government agencies.

For more information about Ngee-Ann Adelaide Education Center, please visit: http://www.adelaide.edu.au/sg/

Brief history of Ngee Ann Kongsi

Ngee Ann Kongsi is a foundation which is actively involved in educational, cultural and welfare activities in Singapore. They are founded in the 1845 by a group of Chinese immigrants of the teochew dialect group. Ngee Ann Kongsi is involved in setting up education premises such as Ngee Ann Primary School, Ngee Ann Seconday School, Ngee Ann Polytechnic and Ngee Ann Adelaide Education Center.

For more information about Ngee Ann Kongsi, please visit: http://www.ngeeann.com.sg/webtop/

Brief history of University of Adelaide

University of Adelaide is a member of of the Group of Eight, a coalition of Australia’s leading research-intensive universities. Group of Eight is commonly referred to the Ivy League of Australia. University of Adelaide is consistently ranked in the top 1% of the universities in  the world. It has produced numerous Nobel Prize winners and more than 100 Rhodes Scholars.

For more information about University of Adelaide, please visit: http://www.adelaide.edu.au/