Undergraduate Handbook - School of Computing and Informatics ...
Undergraduate Handbook - School of Computing and Informatics ...
Undergraduate Handbook - School of Computing and Informatics ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
evolution <strong>of</strong> crypto systems; To develop tools necessary to crypto analyze crypto systems; To gain insights in the<br />
practical application <strong>of</strong> cryptology <strong>and</strong> error correction in the modern information age; To underst<strong>and</strong> the goals <strong>and</strong><br />
trade-<strong>of</strong>fs associated with encryption <strong>and</strong> error-control coding systems.<br />
Indicative Content; History <strong>of</strong> cryptology <strong>and</strong> coding theory; Shift registers Classical crypto-systems; Stream<br />
ciphers; Block ciphers; Information theory; Crypto analysis techniques; Introduction to Elliptic curve cryptography;<br />
Basic Algebra; Coding theory fundamentals; Linear codes; Hamming codes; Secret sharing schemes; Introduction<br />
to Complexity; Hash functions; PGP & PKI Deffie-hellman key exchange protocol.<br />
Reference Books:<br />
i. A. Menezes, P. van Oorschot, <strong>and</strong> S. Vanstone, <strong>H<strong>and</strong>book</strong> <strong>of</strong> Applied Cryptography, CRC Press, 1996.<br />
ii. W. Trappe <strong>and</strong> C. Washington, Introduction to Cryptography with Coding Theory, 2nd edition, Prentice<br />
Hall, 2006.<br />
iii. S. Singh, The Code Book, Doubleday, 1999.<br />
iv. S. S. Adams, Introduction to Algebraic Coding Theory with Gap, 2005.<br />
CSC 3103: User Interface Design (4 CU)<br />
Course Description The course introduces the principles <strong>of</strong> user interface development, focusing on design,<br />
implementation <strong>and</strong> evaluation. The course aims at providing different skills to students, such as: Developing<br />
efficient, flexible <strong>and</strong> interactive User Interfaces (UI); Provide ability to identifying system users, the tasks they<br />
want to carry out <strong>and</strong> the environment in which they will be working; Creating a conceptual designs; Designing<br />
various kinds <strong>of</strong> UI, in particular graphical user interfaces (GUIs) <strong>and</strong> websites; evaluating UIs; Appreciation <strong>of</strong><br />
realities <strong>of</strong> developing usable UIs in an organization.<br />
Indicative Content: Usability; User-Centered Design; UI S<strong>of</strong>tware Architecture; Human Capabilities; Output<br />
Models; Conceptual Models <strong>and</strong> Metaphors; Input Models; Design Principles; Paper Prototyping; Constraints <strong>and</strong><br />
Layouts; Graphic Design; Computer Prototyping; Heuristic Evaluation; User Testing; Experiment Design <strong>and</strong><br />
Experiment Analysis.<br />
Reference Books:<br />
i. D. A. Norman, The Design <strong>of</strong> Everyday Things. New York, NY: Doubleday, 1990.<br />
ii. J. Nielsen, Usability Engineering. Burlington, MA: Academic Press, 1994.<br />
iii. K. Mullet <strong>and</strong> D. Sano, Designing Visual Interfaces: Communication oriented techniques. Prentice Hall,<br />
1994.<br />
CSC 3112: Principles <strong>of</strong> Programming Languages (3 CU)<br />
Course Description: The course introduces students to the low level organization <strong>and</strong> operation <strong>of</strong> programming<br />
languages. It covers semantic <strong>and</strong> syntactic as well as operational issues in programming languages. The building<br />
blocks <strong>of</strong> programming languages are explored. The course gives students fundamental knowledge in the<br />
organization <strong>and</strong> operation <strong>of</strong> programming languages. Students learn to appreciate the possible future evolutions <strong>of</strong><br />
programming languages. It exposes students to causes <strong>of</strong> operational (like performance, security, etc) characteristics<br />
<strong>of</strong> programming languages. By the end <strong>of</strong> the course, students will be able to underst<strong>and</strong> common language<br />
paradigms; know the different building blocks <strong>of</strong> a programming language; know how the different blocks <strong>of</strong> a<br />
programming language interact<br />
Indicative Content:<br />
• Overview over programming language paradigms; Common principles: syntax, syntax trees, formal<br />
semantics (denotation <strong>and</strong> operational), variables <strong>and</strong> binding<br />
• Types: role <strong>of</strong> types in programming <strong>and</strong> programming languages, types <strong>and</strong> their operations: products,<br />
sums, functions, recursive types, reference <strong>and</strong> array types<br />
• Primarily imperative issues: control flow, arrays, pointers <strong>and</strong> references, parameter-passing mechanisms,<br />
49