(Updated in Feb 22, 2017)
Course
Summary
Data structures are about
how data are stored inside a computer. An algorithm is a step-by-step process for
solving a problem within a finite amount of time. Data structures and algorithms are not important
in software design, but also in hardware design. Being proficient in data structures
and algorithms are essential for good software developers, hardware developers,
and system architects.
Aims
The aims of this course are
·
to
introduce the basic data structures and algorithms, and
·
to develop skills in the design and analysis of
algorithms and data structures.
Learning
Outcomes
If successfully completing
this course, students will
Assumed
Knowledge
You need to have basic
programming skills and knowledge in calculus and basic probability theory.
Units of
Credit: 6
Prerequisite: COMP9021.
Lecturer in Charge: Hui Wu
Office: K17-501D Phone: 938-56572 Email: huiw@cse.unsw.edu.au Assignment Marker: Umair Tariq Office:
K17-501-36 Phone: 938-57382 Email: u.tariq@student.unsw.edu.au |
|
Lectures
Lecture time: Tuesday 18:00-21:00 at CLB 8.
Each week there is a
three-hour lecture. The following topics will be covered in the lectures:
The aim of the lectures is to facilitate
learning and understanding of the important concepts within course syllabus.
They will provide the main source of course material delivered. In the
lectures, I will
You are welcome to ask questions during each lecture.
Web Stream
For the students who are
enrolled in the web stream, you need to watch lecture video for each lecture.
The lecture video is available after the completion of each lecture, that is,
you can watch it on Wednesday. If you have any questions, post them to the
Message Board of the course home page. I will answer all the questions promptly.
Assignments
There will be four individual
assignments using Java programming language.
The primary objective of assignments is to develop your skills in
solving problems by using the data structures and algorithms you have learned.
According to IEEE Spectrum, Java is most popular programming language. However,
I have only one week for teaching Java. Therefore, you need to learn Java
mostly on your own to improve your self-learning capability which is very important
in your future career.
Assignment
schedule
Assignment One: Week 3 – Week 5
Assignment Two: Week 6 – Week 8
Assignment Three: Week 9 – Week 10
Assignment Four: Week 11–Week 13
Homework
There will be homework
every week. However, you do not need to submit homework. Although solutions to
all homework will be released, you are highly recommended to work out your own
solutions.
Examination
There will be a formal three-hour, closed book exam at the end of this course.
Assessment
Your final result is calculated as
follows:
· If your exam result is greater than
or equal to 40, your final result is total assignment marks + 0.7*exam marks. Otherwise, your final result is
equal to your
exam result.
Supplementary
Exam
You will be given a supplementary exam ONLY IF
Note that all requests for special
consideration must be put in writing within one week of the event at
Student Center.
Textbook
Plagiarism
All work submitted for assessment must be your own work. Assignments must
be completed individually. We regard copying of assignments, in whole or part,
as a very serious offence. We use plagiarism detection software to search for
multiply-submitted work, or work derived from other students or from other
sources. Be warned that:
Collaborative learning in the form of
"think tanking" is encouraged, but students are not allowed to
compose programming solutions together as a group during such discussions.
Students are also warned not to send code fragments of the assignments to each
other in any form (e.g. as email or listings). In addition, copying/purchasing
of code that is available on the web is also not permitted. Students who are
caught for plagiarism will be dealt with according to UNSW Plagiarism Policy https://student.unsw.edu.au/plagiarism.
The pages below describe the
policies and procedures in more detail:
Getting Help
From time to time, various problems may arise in your study of this course.
Below is a list of typical problems, with suggestions for where you might seek
help with them:
Problem |
Solution |
Can't understand lecture material |
Ask the lecturer after a lecture, or ask the lecturer for a consultation |
Stuck with assignments/programming |
Go to a consultation |
Problems with your account |
CSE Help Desk |
If you have a problem, do not wait until
late in the session before you seek help. Problems that are dealt with early
are usually quicker and easier to resolve than ones that are left to the last
minute.
You may find the following links useful:
Student feedback
on this course, and on the lecturing in this course, will be obtained via
electronic survey at the end of session. Student feedback is taken seriously,
and continual improvements are made to the course based in part on this
feedback. Students are very strongly encouraged to let the lecturer in charge
know of any problems, as soon as they arise. Suggestions (or even complaints!)
will be listened to very openly, positively, constructively and thankfully, and
every action will be taken to fix any issue or improve the students’ learning
experience.
In the
previous semester, some students had difficult in Java programming. In order to
help students learn Java, I will provide more code examples in this semester.
CRICOS Provider Number: 00098G