|COMP9414 & COMP9814 2012s1||Course Outline||Artificial Intelligence|
If you are looking at a printout of this web document, and want to access the links, or if you want a more printer-friendly version, go to http://www.cse.unsw.edu.au/~cs9414/intro-12s1.html
A/Prof. Bill Wilson
A/Prof. Wayne Wobcke
|Bill Wilson||Wayne Wobcke|
Week 13: K17-405 3-4pm Thu
Each lecturer runs consultations only in weeks when he is lecturing or when
one of his assignments is running.|
2-4pm Thu 7 June
10am-12noon Tue 12 June
|2-4pm Tue 12 June|
cs9414account; mailing to the relevant lecturer is likely to be more reliable, because the spam density on the
cs9414account is over 99%. Note that other CSE courses may have different requirements for contacting staff.
We don't mind if you use external email accounts for communicating with CSE for academic purposes but:
mlalias -C abcd123 -a firstname.lastname@example.org
abcd123by your CSE Unix login, and
email@example.com your preferred email address. Test that this is working by sending an email to your CSE email address to check that it is forwarded correctly.
We assume that all students read email from CSE regularly (e.g. daily); failing to read email will not be accepted as an excuse for not doing something you were supposed to in any of your courses.
We post most general news items on the class home page.
COMP9414/9814 earns you 6 Units of Credit. This signifies 25% of a full-time study load for one semester, and involves 12 weeks × 3 hours/week of lectures (4 hours/week for COMP9814), plus 4 assignments.
This course does not involve parallel teaching with undergraduates. Only COMP9414/COMP9814 students attend these classes. All students are postgraduates. Many are coursework postgraduates; some may be research students.
COMP9814 Extended Artificial Intelligence is also a 6 Unit of Credit Course, and so it constitutes 25% of a full-time study load for one semester. COMP9814 provides extra challenges for those who wish them. COMP9814 students attend COMP9414 lectures, and also a "bonus" lecture that covers the extension material. The extensions may include extra components to assignments.
Extended courses are normally intended for students with a mark of at least 70 in the prerequisite course. COMP9414 and COMP9814 however, are intended for students with no previous study in Computer Science / Computer Engineering / Information Technology. Thus there is no prerequisite course. If you have taken previous computing courses at UNSW, then you should use your average mark in those courses as a guide to whether or not it is sensible to try COMP9814 (i.e. don't try it if your average is < 70). New students may choose COMP9814 but should monitor their performance in their first few weeks of semester and consider carefully whether to switch to COMP9414 towards the end of this period.
Because COMP9814 and COMP9414 are closely related, it is possible to transfer between them past the week 1 deadline for adding a course. However, it is still necessary to have your final enrolment sorted out by the 31 March1.
Extended Artificial Intelligence will cover the syllabus of COMP9414 together with additional topics, to be presented in the additional lecture hour. See the lecture schedule for the planned content. Information on assessment in COMP9814 is below.
In years when the the enrolment in COMP9814 is very small (1-3), the extra lecture may be replaced by a reading course. If the lecture were replaced, lecture notes would be available on the web as usual, and COMP9814 students would be able to come and discuss the lecture material in the lecture slot on Wednesday morning, or perhaps another time by arrangement.
The lecture times are:
|Session 1, 2012||Day||Time||Location|
COMP9414 is designed in such a way that it can be taken by students with no previous background in computer science, in their first semester at UNSW. Such students might be from another science or engineering discipline who are retraining, or extending their training, into Computer Science / Computer Engineering / Software Engineering. COMP9414 is also suitable for students with some computing background, who have not previously studied artificial intelligence. It is not suitable for research students in Artificial Intelligence, who are more likely to be interested in courses like COMP4415 First-order Logic, COMP4416 Intelligent Agents, and COMP4418 Knowledge Representation and Reasoning.
COMP9414 provides students with a foundation in the basic theory and programming techniques of Artificial Intelligence (AI). These will be motivated by an introduction to selected AI application areas.
Artificial intelligence is the basic discipline underpinning all "smart" systems - e.g. smart Internet applications, smart e-commerce systems. Most complicated search problems cannot be tackled directly using complete search procedures, as completed searches tend to take millions of years to terminate, even on current generation computers. Consequently it is necessary to use heuristic algorithms that estimate the part of the search space most likely to yield useful results, and "prune" the rest. Heuristic algorithms are part of the domain of AI.
AI also includes techniques for specialised areas, including machine learning, natural language processing, computer vision, agent methods, and computer game playing. We only have time to cover some of these in COMP9414. In this offering of COMP9414, there will be introductions to machine learning, natural language processing, and agent methods.
The numbers in  below refer to UNSW Graduate Attributes which are addressed by the item in question. In addition to the graduate attributes indicated below, the experience of working in this class addresses graduate attributes 5, 7, 8, and 9. See http://www.cse.unsw.edu.au/~billw/gradatts.html for explanation of numbered graduate attributes.
After completing COMP9414, students should
Extra outcomes for COMP9814 students:
COMP9414/9814 can be taken as part of any of the postgraduate coursework degrees, and any research degree, in the School of Computer Science and Engineering. Postgraduate students from related disciplines like Electrical Engineering & Telecommunications may also enrol with permission from their School.
The assessment for this subject will consist of:
The assignment marks are added together and scaled to give a mark out of 100,
The final exam total is also scaled to give a mark out of 100, called
The assignment total and the final exam total will be combined
using a harmonic mean formula, weighting the final exam as 70% (0.7)
and the assignment total as 30% (0.3):
final mark = min(100, Δ + asstotal*exam/(asstotal*0.7 + exam*0.3))Here
asstotal*exam/(asstotal*0.7 + exam*0.3)is the weighted harmonic mean of
exam, and Δ is the average difference, across the whole class, between the weighted arithmetic mean and the weighted harmonic mean of
exam. (The weighted arithmetic mean is 0.7*
asstotal. The weighted harmonic mean is always less than or equal to the weighted arithmetic mean, so Δ ≥ 0).
The weighted harmonic mean penalises uneven performances: getting 100% (30/30) for the assignments and 30% (21/70) for the exam would allow a pass if marks were simply added together, (i.e. if the weighted arithmetic mean were used) but under the harmonic mean formula, it results in a final mark of 38%. The effect of the Δ term is to ensure that, on average, the class is not penalised by the use of the harmonic mean. Those with very different assignment totals and exam totals will still do worse, but those with moderate differences will not do worse, and those with even performances will do better than if a weighted arithmetic mean had been used. Typical values of Δ have been around 1.5 to 2.
If you run the program ~cs9414/bin/passmark9414 in most of the School's labs, it will allow you to enter a total assignment mark out of 30, and then it will print the minimum exam mark (as a percentage, and out of 70) that would be needed to pass the subject if you obtained the assignment mark you typed in.
Late submission of assignments: Assignments submitted late are subject to the following penalty: the maximum mark obtainable reduces by 10% per day late, up to a maximum of 50%. Thus if the assignment is marked out of 10, and students A and B hand in assignments worth 9 and 7, both two days late, then the maximum mark obtainable is 8, so A gets min(9, 8) = 8 and B gets min(7,8) = 7. Assignments handed in over a month late, or after (if) a solution has been released, will normally receive no marks.
Be aware that marks in some COMP9414/9814 assignments are likely to be high. The assignments are designed to provide experience with the concepts being studied, and assessment is as much formative as summative. In the past, some students have thought that their high marks in the assignments meant that they did not need to study much for the exam. This is not wise. Take a look at the 2012s1 mark distribution statistics. You will see that, for example, while at least 57% of students scored in the HD range in each assignment, only 15% scored in the HD range on their final result (i.e. composite mark ≥ 85).
We (the lecturers) understand that this may make the final exam rather stressful, and we have considered other assessment models. However, we take the view that end of semester is the best time for most of the assessment weighting, as by then you have had as long as possible to understand, and revise, the course material.
The self-administered feedback quizzes (where available) allow you to monitor your progress: they don't count towards the assessment, but they do allow you to decide whether you understand the lecture material.
COMP9814 assessment will have the same structure as for COMP9414 (2 hour exam worth 70% + assignments worth 10% each, as described above). However, assessment components for COMP9814 may (probably will) differ from those for COMP9414. For example, the COMP9814 assessment may have extra components compared with the corresponding COMP9414 assessment item. There will be enough in common between the assessment items for COMP9414 and those for COMP9814 that it will be possible to mark both on a consistent and equitable scale.
Students enrolled in COMP9814 must make a reasonable attempt at any extra assignment material, and must attend 80% of the extension lectures, or present (a) medical certificate(s), or they will be denied assessment in COMP9814. This rule will be administered in a humane way, and is intended to stop people from enrolling in COMP9814, but doing none of the extension work, thus ending with a grade in "Extended Artificial Intelligence" rather than "Artificial Intelligence" without any extra effort.
The first programming assignment provides a practical introduction to Prolog programming: one cannot learn programming without doing programming. The agents programming assignment, and the natural language programming assignment, give students hands-on experience in simple AI programming.
The final exam tests students on the learning objectives that are not covered in the programming assignments: see below for more details.
|Prolog assignment||working knowledge of an AI programming language|
|Agents assignment||intelligent agents|
|NLP assignment||natural language programming (parsing/semantics)|
|Final exam||knowledge representation & search|
relationship between logic and Prolog
natural language processing
machine learning topics
|All programming assignments also assess analysis of AI problems|
For COMP9814 students, each assignment has a small extension that tests (and gives practice on) some of the material covered in the extra COMP9814 lectures (on Prolog programming, on agents, and on natural language processing). There are also extra exam questions that assess the extra COMP9814 material.
Assignments give you the opportunity to practice what you have learnt on relatively large problems (compared to the exercise sets). Assignments are a very important part of this subject, therefore it is essential that you attempt them yourself. They are designed to be reasonably achievable. For example, in 2008s1 in COMP9414/9814, for each assignment, about half the class obtained at least 8.5/10. See the here for more details on past assignment and final mark distributions.
There will be three assignments:
When available, the assignment specifications will be linked here.
Assignments are to be completed in your own time. You must submit your assignments for marking via the Unix give command (more details will be made available to you as part of the assignment specification). To maximise the learning benefits from doing assignments, it is essential that you start work on assignments early. Do not leave your assignments to the last minute.
using the words or ideas of others and presenting them as your own.
UNSW and CSE treat plagiarism as academic misconduct, which means that it
carries penalties as severe as being excluded from further study at UNSW.
There are several on-line sources to help you understand
what plagiarism is and how it is dealt with at UNSW:
Make sure that you read and understand these. Ignorance is not accepted as an excuse for plagiarism.
Details are below for many of these - follow the links:
This is a technical course, and you will be expected to understand the technical aspects, including remembering some of the formulae, as well as explaining their significance, and to be able to apply the technical details to creating simulated neural networks and solve problems using theoretical concepts covered in the course.
See the links labelled "quiz" at the end of rows in the course schedule, or click on "Review Quizzes" in the yellow menu at the left of the class home page, or go here. These quizzes are voluntary self-assessments. They carry no marks. They are provided to help you work out how well you are going in COMP9414/9814.
Solutions are linked to each quiz.
We suggest that, around the end of each week, you set aside some time to review the COMP9414 lecture material for the week, then try the quiz. Then look at the answers, and mark yourself. If you do not score as well as you aimed to score, then obviously you need to revise more extensively.
You can also get feedback from assignments (which are assessable), and from exercises - see below.
To get people started on Prolog programming, lab classes are held in weeks 2-5.
These are not compulsory but it is recommended that you attend
if you have never programmed in Prolog before. Due to the way
the enrolment software functions, it is compulsory to enrol
for a lab
Some of the labs are 3-5pm, and some are 4-6pm. With the 4-6pm labs, it is fine to leave at, say, 5.30pm, to have a break before a lecture at 6pm.
Lab times and locations are available on the enrolment website.
You can work through the Prolog problem sets in these labs, and lab supervisors will be present to help if you have trouble, either getting started, or in debugging your Prolog code, and to confirm that your code is working correctly if you're not sure.
The lab problems can be found here.
These are more problem-oriented, and involve longer answers than the quizzes. Again, they are not assessable. You can most easily find them in the menu at the left of the class home page, but here is another link to the exercises. Solutions are provided to exercise sets.
Bratko, I. Programming in Prolog for Artificial Intelligence,
This is the primary textbook for COMP9414/9814. See also the book by Allen, J., listed below.
Allen, J. Natural Language Understanding, 2nd Edition, Benjamin Cummings, 1995.
This book is followed fairly closely in the lectures on Natural Language Processing. You might consider buying a copy of this book in conjunction with 1 or 2 friends, to share.
Russell, S. & Norvig, P. Artificial Intelligence: A Modern Approach, 3rd edition, Pearson Education, 2010.
This book is followed fairly closely in the lectures on Problem Solving and Search and Reasoning Under Uncertainty, and includes a wealth of additional material. You might consider using the copies in the library, rather than buying the book.
Internet Encyclopedia of Philosophy: Propositional Logic (Sections 1-4)
This provides a detailed introduction to propositional logic, used in the lectures on Knowledge Representation and Reasoning.
Nolt, J., Rohatyn, D. & Varzi, A. Logic: Schaum's Easy Outline, McGraw-Hill, 2006.
This book provides a succinct introduction to first-order logic, used in the lectures on Knowledge Representation and Reasoning.
Kelly, J. The Essence of Logic, Prentice Hall, 1997.
This book provides a detailed description of resolution in first-order logic, used in the lectures on Knowledge Representation and Reasoning.
Here are the names of some of the more prominent Artificial Intelligence journals and conferences:
Prolog is primarily available on the School of Computer Science and Engineering Unix workstations, and the language as implemented there is definitive for the purpose of assessment. That is, we test your assignment on School computers, and if it doesn't work correctly on those computers, even though it may work correctly on your home machine, then you will lose marks. See below for advice on re-testing your assignment when and if you move it from your home machine to the School computers.
It is possible to connect to the CSE servers from your home computer assuming you have an internet connection, and then you can run Prolog on the CSE machines from home. If however you want a Prolog interpreter on your home machine, you can download the correct dialect of Prolog from the SWI-Prolog stable release site. Versions for Linux, MacOS X, and Windows NT/2000/XP/95/98/ME and maybe more are available, along with the full source code in case you have something not covered above.
Please let us know about any issues with installing SWI-Prolog on your home computer via the COMP9414 Class Forum. This is the fourth year in which we will be using SWI-Prolog, (rather than another Prolog dialect called iProlog). We think we found most of the surprises in the previous years, but there could be a few more in store for us. One thing to note is that the version of Prolog on the School's workstations (5.6.58) may differ from the current version that you will get from the download site.
"SWI" stands for Sociaal-Wetenschappelijke Informatica, the former name of the unit in the University of Amsterdam where SWI Prolog was developed. The unit is now called Human-Computer Studies.
The School Home Computing CD may still have a version of Prolog called iProlog, which is no longer used in COMP9414/9814 (although it has some interesting machine learning tools if you have the patience to figure out how they work). There are enough differences between iProlog and SWI-Prolog that it is best to get SWI-Prolog if you want a home Prolog.
Even if you get SWI-Prolog for home, it is definitely wise to re-test your code on the CSE servers or in a CSE lab before submitting it. SWI-Prolog should work the same way for Windows, MacOS X and Linux, but you wouldn't want to stake your result in COMP9414/9814 on it, and programmers should always be cautious when moving programs from one type of computer to another. One likely problem is described below.
If you do develop your assignment on a Windows machine, be aware that some methods of transferring files from Windows to Linux do not correctly convert to the Linux end-of-line representation. If your program worked fine on Windows, but gives a strange error message on a CSE machine when you try it in Prolog on the Linux machine, then you may be able to fix the problem "magically" by typing
dos2unix my-assignment.plwhere you replace
my-assignment.plby the name of the file that holds your assignment code.
Documentation for SWI-Prolog can be found at http://www.swi-prolog.org/dl-doc.html. You don't need to read it all (it runs to megabytes) but you might want to refer to it if you run into trouble. The lab classes in weeks 2-5 will help you get started with Prolog.
The lab classes in weeks 2-5 will help you get started with Prolog.
COMP9414/COMP9814 are evaluated by survey each time they are taught. The survey includes stock questions asked of all comparable courses, so that it is possible to compare the delivery of COMP9414/9814 with other relevant UNSW courses, and also a space for free-format comments. You cannot be identified from your survey response, unless you deliberately include identifying information in your free-format comments.
The completed survey forms are analysed statistically by someone independent of the delivery, and the results, including the free-format comments, are made available to staff involved in the course after grades have been reported and released.
The comments and statistics reported are used to improve the course, and lecturers are required to summarise the survey results for their Head of School.
In the survey conducted in recent sessions, the summary criterion "Overall, I was satisfied with the quality of this course" received the following responses*:
Positive comments included the following:
Suggested improvements included not teaching COMP9414 concurrently with COMP9021,
on the grounds that recursion, which is fundamental to AI, is taught
at the end of COMP9021 (for the C language). The person who noted this
overlap deserves credit for having picked up on it, but there is a reason
for doing it this way: COMP9021 and COMP9414 are two of a small
number of courses designed to be taken by students with little programming
background. The aim is to make sure that students of this type can enrol
full-times in such introductory courses. Recursion is needed early
in COMP9414 (as it is essential to Prolog programming). Moreover, recursion
is an important topic that some students take a while to get their heads
around, so covering it twice is actually helpful in the long run.
UNSW's CRICOS Provider No. is 000098G