[an error occurred while processing this directive]
[an error occurred while processing this directive]This unit introduces students to core problem-solving, analytical skills, and methodologies useful for developing flexible, robust, and maintainable software. In doing this it covers a range of conceptual levels, from high level algorithms and data-structures, down to abstract machine models and simple assembly language programming. Topics include data structures; algorithms; object-oriented design and programming; and abstract machines.
3 hrs lectures/wk, 3 hrs laboratories/wk, 1 hr tutorial/wk
Students will be expected to spend a total of 12 hours per week during semester on this unit as follows:
CSE1303, CSC1030, FIT1015
Students beginning FIT1008 are assumed to be able to: Identify the main components of an algorithm (variables, operators, expressions, etc), and write the algorithm associated to the specification of a simple problem. Be able to translate a simple algorithm into a program containing variable declarations, selection, repetition, and lists and/or arrays.
(FIT1040 or ECE2071 or FIT1002) and FIT1029
Maria Garcia de la Banda
Consultation hours: TBC
Jojo Wong
Consultation hours: TBC
Week | Activities | Assessment |
---|---|---|
0 | Register for tutorials, pracs and lectures | No formal assessment or activities are undertaken in week 0 |
1 | Lectures on Python Basics, Sorting Revision and Big O. Tute & Prac. | Prac 1 |
2 | Lectures on Abstract Data Types, Arrays, Sorted/Unsorted Lists. Tute & Prac. | Prac 2 |
3 | Lectures on Python Basics II, Stacks and Queues (arrays). Tute & Prac | Prac 3 |
4 | Lectures on Python OO and Stacks and Queues (linked nodes). Tute & Prac. | Prac 4 |
5 | Lectures on Linked Lists, Iterators and Higher Order. Tute & Prac. | Prac 5 |
6 | Lectures on Recursion and Recursive Sorts. Tute & Prac. | Prac 6 |
7 | Lectures on Binary Trees. Tute & Mid-semester Test. No Prac. | Mid-Semester Test in Monday lecture |
8 | Lectures on Priority Queues and Heaps. Tute & Prac. | Prac 7 |
9 | Lectures on Hash Tables & Number Representation. Tute & Prac. | Prac 8 |
10 | Lectures on Computer Systems & MIPS. Tute & Prac | Prac 9 |
11 | Lectures on MIPS execution of selection and iteration. Tute & Prac. | Prac 10 |
12 | Lectures on MIPS function call/return. Tute & Prac | Prac 11 |
SWOT VAC | No formal assessment is undertaken in SWOT VAC | |
Examination period | LINK to Assessment Policy: http://policy.monash.edu.au/policy-bank/ academic/education/assessment/ assessment-in-coursework-policy.html |
*Unit Schedule details will be maintained and communicated to you via your learning system.
Examination (3 hours): 70%; In-semester assessment: 30%
Assessment Task | Value | Due Date |
---|---|---|
Mid-semester Test (1 hour) | 10% | Week 7 in Monday lecture |
Pracs (1.5 hours each) | 20% | Weekly except in Week 7 |
Examination 1 | 70% | To be advised |
Faculty Policy - Unit Assessment Hurdles (http://www.infotech.monash.edu.au/resources/staff/edgov/policies/assessment-examinations/unit-assessment-hurdles.html)
Academic Integrity - Please see the Demystifying Citing and Referencing tutorial at http://lib.monash.edu/tutorials/citing/
There are four hurdles in this unit:
Students who do not meet all these hurdles can get a maximum of 49N for the unit.
Students must actively participate in at least 7 out of the 12 tutorials. Active participation includes contributing opinions to a discussion, providing an answer to some question/exercise, or posing a unit-related question.
This test will evaluate your understanding of the material provided during the first few weeks of semester, your capability to code simple algorithms given a clear specification, and to analyse the behaviour and complexity of simple fragments of code.
For algorithms and data structures:
(1) Reed and Zelle - Data Structures and Algorithms using Python and C++
(2) Rance D. Necaise - Data Structures and Algorithms using Python
For learning Python 3, beginners:
(1) How to think like a computer scientist:http://openbookproject.net/thinkcs/python/english3e/
(2) Learn Python the hard way (BUT: it is for python 2, requires reworking the examples with the notes below): http://learnpythonthehardway.org/book/
(2.1) Notes for the conversion of the exercises to Python 3: http://archive.p2pu.org/node/16646/forums/25197
(3) John Guttag -- Introduction to Computation and Programming using Python
For learning Python 3, more experienced programmers:
(1) Dive into Python 3: http://getpython3.com/diveintopython3/
(2) Python tutorial: http://docs.python.org/3/tutorial/
Monash Library Unit Reading List
http://readinglists.lib.monash.edu/index.html
Submission must be made by the due date otherwise penalties will be enforced.
You must negotiate any extensions formally with your campus unit leader via the in-semester special consideration process: http://www.monash.edu.au/exams/special-consideration.html
It is a University requirement (http://www.policy.monash.edu/policy-bank/academic/education/conduct/plagiarism-procedures.html) for students to submit an assignment coversheet for each assessment item. Faculty Assignment coversheets can be found at http://www.infotech.monash.edu.au/resources/student/forms/. Please check with your Lecturer on the submission method for your assignment coversheet (e.g. attach a file to the online assignment submission, hand-in a hard copy, or use an online quiz). Please note that it is your responsibility to retain copies of your assessments.
Please submit your work via Moodle at the time in which you are marked (and, thus, before you leave the lab). You can access Moodle via links in the my.monash portal.
Please check with your lecturer before purchasing any Required Resources. Limited copies of prescribed texts are available for you to borrow in the library, and prescribed software is available in student labs.
Python 3: This will be our programming language. Please make sure you get version 3.3
Aptana: A good IDE. It's a packaging of eclipse + PyDev plugin + extras. Requires Java to run. It is very complete but a bit heavy. Since it runs on Java, it runs for any version of Python. http://www.aptana.com
The MIPS R2000 simulator SPIM S20 (with its new interface QtSpim).
All the above are included as part of the Standard Operating Environment used in Faculty Computer Labs.
Monash has educational policies, procedures and guidelines, which are designed to ensure that staff and students are aware of the University’s academic standards, and to provide advice on how they might uphold them. You can find Monash’s Education Policies at: www.policy.monash.edu.au/policy-bank/academic/education/index.html
Key educational policies include:
The University provides many different kinds of support services for you. Contact your tutor if you need advice and see the range of services available at http://www.monash.edu.au/students. For Sunway see http://www.monash.edu.my/Student-services, and for South Africa see http://www.monash.ac.za/current/.
The Monash University Library provides a range of services, resources and programs that enable you to save time and be more effective in your learning and research. Go to www.lib.monash.edu.au or the library tab in my.monash portal for more information. At Sunway, visit the Library and Learning Commons at http://www.lib.monash.edu.my/. At South Africa visit http://www.lib.monash.ac.za/.
For more information on Monash’s educational strategy, see:
www.monash.edu.au/about/monash-directions and on student evaluations, see: www.policy.monash.edu/policy-bank/academic/education/quality/student-evaluation-policy.html
As a result of student feedback, we have done the following:
If you wish to view how previous students rated this unit, please go to
https://emuapps.monash.edu.au/unitevaluations/index.jsp