This page contains brief summaries of the various academic courses that I took during the course of my degree.
31Z7: Honours Project
When and where: Spring 2003 at University of Stirling
Instructors: Professor Ken Turner
Description: Substantial and largely independent piece of professional work; documentation and verbal presentation of work; understanding of research methods
Projects: Honours dissertation of over 90,000 words, corresponding compiler software, presentation and poster
Technologies: Java, ANTLR, jEdit
31YG: Software Engineering III
When and where: Spring 2003 at University of Stirling
Instructors: Mr Charles Rattray
Description: Reverse engineering and software re-engineering; software planning and management; methods and tools for the analysis of existing code and designs
Projects: Re-engineering a C/SQL matriculation application to Java
Technologies: C/SQL, Java
31YE: Artificial Intelligence
When and where: Spring 2003 at University of Stirling
Instructors: Dr Amir Hussain
Description: Understanding of the scope and methodology of artificial intelligence through intelligent agents; logical formalisms, knowledge representation and manipulation, problem solving and planning using logical systems
Projects: Producing an intelligent agent to play the Wumpus world
Technologies: Java
31YD: Technologies for e-commerce
When and where: Autumn 2002 at University of Stirling
Instructors: Dr Simon Jones, Mr Mario Kolberg
Description: Overview of the variety of the available e-commerce technologies; writing Java servlets and JSPs that use the JDBC classes; writing interfaces to e-commerce web sites through HTML forms; the role of XML; security and professional issues involved in running an e-commerce web site
Projects: Producing a self-test website
Technologies: Java servlets, JSP, HTML
31YA: Language Implementation
When and where: Autumn 2002 at University of Stirling
Instructors: Professor Ken Turner
Description: Principles of compilers, translators and interpreters; parsing typical programming languages; generating object code; writing a compiler using Antlr
Projects: Completing a simple compiler for a toy language
Technologies: Java, ANTLR, jEdit
31N5: Multimedia and Human-Computer Interaction
When and where: Autumn 2002 at University of Stirling
Instructors: Dr David Cairns, Dr Bruce Graham, Professor Leslie Smith
Description: Concepts of human-computer interaction; cognitive psychology; design and analysis of user interfaces; audio file formats; multimedia design; Java UI programming
Projects: Produced a website with design report and a multimedia presentation with design report
Technologies: Dreamweaver, Director, Photoshop
CS154: Computer Architecture
When and where: Spring 2002 at University of California, Santa Barbara
Instructors: Associate Professor Klaus Shauser
Description: Introduction to the architecture of computer systems. Topics include: central processing units, memory systems, channels and controllers, peripheral devices, interrupt systems, software versus hardware trade-offs.
Projects: Numerous benchmarking, related hardware experiments and basic machine code programming.
CS192: Projects in Computer Science
When and where: Spring 2002 at University of California, Santa Barbara
Instructors: Assistant Professor Tevfik Bultan
Description: Projects in computer science for advanced undergraduate students.
Projects: Produced a survey paper on the use of assertions in current software development.
GC266: Formal Specification and Verification
When and where: Spring 2002 at University of California, Santa Barbara
Instructors: Professor Richard Kemmerer
Description: Introduction to existing specification and verification systems, and the underlying theory and techniques of verifying the correctness of algorithms with respect to specifications. This subject can be considered as the combination of specification and verification techniques, programming language semantics, and formal logic.
Projects: Produced Joose, an Object-Oriented Symbolic Executor
Technologies: UNISEX, Aslan, Java
CS130B: Data Structures and Algorithms II
When and where: Winter 2002 at University of California, Santa Barbara
Instructors: Professor Ming Li
Description: Design and analysis of computer algorithms. Correctness proofs and techniques for the design of correct programs. Solution of recurrence relations. Design techniques: divide and conquer, greedy strategies, dynamic programming, backtracking, and local search. Applications of techniques to problems from several disciplines.
Projects: Produced a series of algorithms and corresponding correctness proofs
Technologies: Java
CS172: Software Engineering
When and where: Winter 2002 at University of California, Santa Barbara
Instructors: Assistant Professor Tevfik Bultan
Description: Software engineering is concerned with long-term, large-scale programming projects. Software management, cost estimates, problem specification and analysis, system design techniques, system testing and performance evaluation, and system maintenance. Students will design, manage, and implement a medium-sized project.
Projects: State-chart design and animation tool along with specification and design documents
Technologies: Java
CS190I: Fundamentals of Database Systems
When and where: Winter 2002 at University of California, Santa Barbara
Instructors: Professor Amr El Abbadi
Description: Database system architectures, relational data model, relational algebra, relational calculus, SQL, QBE, query processing, integrity constraints (key constraints, referential integrity), database design, ER and object-oriented data model, functional dependencies, lossless join and dependency preserving decompositions, Boyce-Codd and Third Normal Forms.
Projects: Online telephone management database
Technologies: Java, JDBC, JSP
CS130A: Data Structures and Algorithms I
When and where: Fall 2001 at University of California, Santa Barbara
Instructors: Professor Hugh McGuire
Description: The study of data structures and applications. Correctness proofs and techniques for the design of correct programs. Internal and external searching. Hashing and height balanced trees. Analysis of sorting algorithms. Memory management. Graph traversal techniques and their applications.
Projects: Included Red-black tree, B+ tree, Passwd parser, CutShort game
Technologies: C++
CS136: Automata and Formal Languages
When and where: Fall 2001 at University of California, Santa Barbara
Instructors: Professor Oscar Ibarra
Description: Formal languages; finite automata and regular expressions; properties of regular languages; pushdown automata and context-free grammars; properties of context-free languages; introduction to computability and unsolvability (Turing machines) and computational complexity.
CS176A: Introduction to Computer Communication Networks
When and where: Fall 2001 at University of California, Santa Barbara
Instructors: Professor Alan Konheim
Description: Basic concepts in networking, the OSI model, error detection codes, flow control, routing, medium access control, and high-speed networks.
Technologies: Java
31Y4: Programming Language Paradigms
When and where: Spring 2001 at University of Stirling
Instructors: Dr Savi Maharaj, Dr Robert Clark
Description: Programming language concepts; principles of language design; advantages of the use of classes; use, implementation and complexity of data structures; simple grammars and parsing
Projects: Produced a library program in Prolog and wrote an essay comparing Java and C#
Technologies: SWI-Prolog
31V4: Systems I
When and where: Spring 2001 at University of Stirling
Instructors: Dr Alan Hamilton
Description: Knowledge of systems software and von Neumann hardware functions; more Java programming experience
Projects: Produced a Brookshear machine simulator and wrote and essay on RISC versus CISC
Technologies: Java
3133: Computing Science III - Data Structures, Algorithms & Objects
When and where: Autumn 2000 at University of Stirling
Instructors: Dr Simon Jones, Dr Robert Clark
Description: Object-oriented development
Projects: Library program and a priority queue waiting room application
Technologies: Java
3132: Computing Science II - Programming & Machine Organisation
When and where: Spring 2000 at University of Stirling
Instructors: Dr Simon Jones, Dr Sharon Curtis
Description: Principles of programming in Java; developing basic applets; basic GUI programming and GUI design; basics of accessibility
Projects: Pie chart applet
Technologies: Java
3141: Computing Science I - Advanced Skills & Applications
When and where: Spring 1999 at University of Stirling
Instructors: Dr Simon Jones, Professor Leslie Smith
Description: Basics principles of networks, HTML, HLLs and applets
Projects: Talk on the Y2K problem
Technologies: Java, HTML
|
|