Session 1, 2009
This course outline may be found on-line at http://www.cse.unsw.edu.au/~cs9414/intro-09s1.html
A/Prof. Bill Wilson
A/Prof. Wayne Wobcke
except as noted below2
except as noted below2
|Fri 12 June: 2-4pm|
Mon 15 June: 2-4pm
|Fri 12 June: 11.30-1pm|
Mon 15 June: 2-4pm
|Demonstrators||Ronnie Taib||Han Xu||Victor Jauregui|
cs9414account; mailing to the relevant lecturer is likely to be more reliable, because the spam density on the
cs9414account is over 95%. Note that other CSE courses may have different requirements.
|Bill||Tue 17 March||2.30pm-3.30pm same day|
|Wayne||Tue 5 May||2.30pm-3.30pm same day|
COMP9414 and COMP9814 earn 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, plus programming assignment and labs work, as detailed below. [COMP9814 Extended Artificial Intelligence includes an extra "bonus" lecture each week or additional reading, depending on the number who enrol. Again, further details are shown below.]
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.
Copying assignments is unacceptable. Assignments will be checked. The penalties for copying range from receiving no marks for the assignment, through receiving a mark of 00 FL for the course, to expulsion from UNSW (for repeat offenders). Allowing someone to copy your work counts as academic misconduct, and makes you liable to a penalty, even if you can prove that it is your work.
Fuller details on plagiarism issues are available below. You should definitely read the full version if:
The actual lecture notes for the courses are linked at http://www.cse.unsw.edu.au/~cs9414/Lectures/index.html.
|0||no lecture||Course intro: read this by yourself - see lecture notes link|
|1||10 Mar 2009||Intro to Prolog programming|
|9 Mar 2009||COMP9814: No lecture (starts week 2)|
|17 Mar 2009||Prolog continued; Rules and frames||Asst 1 Out|
|16 Mar 2009||COMP9814: Extension Prolog|
|24 Mar 2009||Problem Solving and Search; Uninformed Search|
|23 Mar 2009||COMP9814: Extension Prolog continued|
|31 Mar 2009 ||Informed Search; Intelligent Agents||Asst 2 Out|
|30 Mar 2009||COMP9814: Constraint Satisfaction Problems|
|7 Apr 2009
||Knowledge Representation and Reasoning|
Propositional Logic: Automated Reasoning
|Asst 1 Due|
|6 Apr 2009||COMP9814: Axiom Systems for Propositional Logic|
|"Mid"-session break week|
|21 Apr 2009
||First-Order Logic; Logic and Prolog|
|20 Apr 2009||COMP9814: Logic Programming and Resolution|
|28 Apr 2009
||Reasoning Under Uncertainty|
|27 Apr 2009||COMP9814: The Monty Hall Problem|
|5 May 2009
||Intro to Natural Language Processing + Syntax||Asst 2 Due|
Asst 3 Out
|4 May 2009||COMP9814: Planning|
|12 May 2009
|11 May 2009||COMP9814: Ambiguity Resolution - Statistical Methods|
|19 May 2009
||Features and Augmented Grammars; Semantic Interpretation|
|18 May 2009||COMP9814: Ambiguity Resolution - Statistical Methods (ctd)|
|26 May 2009
|25 May 2009||COMP9814: Interactive Activation and Competition Networks|
|2 Jun 2009
||Revision||Asst 3 Due|
|1 Jun 2009||COMP9814: Revision|
Details are below:
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 session 1 of 2008, the summary criterion "Overall, I was satisfied with the quality of this course" received the following responses*:
|Strongly Agree||Agree||Mildly Agree||Mildly Disagree||Disagree||Strongly Disagree|
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). In fact COMP9414 is one 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-time in such introductory courses. Recursion is an important topic
that needs a fair amount of practice, so covering it twice is actually
helpful in the long run.
A number of students said things like: "The class time is too short. 12 weeks is not enough to learn this course well." Semester 1, 2008, was part of the revision process leading to a version of the course taught in 12 weeks; previously we had 14 weeks to teach the material. Hopefully, this will have been addressed fully this year.
A number of other comments kind of cancelled each other out - some wanted harder assignments, while others wanted easier assignments. Some wanted more lecture content, while others said there was too much content.
COMP9414/9814 can be taken as part of any of the postgraduate coursework degrees in the School of Computer Science and Engineering, and any research degree in the School of Computer Science and Engineering. Students from related disciplines like Electrical Engineering & Telecommunications may also enrol with permission from their School. Undergraduates cannot enrol in COMP9414/9814.
COMP9414/9814 does not lean very heavily on the material in the subjects listed above. It is no bad thing to have some background in programming before taking this subject, but the main programming language Prolog used in COMP9414/9814 is quite different from other programming languages (like C, Java, and functional languages). Prolog is taught from scratch as part of COMP9414/9814.
COMP9414/9814 is a prerequisite or alternative prerequisite for advanced courses in the area of artificial intelligence, including:
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.
By the end of the session, students should
Extra outcomes for COMP9814 students:
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.
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.
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.
COMP9814 assessment will have the same structure as for COMP9414 (3 hour exam worth 70% + 3 assignments worth 10% each). 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 the 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, doing none of the extension work, thus ending with a grade in "Extended Artificial Intelligence" rather than "Artificial Intelligence" without any effort.
A grade of WD or WC usually means that you need to sit the supplementary exam.
(Sometimes it might mean some other form of supplementary assessment.) You will
receive a provisional result as soon as the examination has been marked
and your mark computed. This provisional result becomes official when UNSW
releases your result on myUNSW. You will be emailed when the provisional
result is available, and you can access your provisional result by running the
If you are awarded a supplementary exam, it may only be sat on the date notified. It is very important that you make yourself available during this time, as although you are unlikely to need a supp exam, it would be sad to fail COMP9414/9814 because you were on your ski holiday in Switzerland (or whatever) on the day of the supp exam.
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, from week 2, a "bonus" lecture that covers the extension material. The extensions will include extra components to assignments.
Extended courses are intended for students with a mark of at least 70 in the prerequisite course. COMP9414/9814 has no prerequisite, so this does not apply. However, if your UNSW WAM is significantly less than 70, or (where you don't yet have a UNSW WAM because this is your first semester here) if your average from your previous university is less than 75, you should think carefully before enrolling in COMP9814.
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 end of week 6 of session. Further, following changes to mandatory Federal Government reporting procedures for universities, it becomes significantly more hassle to switch after the HECS Census Date (31 March in first session), so it is best to have your enrolment sorted by then.
Extended Artificial Intelligence will cover the syllabus of COMP9414 together with additional topics, to be presented in the additional lecture hour. It is planned that topics will include extended Prolog programming material, constraint satisfaction problems, axiom systems for propositional logic, logic programming and resolution, planning, the Monty Hall problem, and interactive activation and competition networks. Information on assessment in COM9814 is below.
If the enrolment in COMP9814 is very small, the extra lecture may be replaced by a reading course. Lecture notes will be available on the web as usual, and COMP9814 students will be able to come and discuss the lecture material in the lecture slot on Tuesday afternoon (or perhaps another time, by arrangement).
The lecture times are:
|COMP9414 & COMP9814||Tuesday||18:00-21:00||Central Lecture Block 1|
|COMP9814 only||Monday||12:00-13:00||Goldstein G01*|
To help you understand the course material, exercises will be available for your own study. It is highly recommended that you complete these even though they are not assessable. Solutions will be made available during session.
To help you check that you have followed the lectures, review quizzes will be available in some weeks. They are a bit like exercises, but typically have short answers. Solutions will be made available during session.
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 admin software functions, it is compulsory to enrol
for a lab
Lab times and locations will be:
Oboe, Tuba and Harp Labs, Tuesday 4-6pm, weeks 2-5 only
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.
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.
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.
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. and Norvig, P., Artificial Intelligence: A Modern Approach,
Second edition, Pearson Education, 2003.
This book is followed fairly closely in the lectures on Problem Solving and Search and Reasoning Under Uncertainty. You might consider using the copies in the library, rather than buying the book. Handouts will be provided for the material on Knowledge Representation and Reasoning.
Charniak, E. & McDermott, D. Introduction to Artificial Intelligence, Addison-Wesley, 1985.
Haykin, S., Neural Networks: A comprehensive foundation, Prentice-Hall, 2nd ed., 1999.
Haykin, S., Neural Networks and Learning Machines, Prentice-Hall, 3rd ed., 2009.
Winston, P.H., Artificial Intelligence, 3rd Edition, Addison-Wesley, 1992.
As noted above, to help you understand the course material, exercises will be available for your self-study. Solutions to these exercises will be released.
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 third 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 last two 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.47) 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.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.
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
z9999999by your UNSW Student ID (starting with z).
If you have not previously used Linux (or a similar Unix-style operating
system) then here's a quick way to read email sent to your CSE email
account while logged in to your CSE account: type the Linux command
man mail. If there is mail for you, a list of
the current messages will be printed. Type the number of the message
you want to read, and press
If you don't want to read mail this way, one solution is to forward
mail to another email account, e.g. your UNSW email account - the one
that has the address ...@student.unsw.edu.au, as described above,
by using the
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.
As noted, above, copying assignments is unacceptable. Assignments will be checked. The penalties for copying range from receiving no marks for the assignment, through receiving a mark of 00 FL for the course, to expulsion from UNSW (for repeat offenders). Allowing someone to copy your work counts as academic misconduct, and makes you liable to a penalty, even if you can prove that it is your work. Three students failed COMP9414 in each of 2006 and 2007, and two students failed COMP9414 in 2008, after being found to have plagiarised assignments.
Further details of the School plagiarism policy can be found in the yellow form. (You acknowledged receipt of these rules when you obtained your CSE computer account, and the link above is for your convenience so that you can review the rules now.)
We are aware that a lot of learning takes place in student conversations, and don't wish to discourage those. However, it is important, for both those helping others and those being helped, not to provide/accept any programming language code in writing, as this is apt to be used exactly as is, and lead to plagiarism penalties for both the supplier and the copier of the code. Write something on a piece of paper, by all means, but tear it up/take it away when the discussion is over.
You may not develop your assignment jointly with other students unless this is explicitly permitted in the assignment specification.
If you are new to studying in Australia, be aware that attitudes to plagiarism, and/or definitions of plagiarism, at UNSW may be different from those in your home country. Make sure you are clear about the rules here at UNSW. In brief, and for the purposes of COMP9414, plagiarism includes copying or obtaining all, or a substantial part, of the material for your assignment, whether programming language code, or written or graphical report material, without written acknowledgement in your assignment from:
Note that if you copy code or other material from another student or non-student with acknowledgement, you will not be penalised for plagiarism, but you are unlikely to get any marks for the copied material. If you use code found in a publication (on the internet or otherwise) then the marks you get for this will be at the marker's discretion, and will reflect the marker's perception of the amount of work you put into finding and/or adapting the code, and the degree to which you understand the code.
Note also that there is a big difference between being able to understand someone else's code, and writing that code yourself from scratch. A computer programmer has to be able to write code from scratch. The assignments provide opportunities for you to develop the skills necessary to write your own artificial-intelligence-related code. Use these opportunities!