06.07.2013 Views

Undergraduate Handbook - School of Computing and Informatics ...

Undergraduate Handbook - School of Computing and Informatics ...

Undergraduate Handbook - School of Computing and Informatics ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!