Csharp 2014-15 - 01st Lecture

Download Report

Transcript Csharp 2014-15 - 01st Lecture

Jazyk C# a platforma .NET
ZS 2014/2015
http://d3s.mff.cuni.cz/~jezek
Pavel Ježek
[email protected]
CHARLES UNIVERSITY IN PRAGUE
faculty of mathematics and physics
Struktura předmětu
NPRG035 (2/2 Zk/Z) – Jazyk C# a platforma .NET (zima)
Přednáška
Cvičení (SW2) – třeba se přihlásit v SISu
NPRG038 (2/2 Zk/Z) – Pokročilé programování pro .NET I (léto)
Přednáška
Cvičení (SW2/SW1)
NPRG057 (2/0 Zk) – Pokročilé programování pro .NET II (léto)
Přednáška
Požadavky na zápočet/zkoušku
Naprogramovat a odladit jeden jednoduchý příklad
Časový limit: 3 hodiny
Celkem 5 pokusů, z toho ale maximálně 3 pokusy v zimním zk. obd.
(další až v některém z letních termínů)
Dostatek termínů v zimním zkouškovém období + přibližně 2 v letním
Zápočet
NPRG035 (2/2 Zk/Z) – Jazyk C# a platforma .NET (zima)
Zkouška (ABC test)
Splněné povinnosti ze cvičení
Zápočtový program (kontrolují cvičící)
Praktický zápočtový test v počítačové laboratoři
Zápočet
NPRG038 (2/2 Zk/Z) – Pokročilé programování pro .NET I (léto)
Splněné povinnosti ze cvičení
Zápočtový program
Zkouška (ABC test)
NPRG057 (2/0 Zk) – Pokročilé programování pro .NET II (léto)
“Zápočtový program” (kontrolují cvičící z NPRG 038, případně i NPRG 035)
Zkouška (ABC test)
Zkouška
Zkouška
Zákaz používání jakýchkoliv materiálů a pomůcek (pouze tužka/propiska)
45 minut
Hodnocení (stejné jako u ostatních povinně volitelných předmětů – skupina Programování) –
za chybné odpovědi se udělují trestné body:
Trestné body
Známka
0-2
1
3-5
2
6-8
3
9-max
4
Zkouška
Zákaz používání jakýchkoliv materiálů a pomůcek (pouze tužka/propiska)
45 minut
Hodnocení (stejné jako u ostatních povinně volitelných předmětů – skupina Programování) –
za chybné odpovědi se udělují trestné body:
Trestné body
Známka
-3 a méně
1 + navíc dosažení tzv. „božské
úrovně“ – definice viz stránky
předmětu
0-2
1
3-5
2
6-8
3
9-max
4
Zkouška
Příklady typu „dopište implementaci následující třídy“, nebo:
Zkouška
Zápočtový test
Možnost používat libovolné tištěné materiály (knihy, apod.), kromě vytištěných vyřešených
příkladů
Z elektronických materiálů pouze mé slidy, případně slidy University of Linz (a samozřejmě
MSDN Library)
3 hodiny v počítačové laboratoři
Řešení musí splňovat všechny podmínky zadání a být zcela funkční
Příklad zadání:
Prevest logickou formuli ve vstupnim souboru do CNF (konjunktivni normalni forma) konjunkce disjunkci. Vstupni formule je plne uzavokovana a kazdy clen je oddelen
mezerou. Promenna je libovolny textovy retezec. & konjunkce, ! negace, | disjunkce,
-> implikace, <-> ekvivalence
Pri prevadeni se aplikuji nasledujici prepisovaci pravidla (kde a, b, c jsou libovolne
formule):
* !!a ------> a
* a -> b ------> ! a | b
* a <-> b ------> ( a -> b ) & ( b -> a )
* ! ( a | b ) ------> ! a & ! b
* ! ( a & b ) ------> ! a | ! b
* ( a & b ) | c ------> ( a | c ) & ( b | c )
Povinnosti ze cvičení
Docházka na cvičení (max. 3 absence)
Body za příklady v CodExu:
viz můj web
POZOR! Pro tento předmět se používá následující instance CodExu (jiná
než CodEx pro 1. ročník → každý se zde musí znovu vytvořit účet):
https://codex.ms.mff.cuni.cz/codex-cs/
Příklady v CodExu:
Průběžně - příklady ze cvičení (deadline vždy +1 týden)
Na konci semestru – několik těžkých zvláštních úkolů (přibližně 4) pro doplnění
nedostatečného počtu bodů za příklady ze cvičení
Vliv CodExu na úspěšnost u záp. testů
2009/2010 – pouze 1-2 domácí úkoly
2010/2011 – domácí úkol na každém cvičení
Zápočtový program
Termíny NPRG035 (zima) i NPRG038:
Specifikace: 30. 6. 2015 (konec zkouškovéo LS)
Předvedení finální plně funkční verze: 31. 7. 2015 (včetně uživatelské a programátorské dokumentace)
Požadavky na program z NPRG035:
Nevygenerovaný (ručně psaný)
rozumný kód
Předvedeno v termínu: minimálně 30 kB zdrojového kódu v jazyce C#
Předvedeno po termínu: minimálně 60 kB zdrojového kódu v jazyce C#
Požadavky na program z NPRG038, resp. z NPRG057:
Předvedeno v termínu: minimálně 60 kB zdrojového kódu v jazyce C#
Předvedeno po termínu: minimálně 120 kB zdrojového kódu v jazyce C#
Netriviální a rozumné použití některé z „technologií“ probíraných v NPRG038 (vlákna, Sockets
[síťování], .NET Remoting, LINQ, Reflection, generování kódu), resp. NPRG057 (unsafe kód, C++/CLI,
.NET Security, ADO.NET, Web Services, WPF, Silverlight, XNA, jiné API pro 3D grafiku) – ne XML!
Poznámka: Každý zápočtový program, který splňuje požadavky NPRG038, resp. NPRG057, splňuje i
požadavky NPR 035 (tj. lze odevzdat jeden program za oba předměty)
rozumný/rozumné = na požádání posoudí cvičící
POZOR! Osobní předvedení je součástí odevzdání. Na předvádění si připravte několik slidů
shrnujících: hlavní funkce programu + hlavní řešené problémy + nástin architektury.
What is the output the following program?
class Program {
static void Main(string[] args) {
int j = 0;
for (int i = int.MaxValue - 10; i <= int.MaxValue; i++) {
j++;
}
Console.WriteLine(j);
}
}
Option
Result
A
10
B
11
C
0
D
Nothing.
E
It will generate a runtime error.
What is the output the following program?
class Program {
static void Main(string[] args) {
int j = 0;
for (int i = int.MaxValue - 10; i <= int.MaxValue; i++) {
j++;
}
Console.WriteLine(j);
}
}
Option
Result
A
10
B
11
C
0
D
Nothing. ← An infinite cycle!
E
It will generate a runtime error.
What is the output the following program?
class Program {
static void Main(string[] args) {
int START = 2000000000;
int count = 0;
for (float f = START; f < START + 50; f++) {
count++;
}
Console.WriteLine(count);
}
Option
Result
A
0
B
50
C
49
D
Nothing.
E
Something else.
What is the output the following program?
class Program {
static void Main(string[] args) {
int START = 2000000000;
int count = 0;
for (float f = START; f < START + 50; f++) {
count++;
}
Console.WriteLine(count);
}
Option
Result
A
0
B
50
C
49
D
Nothing.
E
Something else.