Προς το περιεχόμενο

Βασικα Προγραμματισμου


Sotiris96

Προτεινόμενες αναρτήσεις

Εγώ αυτό που έχω κάνει είναι να παρατήσω κάπως τα θεωρητικά μαθήματα με μέσα και την βιολογία... (Ελπίζω να μην έχει κανένας καθηγητής μου λογαριασμό στο insomnia... :P )Τα μαθηματικά και η φυσική από μόνα τους σε τραβάνε...

 

Δεν κατάλαβα το σκεπτικό... Δηλαδή η C θεωρείται επαγγελματική;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 58
  • Δημ.
  • Τελ. απάντηση

Εγώ δεν έχω σπουδές πληροφορικής και μιλώ από την σκοπιά του (αυτοδίδακτου) ερασιτέχνη.

 

Η C είναι δεν είναι εξοπλισμένη με ευκολίες που χρειάζονται καθημερινά.

Πολλά πράγματα πρέπει να τα φτιάξεις ή να καταφύγεις σε βιβλιοθήκες που είναι γενικά δύσχρηστες και στριφνές.

Όταν υπάρχει η C++ που υπερτερεί παντού είναι άσκοπο κάποιος να ασχολείται με C εκτός αν έχει ειδικούς λόγους.

Υπάρχουν τομείς όπου η C++ δεν υποστηρίζεται.

Π.χ. οι drivers γράφονται (και) σε C διότι απαιτούν πρόσβαση του hardware σε χαμηλό επίπεδο όπου η

αντικειμενοστρεφής προσέγγιση εκεί δεν προσφέρει τίποτε. Ομοίως και σε τομείς όπως προγραμματισμός

λογικών ελεγκτών κ.α.

Επίσης, τα παράλληλα προγραμματιστικά μοντέλα που χρησιμοποιούνται ευρέως δεν υποστηρίζουν C++ αλλά C.

Π.χ. το MPI δεν υποστηρίζει C++ αλλά C.

Γενικά η C αντιμετωπίζεται πλέον ως ένα είδος πολύ ισχυρού assembler.

Πρέπει να την ξέρει κάποιος επαγγλεματίας αλλά ο ερασιτέχνης που δεν θα μπλέξει με τομείς όπως οι παραπάνω

καλύπτεται πολύ καλά από την C++ και από άλλες γλώσσες πολύ πιο εύχρηστες.

 

 

Όσο για τα μαθήματα, δεν ξέρω πλέον ποιά είναι τα θεωρητικά, έχασα την μπάλα με τις αλλαγές που έγιναν.

Αλλά τα μαθηματικά και η φυσική είναι και πάντα ήταν εκ των "ων ουκ άνευ".

Ο προγραμματισμός είναι πλέον ένας είδος διανοητικής μόδας με την οποία ασχολείται η σάρα κι' η μάρα.

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Εγώ δεν έχω σπουδές πληροφορικής και μιλώ από την σκοπιά του (αυτοδίδακτου) ερασιτέχνη.

 

Η C είναι δεν είναι εξοπλισμένη με ευκολίες που χρειάζονται καθημερινά.

Πολλά πράγματα πρέπει να τα φτιάξεις ή να καταφύγεις σε βιβλιοθήκες που είναι γενικά δύσχρηστες και στριφνές.

Όταν υπάρχει η C++ που υπερτερεί παντού είναι άσκοπο κάποιος να ασχολείται με C εκτός αν έχει ειδικούς λόγους.

Υπάρχουν τομείς όπου η C++ δεν υποστηρίζεται.

Π.χ. οι drivers γράφονται (και) σε C διότι απαιτούν πρόσβαση του hardware σε χαμηλό επίπεδο όπου η αντικειμενοστρεφής

προσέγγιση εκεί δεν προσφέρει τίποτε. Ομοίως και σε τομείς όπως προγραμματισμός λογικών ελεγκτών κ.α.

Επίσης, τα παράλληλα προγραμματιστικά μοντέλα πυ χρησιμοποιούνται ευρέως δεν υποστηρίζουν C++ αλλά C.

Π.χ. το MPI δεν υποστηρίζει C++ αλλά C.

Γενικά η C αντιμετωπίζεται πλέον ως ένα είδος πολύ ισχυρού assembler.

Πρέπει να την ξέρει κάποιος επαγγλεματίας αλλά ο ερασιτέχνης που δεν θα μπλέξει με τομείς όπως οι παραπάνω

καλύπτεται πολύ καλά από την C++ και από άλλες γλώσσες πολύ πιο εύχρηστες.

Τώρα είσαι ωραίος. Απλώς εγώ επέμεινα στο να μάθει C μόνο και μόνο για την σύνταξη, άρα στην προκειμένη περίπτωση και η C++ το ίδιο κάνει...

 

Όσο για τα μαθήματα, δεν ξέρω πλέον ποιά είναι τα θεωρητικά, έχασα την μπάλα με τις αλλαγές που έγιναν.

Αλλά τα μαθηματικά και η φυσική είναι εκ των "ων ουκ άνευ".

(Το ποια δεν παίρνει ποτέ τόνο... :P ) Ναι, αυτό είναι σίγουρο.

Ο προγραμματισμός είναι πλέον ένας είδος μόδας με την οποία ασχολείται η σάρα κι' η μάρα.

Εξαρτάται το τι θεωρείς προγραμματισμό...

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Για μαθητές, η C αλλά και εν πολλοίς η C++ δεν ενδείκνυνται, τα έχω πει κι' αλλού.

 

Το πρώτο που πρέπει να αποκτήσει κάποιος είναι η ανάπτυξη αλγοριθμικής σκέψης.

Για να γίνει αυτό πρέπει η γλώσσα να έχει εύκολη σύνταξη ώστε να εστιάζεται η προσπάθεια στο κυρίως

πρόβλημα κι' όχι σε κουραστικές και δύσκολες συντακτικές λεπτομέρειες.

Η C αυτό δεν το πληρεί σε καμιά περίπτωση.

Με την C++, λόγω των ευκολιών που έχει, είναι κάπως καλύτερα τα πράγματα αλλά υπάρχουν και καλύτερες επιλογές.

 

Επίσης, αν κάποιος (μαθητής ή όχι) δαπανήσει χρόνο και προσπάθεια να μάθει κάτι, αυτό πρέπει να έχει

εκπαιδευτική και γνωστική συνέχεια. Πρέπει να μπορεί να επεκταθεί σε συνάρτηση με τη γνωστική στάθμη

και όχι να απαξιώνεται και να εγκαταλείπεται.

Είναι συνεπώς λάθος να μαθαίνει κάποιος μια γλώσσα μόνο ως ενδιάμεσο σκαλοπάτι για να μάθει αργότερα

κάποια άλλη. Όπερ σημαίνει ότι "ξεκίνα με VB ή pascal ή...." για να μάθεις τα βασικά και μετά να πιάσεις

την σούπερ-ντούπερ XXXX γλώσσα, είναι γενικά λάθος.

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Π.χ. στο λύκειο οι μαθητές μαθαίνουν να λύνουν γραμμικά συστήματα.

Αν επιχειρήσεις να γράψεις μια ρουτίνα στη C που να το κάνει αυτό, θα ταλαιπωρηθείς διότι

δεν έχει αριθμητικούς πίνακες και πρέπει να μπλέξεις με χρήση δεικτών.

To ζητούμενο όμως δεν είναι να παιδευτείς με τους δείκτες αλλά καταρχήν να μάθεις την μέθοδο επίλυσης

και να δεις πώς μια θεωρία γίνεται πρόγραμμα. (Αυτό εξάλλου είναι και η αλγοριθμική σκέψη.)

Επίσης, στο λύκειο κάνουν θέματα κυκλωμάτων που περιέχουν μιγαδικά μεγέθη.

Η C δεν έχει μιγαδικούς ως πρωτεγενή τύπο, πράγμα που δυσκολεύει τις πράξεις.

Αν επιχειρήσεις να λύσεις (π.χ. να προσομοιώσεις αριθμητικά) ένα τέτοιο κύκλωμα πρέπει να μπλέξεις με

δομές (structs) για να αυτοματοποιηθούν κάπως οι πράξεις ή να χειρίζεσαι ανεξάρτητα τα τμήματα των

μιγαδικών που είναι αφύσικο.

Όμοια προβλήματα υπάρχουν και αλλού (π.χ. στην φυσική με τα διανύσματα).

 

Γενικά η εκπαιδευτική αξία μιας γλώσσας στην μέση εκπαίδευση πρέπει να είναι η καλλέργεια και εφαρμογή

των γνώσεων από τα συναφή θετικά μαθήματα, η ανάδειξη του προγραμματισμού ως εργαλείο και η ανάπτυξη

βασικής αλγοριθμικής σκέψης.

Τα θετικά μαθήματα παρέχουν μιαν άριστη πλατφόρμα γι' αυτό διότι είναι προσαρμοσμένα στην αντιληπτική

ικανότητα των μαθητών, έχουν συνάφεια και γνωστική συνέχεια.

Η C για τους παραπάνω (και άλλους) λόγους είναι ακατάλληλη για να εφαρμοστούν και να δοκιμαστούν μ' αυτήν

οι γνώσεις των μαθητών.

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μα ένας μαθητής δεν νομίζω να κάνει όλα αυτά που λες, μπορεί μεν να τα γνωρίζει, αλλά λίγοι είναι αυτοί που θα κάτσουν να ασχοληθούν...

 

ΥΣ. Δηλαδή η C++ έχει μιγαδικούς;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Η C++ έχει "φτιαχτούς" μιγαδικούς από κλάσσεις.

Υπάρχει και κλάση στην STL.

Αλλά οι δυσκολίες δεν εξαλείφονται τελείως.

 

 

Aυτά είναι τα μόνα που θα μπορούσαν να αναδείξουν τον προγραμματισμό ως εργαλείο και

να αναπτύξουν συστηματικά την αλγοριθμική σκέψη των μαθητών (μιλάμε για μέση εκπαίδευση).

Ακριβώς διότι οι μαθητές διδάσκονται συστηματικά αυτά τα πράγματα.

Ο καλύτερος τροπος να δει πρακτικά κάποιος μαθητής την χρήση του προγραμματισμού είναι να τον

εξασκήσει σε συνάφεια με τις υπόλοιπες γνώσεις του, δηλ. αυτές που έχει από τα άλλα μαθήματα.

Οτιδήποτε άλλο θα ήταν εκπαιδευτικός αυτοσχεδιασμός, λίγο ή πολύ ξεκάρφωτος και αμφίβολης αξίας.

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Logo ;

Έλεος !! :unsure:

 

Και πού το βλέπεις το εξεζητημένο ;

Aντίθετα, οι γνώσεις από τα μαθήματα είναι κοινός τόπος, το στάνταρ που διδάσκονται όλοι οι μαθητές παντού.

 

Αν εννοείς την επιλογή της γλώσσας, εκεί το συζητάμε.

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Οι μιγαδικοί δεν είναι εξηζητημένο αντικείμενο; Εγώ δεν γνωρίζω πάντως κανέναν που να ξεκίνησε προγραμματισμό έχοντας στόχο να φτιάχνει προγράμματα με μιγαδικούς...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δεν είπα αυτό το πράγμα.

Ανάφερα απλώς ένα παράδειγμα από την ύλη των μαθημάτων όπου η C φανερά δεν ενδείκνυται.

Υπάρχουν πολλά άλλα.

 

Αλλά πιστεύω ότι ο στόχος του προγραμματισμού στο σχολείο θα πρέπει να είναι η εφαρμογή και

εξάσκηση γνώσεων των άλλων θετικών μαθημάτων.

Εξάλλου τώρα τα προγράμματα στην ψευδογλώσσα που κάνουν τι αντικείμενο έχουν ;

Σίγουρα θα ήταν πολύ πιο ενδιαφέρον και διδακτικό να εφάρμοζαν εκτεταμένα γνώσεις από άλλα μαθήματα.

 

Και μην φαντάζεσαι ότι αυτό δεν έχει να προσφέρει.

Ακόμα και φαινομενικά απλά πράγματα μπορούν να διδάξουν τεχνικές.

Π.χ. αν έχεις μια εξίσωση ax^2+bx+c=0 οι λύσεις, εφόσον είναι b^2-4ac>0, δίνονται από την σχέση

r1 = (-b-sqr(b^2-4ac) ) /( 2a ) και r2 = (-b+sqr(b^2-4ac) ) /( 2a )

ενώ αν b^2-4ac=0 τότε r = -b /( 2a )

 

Αυτό διδάσκεται στην α' λυκείου.

Λοιπόν, δώσε τον τύπο σε κάποιον να σου το κάνει πρόγραμμα.

Κατά 99% ΔΕΝ θα τον υλοποιήσει σωστά. Θα δουλεύει βέβαια αλλά όχι καλά.

Δοκίμασε να δεις και μετά το συζητάμε.

 

Το ηθικό δίδαγμα είναι ότι υπάρχουν πολλά να μάθει κάποιος στον προγραμματισμό, ακόμη και από τα μαθήματα του σχολείου...

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αφού ο τύπος διδάσκεται και στην γ΄γυμνασίου, κάνε το προγραμματάκι και θα σου πω.

 

Θα δουλεύει μεν, αλλά όχι καλά και όχι πάντα.

Και δεν έχω δει πολλούς που να ξέρουν να το κάνουν σωστά - ρώτα και θα δεις !

 

(Εκτός αν με εκπλήξεις...)

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αλλά πιστεύω ότι ο στόχος του προγραμματισμού στο σχολείο θα πρέπει να είναι η εφαρμογή και

εξάσκηση γνώσεων των άλλων θετικών μαθημάτων.

 

Αν και εν γένει οι συμβουλές του V.I. είναι "ασφαλείς".... στα παραπάνω διαφωνώ και, εκτός αυτού, φαίνεται η λανθασμένη, για μένα, γνώμη - στάση - οπτική γωνία που έχουν οι μη πληροφορικάριοι για την πληροφορική.

 

Ενώ, λοιπόν, είναι πολύ ορθή και political correct η συμβουλή να αποκτήσει κανείς μία σφαιρική "γνώση" (στο μέτρο που αυτό είναι εφικτό) των θετικών επιστημών αλλά και να σκέφτεται αλγοριθμικά (και μέσα στην μέρα σου, το να σκέφτεσαι αλγοριθμικά θα σε βοηθήσει)...

 

το "κάνεις" προγραμματισμό δεν είναι απλά η χρήση του υπολογιστή για να λύσεις με ταχύτητα προβλήματα από άλλες επιστήμες.

 

Είναι το να γνωρίζεις τα "mechanics" του εκάστοτε μοντέλου προγραμματισμού, της εκάστοτε γλώσσας και των δομών δεδομένων που έχεις συν διάφορες, πραγματικά, έξυπνες λύσεις σε γενικά προβλήματα (με τις οποίες θα μπορέσεις να "σκαρώσεις" τις ειδικές για τις δικές σου περιπτώσεις).

 

Έτσι, ναι σαφώς για τον "θετικό" επιστήμονα ο Η/Υ είναι ένα εργαλείο και θα πρέπει να γνωρίζει κάποια πράγματα. Αλλά δεν είναι μόνο αυτό ο προγραμματισμός. Είναι σαν να λέει κανείς ότι πίνακες είναι μόνο οι αριθμητικοί πίνακες στο προγραμματισμό (κάτι μου θυμίζει αυτό! :P ).

 

Έτσι, σαφώς για τον μη ερασιτέχνη η C είναι μία αρκετά καλή γλώσσα για να ξεκινήσει. Να δει τι είναι η αναφορά και τι η τιμή και πως αυτές χρησιμοποιούνται και τι σημαίνουν τελικά. Τι είναι μία συνάρτηση, τι είναι η δήλωσή της, τι το σώμα της, τι ένα block και γιατί στο ρημάδι το struct δεν μπορώ να αλλάξω τιμή στα πεδία του μέσα σε μία συνάρτηση εάν το περνάω σαν όρισμα (π.χ.).

 

Μπορεί να μην ξαναγράψει για αρκετό καιρό σε C... αλλά, τελικά, η C++ είναι ένας pre compiler της C. Έτσι, θα καταλάβει καλύτερα (αργότερα βέβαια) πως ακριβώς περνιούνται τα ορίσματα στην Java (π.χ.) και γιατί εκεί δεν υπάρχουν "->".

 

Είναι πάρα πολλά ακόμα αυτά που υπάρχουν στον προγραμματισμό από το εάν μπορεί να χειριστεί κανείς μιγαδικούς ή όχι.... (π.χ. reflective programming, real time OS κτλ κτλ κτλ) για να θεοποιεί ή να κατακεραυνώνει κανείς τις "μαθηματικές" δυνατότητες της εκάστοτε γλώσσας.

 

Δεν λέω... οι μαθηματικοί (- φυσικοί - χημικοί - ηλεκτρολόγοι - μηχανολόγοι - γιατροί - και_ό,τι_άλλο) χρειάζονται τους Η/Υ... αλλά για κάτι πολύ συγκεκριμένο και κάτι που, στην τελική, είναι μία λιμνούλα ενώ τα άλλα πεδία - εφαρμογές είναι μία θάλασσα.

 

Συνεπώς, η γλώσσα με την οποία γράφτηκε το Unix (τον καιρό εκείνο) και έχουν γίνει τόσα με αυτή, θα πρέπει να είναι η πρώτη επαφή κάποιου που ΔΕΝ θέλει να ασχοληθεί ερασιτεχνικά ή με κάτι ΠΟΛΥ συγκεκριμένο.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.


  • Δημιουργία νέου...