Relevant Courses
The objectives of the Bioinformatics Journal Club are (1) to keep participants updated on applications of current bioinformatics to life sciences research; and (2) To improve the presenting and critical thinking skills of participants. In general, we discuss current bioinformatics development that has been, or can be, applied to biological research problems. It should be relevant to the presenter’s own research focus.
To introduce medical students to life sciences from the perspective of an informational science. Real-life examples will be cited to illustrate the transformation.
To introduce medical students to the plethora of bioinformatics and biomedical knowledge, data, resources available online via the Internet, and what kind of information both patient and doctor will have easy access to. Real-life examples will be cited to illustrate the transformation.
Introduction to biological databases and bioinformatics software. Sequence comparison algorithms and tools. Sequence analysis and molecular phylogenetics. Biomolecular 3D structure and modeling. Students will be introduced to bioinformatics theory, tools, and technique through lectures, tutorials, practical sessions, class presentations, continual assessment and a miniproject applying what they have learnt on a real-life example.
The goals of CS2220 (Introduction to Computational Biology) are: (1) development of flexible and logical problem solving skills; (2) understanding of main bioinformatics problems; and (3) appreciation of main techniques and approaches to bioinformatics. To achieve the goals above, we expose the students to a series of case studies spanning gene feature recognition, gene expression and proteomic analysis, gene finding, sequence homology interpretation, phylogeny analysis, physical mapping, and genome sequencing
To be mounted in January 2007.
This module is an introduction to the algorithms and popular software tools for basic computational problems in genomics. It studies exact algorithms for those problems that can be solved easily and approximation and/or heuristic algorithms for more difficult problems. The objective is to develop competitive knowledge in formulating biological problems in computational terms and solving these problems using the algorithmic approach. This module is for students with interests in computational molecular biology. Major topics: Sequence analysis, multiple sequence alignment, phylogenetic analysis, DNA sequences assembly and mapping, gene finding, protein folding problem.
The advent of high throughput technologies (e.g, DNA chips, microarray, etc), biologists are being overloaded with lots of information (e.g., gene expression data). To be able to make sense out of these data, there is a need to have a systematic way to analyze them. This course is introduced to provide students with knowledge of techniques that can be used to analyze biological data to enable them to discover new knowledge. At the end of the course, students will be able to identify the relevant techniques for different biological data to uncover new information. Topics include: Clustering analysis, classification, association rule mining; support vector machines; Hidden Markov Models.
Biology data are too enormous. Handling them using brute-force approaches becomes impossible and efficient algorithms are required. This module is an in-depth study of some of these advance algorithms. Through the course, students are able to understand these algorithms in detail. They are also given a chance to solve some research problems in this field, including sequence comparison, indexing of biological database, sequencing by hybridization, and more.
The course is for graduate students with an interest in computational molecular biology. The objective is to develop knowledge and research ability in the subject. This module studies computational biology problems along both algorithmic and statistical approaches. It covers different methods for multiple sequence alignment, genome sequencing, comparative analysis of genome information, gene prediction, finding signals in DNA, phylogenetic analysis, protein structure prediction. Other topics covered include microarray gene expression analysis and computational proteomics.
This course introduces the basic computational representations and algorithms for molecular biology. It also introduces and uses biological data sources available on the World Wide Web. The topics include algorithms for processing biological sequences and structures, as well as microarray data, e.g., dynamic programming algorithms for sequence alignment, algorithms for structural superposition, microarray data analysis.
This course will provide an introduction to computational approaches to systems biology. A systemic approach to biology is not new but it has recently gained significant momentum due to emerging experimental and computational methods. There is emerging consensus that it is both feasible and necessary to formulate computer models of biochemical and signaling networks. This will enable researchers to make testable quantitative predictions and validate such predictions. However, formidable barriers remain to be surmounted before this vision of systems biology can be realized. Our goal will be to display -a part of- the current state of the field from a computer science perspective. We shall focus on the dynamical aspects of biochemical and signaling networks and the means for modeling, simulating and analyzing such networks. We shall present core material in the form of lectures as well as snippets of ongoing research through invited presentations.
To understand the molecular basis of heredity, including the structure and function of genes and their role in phenotypic variations. Practical sessions will be conducted to reinforce the concepts taught during lectures. Techniques for genetic analysis and the use of model organisms such as Escherichia coli, Drosophila and higher plants will be taught. Which should we teach first: Mendelian Genetics or Molecular Genetics? The classical way genetics are taught is to start with Mendelian Genetics, followed by Molecular Genetics. Nevertheless, we have chosen to reverse the order as we need to understand and grasp the fundamental molecular mechanisms underlying transmission or classical genetics today. Most students will have heard of dominant or ressessive genes, but very few will be able to explain the molecular reasons or mechanisms that determine "dominance" or "recessiveness". This is one example of the fundamental mindset we hope to change and accomplish.
CS1102 aims to give a systematic introduction to data structures and algorithms for constructing efficient computer programs. Emphasis is on data abstraction issues (through Abstract Data Types) in the program development process,and on efficient implementations of chosen data structures and algorithms. Commonly used data structures covered include stacks, queues, trees (including binary search trees, heaps and AVL trees), hashing, tables, and graphs; together with their corresponding algorithms (tree and graph traversals, minimum spanning trees). Simple algorithmic paradigms,such as generate-and-test (search) algorithms, greedy algorithms and divide-and-conquer algorithms will be introduced. Elementary analyses of algorithmic complexities will also be taught. CS1102C covers the same topics, but from an imperative paradigm perspective. CS1102S covers the same topics, but from a functional programming perspective.
Random sample and statistics, method of moments, maximum likelihood estimate, Fisher information, sufficiency and completeness, consistency and unbiasedness, sampling distributions, x2-, t- and F-distributions, confidence intervals, exact and asymptotic pivotal method, concepts of hypothesis testing, likelihood ratio test, Neyman-Pearson lemma. This module is targeted at students who are interested in Statistics and are able to meet the pre-requisites.
This module introduces different techniques of designing and analysing algorithms. Students will learn about the framework for algorithm analysis, for example, lower bound arguments, average case analysis, and the theory of NP-completeness. In addition, students are exposed to various algorithm design paradigms. The module serves two purposes: to improve the students' ability to design algorithms in different areas, and to prepare students for the study of more advanced algorithms. The module covers lower and upper bounds, recurrences, basic algorithm paradigms (such as prune-and-search, dynamic programming, branch-and-bound, graph traversal, and randomised approaches), amortized analysis, NP-completeness, and some selected advanced topics.
This module aims to prepare students in competitive problem solving. It covers techniques for attacking and solving challenging computational problems. Fundamental algorithmic solving techniques covered include divide and conquer, greedy, dynamic programming, backtracking and branch and bound. Domain specific techniques like number theory, computational geometry, string processing and graph theoretic will also be covered. Advanced AI search techniques like iterative deepening, A* and heuristic search will be included. The module also covers algorithmic and programming language toolkits used in problem solving supported by the solution of representative or well-known problems in the various algorithmic paradigms.
The module introduces the basic concepts in artificial intelligence. Topics covered include: intelligent agent, search, game playing, constraint satisfaction, logic, planning, reasoning, and learning.
This module introduces basic concepts and algorithms in machine learning and neural networks. The main reason for studying computational learning is to make better use of powerful computers to learn knowledge (or regularities) from the raw data. The ultimate objective is to build self-learning systems to relieve human from some of already-too-many programming tasks. At the end of the course, students are expected to be familiar with the theories and paradigms of computational learning, and capable of implementing basic learning systems.
This module addresses the design of relational databases and object oriented databases. Topics covered include: normalisation theory: functional, multi-valued and join dependency, normal forms, relational database schema design using decomposition method and synthesizing method; entity-relationship approach: normal form entity-relationship diagram, its derivation, and its translation to relational, network, and hierarchical database schemas; schema integration: view integration and database integration, schema conflict resolution; nested relations: normal form nested relations, nested relations design using decomposition method and entity-relationship approach; object-oriented databases: basic concepts, inadequacies in object-oriented data models, inheritance conflict resolution, translate relational database schemas and entity-relationship diagrams to object-oriented database schemas.
This is a module that contains both the theory and practice of building knowledge-based systems. The aim of this module is to prepare students so that they can design and build knowledge-based systems to solve real-world problems. The module starts with motivations, background and history of knowledge-based system development. The main content has five parts: rule-based programming language, uncertainty management, knowledge-based systems design, development and life cycle, efficiency in rule-based language and knowledge-based systems design examples.
Design of experiments. Descriptive statistics. Measurement error, correlation, regression. Probability. Chance variability. Estimation. Chance models, tests of significance. Multiple regression. Analysis of variance.
Data mining is a diverse field which draws its foundation from many research areas like databases, machine learning, AI, statistics, etc. The aim of this course is to highlight concepts from these areas which are fundamental and often used in building data mining tools. At the end of the course, students should: (1) have a good knowledge of the fundamental concepts that provide the foundation of data mining; (2) understand how these concepts are engineered to provide some of the basic data mining tools; and (3) be able to adopt these concepts to develop new data mining tools for new applications.
Decision making technologies can support decision making in the financial, operational,marketing and other areas. Efforts have been directed at finding new machine learning (ML) techniques for decision making and their possible application in solving practical problems. ML techniques such as artificial neural network methods have been proven to be powerful tools for decision making. Applications include credit rating, bankruptcy analysis, foreign exchange rate predictions and many others. The techniques covered in this course include neural networks for classification/regression/clustering, genetic algorithm for optimization, decision tree methods, support vector machine and data mining.
The module covers modelling methods that are suitable for reasoning with uncertainty. The main focus will be on probabilistic models including Bayesian networks and Markov networks. Topics include representing conditional independence, building graphical models, inference using graphical models and learning from data. Selected applications in various domains such as speech, vision, natural language processing, medical informatics, bioinformatics, data mining and others will be discussed.
Topics covered may include maximum likelihood parameter estimation, Bayesian parameter estimation, decision theory, non-parametric methods, regression, linear classifiers, model selection, feature selection, neural networks, kernel classifiers, nearest neighbor, EM, trees, boosting and bagging, graphical models, reinforcement learning, applications in computational biology, and applications in natural language processing.
This module will go in-depth into information collection and analysis required for quantitative IS research. It will cover sampling, regression, instrument validation in social research, model building, analysis of variance, factor analysis, structural equation modeling, and other methods. The course will be practice-oriented, whereby students are expected to design and execute quantitative studies using the data that they have collected. They will be required to summarize their analysis and finding in a report.