Course Works

A collection of my course works from University, please do not use them for any of your own work.

Courses

CSCB36 - Introduction to the Theory of Computation
Mathematical induction with emphasis on applications relevant to computer science.
CSCB09 - Software Tools and Systems Programming
Software techniques in a Unix-style environment, using scripting languages and a machine-oriented programming language.
CSCB58 - Computer Organization
Principles of the design and operation of digital computers.
CSCB63 - Design and Analysis of Data Structures
Design, analysis, implementation and comparison of efficient data structures for common abstract data types.
CSCC01 - Introduction to Software Engineering
Introduction to software development methodologies with an emphasis on agile development methods appropriate for rapidly-moving projects.
CSCC09 - Programming on the Web
An introduction to software development on the web.
CSCC10 - Human-Computer Interaction
The course will provide an introduction to the field of Human-Computer Interaction (HCI) with emphasis on guidelines, principles, methodologies, and tools and techniques for analyzing, designing and evaluating user interfaces.
CSCC11 - Introduction to Machine Learning and Data Mining
An introduction to methods for automated learning of relationships on the basis of empirical data.
CSCC37 - Introduction to Numerical Algorithms for Computational Mathematics
An introduction to computational methods for solving problems in linear algebra, non-linear equations, approximation and integration.
CSCC43 - Introduction to Databases
Introduction to database management systems. The relational data model. Relational algebra.
CSCC63 - Computability and Computational Complexity
Introduction to the theory of computability: Turing machines, Church's thesis, computable and non-computable functions, recursive and recursively enumerable sets, reducibility.
CSCC69 - Operating Systems
Principles of operating systems. The operating system as a control program and as a resource allocator. The concept of a process and concurrency problem: synchronization, mutual exclusion, deadlock.
CSCC73 - Algorithm Design and Analysis
Standard algorithm design techniques: divide-and-conquer, greedy strategies, dynamic programming, linear programming, randomization, and possibly others.
CSCD01 - Engineering Large Software Systems
An introduction to the theory and practice of large-scale software system design, development, and deployment.
CSCD03 - Social Impact of Information Technology
The trade-offs between benefits and risks to society of information systems, and related issues in ethics and public policy.
CSCD27 - Computer and Network Security
Public and symmetric key algorithms and their application; key management and certification; authentication protocols; digital signatures and data integrity...
CSCD58 - Computer Networks
Computer communication network principles and practice.
CSCD84 - Artificial Intelligence
A study of the theories and algorithms of Artificial Intelligence.