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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CSC 2200: Operating Systems (4 CU)<br />

Course Description: Operating Systems course introduces students to s<strong>of</strong>tware that controls hardware <strong>and</strong> makes<br />

the hardware usable. Its interaction with other computer devises <strong>and</strong> how it controls other computer processes is<br />

explored. The Course aims at providing students with a detailed underst<strong>and</strong>ing <strong>of</strong> how operating systems work;<br />

skills to write basic Programmes to utilize underlying operating system infrastructures. At the end <strong>of</strong> the course,<br />

students are able to know the dominant categories <strong>of</strong> operating systems are Windows <strong>and</strong> UNIX (Linux, Mac OS,<br />

Solaris, etc). Students <strong>of</strong> operating systems are expected to have a proper underst<strong>and</strong>ing <strong>of</strong> the differences between<br />

these two. Students should be able to underst<strong>and</strong> different design principles for operating systems <strong>and</strong> various<br />

s<strong>of</strong>tware tools that make operating systems usable.<br />

Indicative Content; Operating Systems Structures; Processes <strong>and</strong> threads; Thread creation, manipulation <strong>and</strong><br />

synchronization; Deadlock; Implementing Synchronization operations; CPU scheduling; Memory management;<br />

File systems <strong>and</strong> file system implementation; Monitors; Segments; Disk Scheduling; Networking; UDP <strong>and</strong> TCP.<br />

Reference Book:<br />

i. W. Stallings, Operating Systems: Internals <strong>and</strong> Design Principles 5th edition, Prentice Hall, 2005.<br />

CSC 2209: Systems Programming (4 CU)<br />

Course Description: Systems programming is aimed at teaching students how to write Programmes using system<br />

level services. The system <strong>of</strong> instruction is UNIX due to availability <strong>of</strong> free system tools that have been largely<br />

developed by <strong>and</strong> for the academia. The course is aimed at giving students skills in tools provided by systems, their<br />

comm<strong>and</strong>s, system calls <strong>and</strong> underst<strong>and</strong>ing for model <strong>of</strong> computation.<br />

Indicative Content; Introduction <strong>and</strong> Unix St<strong>and</strong>ardization; File input <strong>and</strong> output; St<strong>and</strong>ard I/O Library; Files <strong>and</strong><br />

Directories; System Data Files <strong>and</strong> Information; Process Environment; Process Control; Process Relationships;<br />

Signals; Threads; Advanced I/O <strong>and</strong> Inter process Communication<br />

Reference Book:<br />

i. W. R. Stevens, Advanced programming in the Unix Environment, Addison-Wesley, 2008.<br />

CSC 2210 Automata, Complexity <strong>and</strong> Computability (3 CU)<br />

Course Description: The course introduces students to the concept <strong>of</strong> automata <strong>and</strong> complexity. It sets a<br />

background for more advanced studies like compiler construction <strong>and</strong> principles <strong>of</strong> programming languages. The<br />

aims <strong>of</strong> the course are: To introduce students to the concepts <strong>of</strong> complexity, automata <strong>and</strong> computability; To prepare<br />

students for advanced studies in compiler construction <strong>and</strong> principle <strong>of</strong> programming languages;<br />

Indicative content: Finite state machines <strong>and</strong> regular languages: Deterministic <strong>and</strong> non deterministic machines;<br />

Equivalence <strong>and</strong> minimization; Regular expressions <strong>and</strong> regular grammars; Kleene’s theorem. Push-down automata<br />

<strong>and</strong> context free grammars; Normal forms <strong>of</strong> grammars; Top-down <strong>and</strong> bottom-up parsing; Turing machines <strong>and</strong><br />

computability; Church’s thesis; NP-Computable problems.<br />

Reading Books:<br />

i. J. E. Hopcr<strong>of</strong>t, R. Motwani, J. D. Ullman, Introduction to Automata Theory, Languages, <strong>and</strong><br />

Computation; Addison Wesley, 2000.<br />

ii. D. I. A. Cohen, Introduction to Computer Theory; John Wiley <strong>and</strong> Sons, Inc, 1996.<br />

CSC 2214 Cryptology <strong>and</strong> Coding Theory (3 CU)<br />

Course Description: This course provides a foundation for further studies in information security. The course<br />

introduces students to the exciting fields <strong>of</strong> cryptology <strong>and</strong> coding theory. Fundamentally, it deals with the<br />

mathematics that underlies modern cryptology. Cryptology combines the studies <strong>of</strong> cryptography, the creating <strong>of</strong><br />

masked messages, <strong>and</strong> cryptanalysis, the unraveling <strong>of</strong> masked messages. Coding theory is the study <strong>of</strong> coding<br />

schemes used to detect <strong>and</strong> correct errors that occur during the data transmission. The aims <strong>of</strong> this course are; To<br />

underst<strong>and</strong> the building blocks <strong>of</strong> crypto systems <strong>and</strong> error correction; To gain historical underst<strong>and</strong>ing <strong>of</strong> the<br />

48

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

Saved successfully!

Ooh no, something went wrong!