COMP2011/2711 Students Represent! (1 Viewer)

acmilan

I'll stab ya
Joined
May 24, 2004
Messages
3,989
Location
Jumanji
Gender
Male
HSC
N/A
Any 2011/2711 students hang around this board? I'd post more on the designated forum but it seems pretty evident they dont like taking criticism on there. I think this is quite easily the most inefficiently run subject i've ever taken :mad1: Which sucks, since its probably the most important 2nd year computing subject. Reasons:

- Being its last year offered they merged 2011/2711, and half way through the year decide to add an extra lecture for 2711, which is fine, except it coincides with a tute that i cannot possibly skip (despite the 'recommendations' of the CSE admin that students are able to move/skip tutes if warned ahead of time). They dont seem to have taken into consideration the numerous complaints made by students whose tutes clash with that extra lecture (and they seem to be pretty hell bent on putting that extra lecture on tuesday 11-12, quite possibly because it suits the lecturer :rolleyes:)

- The assignments are really poorly presented. They gave assignment 2 in week 5 or so, and for 2 weeks after they continually chopped and changed what was meant to be done in the assignment.

What do you guys think of the subject so far?

I think first years are lucky theyre changing this next year :p

End rant.
 

gman03

Active Member
Joined
Feb 7, 2004
Messages
1,283
Gender
Male
HSC
2003
To my knowledge, the class was combined the last minutes because RIchard's class overflowed and reallocated the 2711 lecturers to teach the overflowed students. Otherwise you would have Andrew T running it.

I think making an advanced assignments for the 2711 to do on top of the 2011 assignments would be much more effective then having an extra lecture for the 5 (or an arbitary number) students.

The course was disorganised the year I did it (which was just 9 months ago). Sample output and spec were changed almost everyday and it was impossible to finish the assignment early. We hand 3 theoretical assignments and 3 programming assignments and they were not short. Talking about inefficiency and fairness.

THe only valueable thing I learnt from 2011 was exception handling of OO programming language... wish I have learnt C++ instead thou...
 

brettm86

New Member
Joined
Apr 15, 2006
Messages
17
Gender
Male
HSC
2004
i agree that data org is very poorly run

also, i think norman is monotonous and that its almost impossible to remain focused over his 2 hr lectures

however the textbook for the course is good and is a great alternative to attending his lectures

i think the only good lecturer ive had for comp so far would be richard

is anyone here planning on doing his cryptography subject??
 

J0n

N/A
Joined
Aug 28, 2003
Messages
410
Gender
Male
HSC
2004
I was planning to do 2011 next session, since 2011/2711 didn't fit in my timetable this session. Now I find out that its not going to be offered anymore...

Hope the replacement subject is better, and I hope I haven't missed anything, since it seems they do data structures and algorithms in first yr now...
 

acmilan

I'll stab ya
Joined
May 24, 2004
Messages
3,989
Location
Jumanji
Gender
Male
HSC
N/A
J0n said:
I was planning to do 2011 next session, since 2011/2711 didn't fit in my timetable this session. Now I find out that its not going to be offered anymore...

Hope the replacement subject is better, and I hope I haven't missed anything, since it seems they do data structures and algorithms in first yr now...
I had initially planned that too, and sort of wish i had to check out the new subject. Instead i left comp2041/2121 for session 2. I dont think you're missing out on anything. In reality, i havent even completed first year comp subjects. UNSW credited me the 2nd semester 1st year comp subject with a 3uoc subject at USYD called 'computational science in C', in which the hardest thing we did were if statements :/ (it was more a math than comp subject). I basically came into 2nd year only knowing OOP principles.
 

rand0m3r

Member
Joined
Dec 9, 2005
Messages
155
Gender
Male
HSC
2003
yeah i think 2011 is run quite horribly... has anyone got any idea how to do the 2nd assignment? i am still lost.
 

acmilan

I'll stab ya
Joined
May 24, 2004
Messages
3,989
Location
Jumanji
Gender
Male
HSC
N/A
Huffman compression part runs fine for me, been having trouble with the splaying for 2 days, it just runs on an infinite loop, cant get the splaying right :(
 

rand0m3r

Member
Joined
Dec 9, 2005
Messages
155
Gender
Male
HSC
2003
acmilan do you mind me asking you some questions (since the ppl on the course board seem crazily brainy and are already finished), and perhaps i could help you with the splaying because i did an assignment that involved splaying in C.

anyway, i haven't started coding coz my understanding of it isn't that good i guess. but here are my questions regarding the adaptive part:

1) is it "adaptive" in the sense that as a byte is read, and its node is splayed, the decoder immediately tries to translate it OR does the decoding all happen at the end? this example might help. like if A = 001, and later on A = 11100, will the decoder read the 001 as A, and then later 11100 as A, or will it do all the decoding at the end, hence only 11100 is A? (hope it doesn't confuse you)

2) splaying is done to the leaf to move it to the root right? but doesn't that immediately violate the structure since a root node is an internal leaf? it's prefix code will be nothing, not even a 0 or a 1 since it's at the top... i don't get it... argghh

3) how do you create a million objects of a certain class without having to give them all separate variable names. like you know in C how you could have a single pointer variable and just keep mallocing with it? yeah that's what i want to do.

finally,

4) CodeTree method builds a balanced tree. what's the right way going about this? i thought of recursion... and then i thought of just keep inserting it to a certain side (left or right child), and then doing some sort of balancing (e.g. AVL tree).

anyway, i had a problem with splaying and infinite loops before. it is usually to do with your left, right, parent (not sure if we have a parent in the given classes) pointers not being manipulated properly. you will get a loop if, for example, node A's left pointer points to B, and B's left pointer points back to A.

do you want to keep talking? PM me if like.
 

§eraphim

Strategist
Joined
Jul 4, 2004
Messages
1,568
Gender
Undisclosed
HSC
N/A
I reckon that all core CSE courses should be taught in C++ (for both procedural and o-o programming).
 

acmilan

I'll stab ya
Joined
May 24, 2004
Messages
3,989
Location
Jumanji
Gender
Male
HSC
N/A
1. It will read and write to the compressed file whatever the current value of A is, so first 001, then next time it'll write it as 11100.

2. Splaying is only done to internal nodes (the value passed to the splay method has to be an internal node). I assume you splay the parent of the leaf (which would always be an internal node).

3. variable name isnt important, eg:

InternalNode node;

for(int i = 0; i < 10; i++)
{
node = new InternalNode();
}

will create 10 internalnode object, which you can store in an arraylist or something to keep track of if you want to, or start doing the parent/child linking from inside the loop.

The objects will be different, they just will all have the same name.

4. The way you build the tree differs for the two methods we write, for the adaptive tree i just did a standard binary tree eg. first layer has 1 node, second layer has 2 nodes, third has 4,..., nth has 2^n nodes. The 8th layer contains the leaves (which accomodates 256 of them).

I would like to give it another shot, im sure im just not allocating the pointers right, because in some specific cases it actually does splay right, just not in all of them. This may be because the way i described building the tree above might not be right, which is possible. But yeah, if i still have problems ill give you a PM :)
 

rand0m3r

Member
Joined
Dec 9, 2005
Messages
155
Gender
Male
HSC
2003
acmilan said:
3. variable name isnt important, eg:

InternalNode node;

for(int i = 0; i < 10; i++)
{
node = new InternalNode();
}

will create 10 internalnode object, which you can store in an arraylist or something to keep track of if you want to, or start doing the parent/child linking from inside the loop.

The objects will be different, they just will all have the same name.
Oh i see what you are doing. but the objects won't have the same name, but rather, 'node' will only refer to the most latest object you created. and effectively, what you are doing is like what i described with using a pointer and malloc over a million times... cool, that has cleared things up.

and thanks for finally clearing up that splaying is done on an internal node. norman said in a lecture that splaying is only done on leaves, and they don't go to the root either, but rather just upwards more. he really confused things.

btw, for splaying... did you write it by using smaller functions that form the splay? that will make things a lot easier ;)
 

acmilan

I'll stab ya
Joined
May 24, 2004
Messages
3,989
Location
Jumanji
Gender
Male
HSC
N/A
rand0m3r said:
Oh i see what you are doing. but the objects won't have the same name, but rather, 'node' will only refer to the most latest object you created. and effectively, what you are doing is like what i described with using a pointer and malloc over a million times... cool, that has cleared things up.

and thanks for finally clearing up that splaying is done on an internal node. norman said in a lecture that splaying is only done on leaves, and they don't go to the root either, but rather just upwards more. he really confused things.

btw, for splaying... did you write it by using smaller functions that form the splay? that will make things a lot easier ;)
Well you'd have two functions wouldnt you? A left and a right rotation. The zig-zig and zig-zag are just applying these to the parent/grandparent nodes.

Are we allowed to add extra functions to the classes we can modify? I've never really needed to include extra functions before, and being my first year i dont know if you strictly have to stick to what theyve given or not.
 

rand0m3r

Member
Joined
Dec 9, 2005
Messages
155
Gender
Male
HSC
2003
yeah it's really weird how they didn't mention anything, but i assume so. you'd definitely use a left and right rotation for splay.

one more thing acmilan, the spec says "The constructor <code>CodeTree(int num_leaves)</code> should create an initial tree which has the specified number of leaves, and is "nearly balanced" in the sense that, for every node in the tree, the number of leaves in its left and right subtree must either be equal, or the number of leaves in the right subtree must exceeding those in the left subtree by one. This initialization is not unique and small variations from the "ideal" are immaterial as the subsequent splaying should smooth them out."

when it refers to "every node", is it really referring to every single node or just the ones with leaves hanging off them? there's a difference between every node and just the nodes that are one layer above the leaves.
 

acmilan

I'll stab ya
Joined
May 24, 2004
Messages
3,989
Location
Jumanji
Gender
Male
HSC
N/A
Yeah by the last layer having all the leaves it satisfies that criteria. Each node cant possibly have a leaf because then you'd get a tree which has height like 256, which sucks if your first byte in the file youre meant to compress it right at the bottom and you need to represent it by 256 bits.
 

brettm86

New Member
Joined
Apr 15, 2006
Messages
17
Gender
Male
HSC
2004
just wondering, for the priority queue that we are using for huffman compression, do we create it using a list structure or do we use the built in java.util.PriorityQueue class??

if we use the built in class, how do we tell it how to compare key-value pairs??

thanks in adv to anyone that can help
 

acmilan

I'll stab ya
Joined
May 24, 2004
Messages
3,989
Location
Jumanji
Gender
Male
HSC
N/A
It compares them automatically using a function in the BinaryTreeNode class called compareTo. All you need to do is add the nodes into the priorityqueue and it automatically sorts them by weight. The only functions you need for the priorityqueue are add(node), poll() and size(). Calling the poll() function will pull the node with the least weight out of the priorityqueue.
 

rand0m3r

Member
Joined
Dec 9, 2005
Messages
155
Gender
Male
HSC
2003
nope, so far 2011 and 2711 have been doing the exact same assignments.
 

acmilan

I'll stab ya
Joined
May 24, 2004
Messages
3,989
Location
Jumanji
Gender
Male
HSC
N/A
Yeah the assignments have been...interesting. Heres hoping assignment 3 is completely theoretical and involves no coding :p

Has anyone actually done any work at all in tutes? I honestly havent taken a look at one tute question yet, and it seems most of those in my tute havent either.
 

rand0m3r

Member
Joined
Dec 9, 2005
Messages
155
Gender
Male
HSC
2003
yeah i haven't ever done one bit of tute work (for any subject) before the tute. and for comp2011, i think my whole class doesn't do it before they walk-in either coz as they go in and pick up the tute questions sheet, they stare at the sheet for a while.

i think for comp2011 its ok coz most of the time u get all the questions done in the tute.

btw, does anyone know what ass3 is like traditionally? is ass2 the hardest of the 3 or does it get worse? i remember when my friend did comp2011 in 05s1. ass3 built on top of ass2, and everyone found them both very difficult... eeeek.
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Top