Hallo Zusammen,
ich hatte kürzlich eine Prüfung in der Schule und war leider bei der
Nachbesprechung nicht anwesend.
Könntet ihr kurz reinschauen und wenn ihr Lust habt mir vieleicht sagen
was richtig gewesen wär?
ps: ja ich war nicht so gut:( aber ich bin ja noch am lernen;)
Gruss Thomas
Thomas was studierst Du?
Ich habe hier immer wieder mal Praktikanten sitzen die nur (rudimentär)
assembler können, sowas finde ich traurig.
Die FHs versäumen hier gerade dass ein Maschinenbauer oder
Mechantroniker eher C lernen sollte.
Bei einem Informatiker ist das klar, der sollte wissen was auf unterster
Ebene passiert, von Maschinenbauern und Mechatronikern erwarte ich aber
dass sie wissen was eine for-Schleife ist ist und warum es keine
if-schleifen gibt...
(KEINE Kritik an Dich, eher an die FH!)
Jeffrey Lebowski schrieb:> Thomas was studierst Du?>> Ich habe hier immer wieder mal Praktikanten sitzen die nur (rudimentär)> assembler können, sowas finde ich traurig.
rudimentär wäre doch toll, du meinst aber wahrscheinlich daß sie
assembler nie richtig gelernt haben. ;) scnr.
Jeffrey Lebowski schrieb:> on Maschinenbauern und Mechatronikern erwarte ich aber> dass sie wissen was eine for-Schleife ist ist und warum es keine> if-schleifen gibt...
Von einem Maschinenbauer oder Mechatroniker würde ich diesbezüglich
verdammt viel mehr verlangen. Mindestens dass er selbständig ein
komplettes, grösseres C-Programm unter Verwendung von
Kontrollstrukturen, Typen, Funktionen, Structs und Pointern schreiben
kann und dieses sinnvoll mithilfe von Headern in verschiedene Module
aufteilen und linken kann. Zusätzlich zumindest ein gewisses Grundwissen
über Datentypen und Algorithmen (Listen, Bäume, Rekursion, Sortieren,
...) sowie über die Technische Informatik (Cache, Prozesse/Threads,
Dateien, Netzwerk, ...).
Das ist nämlich ungefähr das, was man in einer ernstgemeinten
Informatik-/Programmiervorlesung für nicht-Informatiker in einem oder
zwei Semestern macht.
P. M. schrieb:> Jeffrey Lebowski schrieb:>> on Maschinenbauern und Mechatronikern erwarte ich aber>> dass sie wissen was eine for-Schleife ist ist und warum es keine>> if-schleifen gibt...>> Von einem Maschinenbauer oder Mechatroniker würde ich diesbezüglich> verdammt viel mehr verlangen.
lieber nicht! aus eigener erfahrung (will ich hier nicht ausführen)
sollte man bei allen erstmal davon ausgehen das sie nichts
können/wissen, oder jemanls über ihren tellerrand geschaut haben - dann
wirst du nicht enttäuscht, sondern im günstigsten fall positiv
überrascht.
c. m. schrieb:> lieber nicht! aus eigener erfahrung (will ich hier nicht ausführen)> sollte man bei allen erstmal davon ausgehen das sie nichts> können/wissen
Dann darf man sich halt einfach nicht wundern, dass Absolventen keinen
anständigen Job finden. Von einem Mechatroniker (FH/Uni) muss ich doch
einfach erwarten können, dass ich ihm ein Mikrocontroller-Board und
einen Schrittmotor in die Hand drücken kann und er mir praktisch
selbständig eine Ansteuerung entwickelt. Wer das nicht kann, der hat für
einen Arbeitgeber nunmal keinen Wert und kann echt froh sein, wenn er
irgendwo unterkommt, wo ihm das Handwerk doch noch beigebracht wird.
P. M. schrieb:> Von einem Mechatroniker (FH/Uni) muss ich doch> einfach erwarten können, …
ja, "man sollte erwarten können" - fakt ist das man es nicht kann.
imho ist wichtiger das jemand die nötigen technischen grundlagen, das
auffassungsvermögen und den antrieb hat sich die dinge die er nicht
weiß, die er aber grade braucht selbständig anzueignen.
eine meiner erfahrungen in dieser situation ist der satz "das kann ich
nicht leisten" - DA schwillt mir dann der hals.
Wobei das Problem doch ein ganz anderes ist: eine Hochsprache wird an
einer FH im Bachelor-Studiengang gar nicht gelehrt!
Die Praktikanten die ich bis jetzt hatte haben mir alle erklärt dass Sie
Assembler lernen, sie hatten keine Vorlesungen oder Laborstunden in
dennen ihnen C beigebracht wird!
C lernen sie dann hier bei uns in der Firma!
Ich habe mir dann sagen lassen, dass man kein C lernen könne ohne zu
wissen, was darunter passiert. Dass man C durchaus auch ohne
Assemblerwissen lernen kann wird dann damit "abgeschmettert", dass ein
solcher C-code niemals sauber und effizient sein können.
Im übrigen bemängel das nicht nur ich sondern auch andere
"Industrievertreter" welche ausschließlich aus sozialen und christlichen
Trieben heraus Studenten einstellen und sich mit ihnen beschäftigen. So
ein Praxissemester kostet uns mehr Geld und Aufwand als dass es uns
Nutzen bringt!
Na, ja.
Der TO hat 'Schule' gesagt und nicht 'FH'.
@Thomas
ad 9)
Wenn in der Aufgabenstellung vom Port C die Rede ist, findest du nicht,
dass in der Anweisung dann auch der Port in irgendeiner textuellen Form
vorkommen sollte?
Ich weiss ha nicht, welchen AVR ihr benutzt. Bei den wohl meisten wird
wohl der Port C mit einem IN/OUT erreichbar sein. D.h. die Fragestellung
zielte eigentlich darauf ab, dass es hier bei LDS dann einen Sonderfall
bezüglich der Adressberechnung gibt.
Und dann gibt es natürlich noch die Unterscheidung des Registers PORTC
vom Register PINC. Wenn man schon in die Adressfalle tappt, dann sollte
man dann doch wenigstens soweit korrekt assozieren, dass man nicht vom
Register PORTC einliest, sondern von PINC.
ad 10)
Das ist jetzt aber armselig. Um die Frage zu beantworten muss man nur
wissen, dass das Register 'X' als solches nicht existiert, sondern nur
ein anderer Name für das Registerpärchen R26 und R27 ist. Genauso wie Y
nur ein anderer Name für das Registerpärchen R28 und R29 ist.
Ich würde es ja noch verstehen, wenn du dich bei den Nummern der
einzelnen Pärchen vertan hättest. Aber soviel solltest du schon wissen,
dass ein AVR nicht mehr als 32 Register hat, es also kein Register 41
geben kann.
ad 11)
In der Angabe steht ein dezimaler Wert. Du musst hier nicht schlauer
sein als alle anderen. Wenn da steht: Lade das Register mit 33, dann
lade das auch mit 33. Die dezimale 33 letzten Endes in die korrekte
Binärdarstellung umzuformen, das kann der Assembler schon alleine. Und:
Letzen Endes wird die Zahl sowieso in binärer Bitform im Befehl kodiert
Der Assembler muss also auch die von die angegebene Hex-Zahl in diese
Bitform überführen. Für den Assembler macht das keinen Unterschied, ob
du die Zahl als Hex-Zahl oder als Dezimalzahl hinschreibst. Dafür gibt
es ja die diversen Anhängsel an die Zahl um das verwendete Zahlensystem
anzuzeigen. WEnn in der Angabe steht: dezimal 33, dann schreib auch
dezimal 33. LDI R8, 33
Allerdings: LDI geht nicht mit Registern, deren Nummer kleiner als 16
ist. D.h. du musst die 16 erst mal in eines der Register mit
Bezeichnungen größer als 15 laden und dann von diesem Register ins R8
bugsieren.
Eigentlich sollte man das schon nach den ersten beiden
Unterrichtseinheiten wissen, dass die Register mit Nummern kleiner als
16 nicht alles können.
Für den Rest solltest du dich mit einer Musterlösung beschäftigen. Aber
auch wirklich beschäftigen! D.h. du sollst mit Hilfe der Musterlösung
erklären können, was daran nicht stimmt, bzw. warum die Dinge so sind
bzw. warum die Dinge so gemacht wurden. Die kann man nicht in 2 Sätzen
erklären. Dazu müsste man schon in den Unterrichtstunden aufgepasst
haben.
c. m. schrieb:> ja, "man sollte erwarten können" - fakt ist das man es nicht kann.> imho ist wichtiger das jemand die nötigen technischen grundlagen, das> auffassungsvermögen und den antrieb hat sich die dinge die er nicht> weiß, die er aber grade braucht selbständig anzueignen.
Das ist überhaupt kein Fakt. An meiner Uni hier jedenfalls kriegst du
keinen Bachelor, geschweige denn einen Master, ohne mehrere echte
Projekte durchgezogen zu haben.
Und gerade die Programmierung zähle ich zu den von dir genannten
"technischen Grundlagen". Weil es etwas ist, dass man nicht in ein paar
Stunden Einarbeitungszeit lernen kann.