Potresti unire meglio il tuo codice e l'inglese. È uno di quei problemi che StackExchange ha affrontato piuttosto bene. Potresti sviluppare un sistema come qui ed evidenziare qualsiasi testo che deve essere preso come codice. Inoltre, usa un colore diverso per la matematica, perché =
significa cose diverse se il contesto è matematico o C.
Hai lezioni secondarie nei problemi. In questa seconda domanda introduci e spiega la mod op. Mettilo nel suo paragrafo o linkalo a parte. O, onestamente, solo collegalo .
I problemi attuali sono piuttosto sepolti in quei paragrafi. Ho letto un paio e quando sono arrivato alla fine non avevo idea di cosa stavo cercando di risolvere. Sentiti libero di avere una spiegazione di fondo (che è, sai, la parte educativa), ma prova a indicare chiaramente il problema.
E cose del tipo: "Puoi cercare su internet l'equazione appropriata da usare." non dovrebbe essere dichiarato I programmatori hanno accesso a Internet . Non lasciare che siano alla ricerca di soluzioni è arcaico quanto aspettarsi che scrivano le loro soluzioni a matita.
Un modulo standard per le variabili in entrata e i risultati attesi potrebbero aiutare.
Un nitpick personale è l'uso di nomi variabili vaghi e concisi. Se intendi insegnare la programmazione, insegna loro a usare nomi variabili che abbiano un senso.
Quindi, prendi una pausa a riscrivere una delle tue domande:
Numeri complessi: in matematica, la radice quadrata di un numero è X se X volte X risulta nel numero. Tuttavia, la radice quadrata di quella negativa è conosciuta come "i". ho le proprietà tali che i * i = -1. I numeri complessi sono scritti come la somma delle loro parti reali e immaginarie. Quindi, 3 + 2i è un numero complesso con 3 e una parte immaginaria 2i. Questi numeri complessi obbediscono alle regole algebriche standard per l'aggiunta e la moltiplicazione delle equazioni con le variabili. Quindi, (3 + 2i) * 5 = 15 * 10i. Inoltre, '(a + bi) * (c + di) = a * c + a * d * i + c * b * i + b * d * i * i, che semplifica a (a * cb * d) + (a * d + c * b) * i. Ulteriori letture: "numeri complessi", "moltiplicazione di numeri immaginari", "metodo FOIL", "moltiplicazione di binomi complessi"
Problema: Scrivi una funzione che risolve (a + bi) ^ 2.
Input:
int realPortion; //Range: any value
int imaginaryPortion; //Range: any value
Output:
realPortion
dovrebbe memorizzare la porzione reale risultante dell'equazione.
imaginaryPortion
dovrebbe memorizzare la porzione immaginaria risultante dell'equazione.
Modifica
//You do not need to create double a, or double b
La parola è "declare". Dichiarate le variabili. Ci si imbatterà in seguito ed è bene rimanere coerenti.
hmmm, qualcosa su queste dichiarazioni implicite delle variabili mi infastidisce ancora. Non so, forse vuoi mostrare esplicitamente il codice che viene prima e dopo?
void Divisibility_Test()
{
int x;
int y;
boolean xIsDivisibleByY;
(casella di testo per gli studenti da digitare)
evaluate(xIsDevisibleByY);
}
Inoltre, penso di avere un problema filosofico con # 7 che usa il casting per un int per arrotondare un doppio. Non posso dire che non funzioni. O che è sbagliato di per sé.
Questo sarebbe al di sopra e al di là, ma immagino che se ti sforzerai di avere giovani abbastanza impressionabili, dovrai colpire quelli che sono dotati di talento naturale che lo attraversano. Se avessi domande stimolanti sui bonus potresti essere in grado di illuminare qualche ispirazione e farli interessare. Cose come calcolare la sequenza di Fibonacci, costruire catene markov, un robot che può giocare a dama.
Buona fortuna. Insegnare ai bambini a programmare è un compito scoraggiante e dipende in gran parte da loro. Tutto quello che puoi fare è tracciare il percorso. Ripensandoci, c'erano un sacco di insidie e ore di frustrazione. ... ovviamente, ciò implica che tutto è cambiato.