Courses
Bioinformatics Courses
BIF515 Machine Learning
[3–0, 3 cr.]
This course provides an overview of popular algorithms in machine learning. Topics include supervised learning, linear and polynomial regression, classification algorithms, gradient descent, unsupervised learning, instance-based learning, neural networks, and genetic algorithms and boosting. The course requires some knowledge of artificial intelligence, and good programming skills. The theoretical aspects of the algorithms will be studied, and assignments will be given to test their applicability.Prerequisite: Senior Standing.
Note: This course has not been taught since Fall 2022 and will not be taught in the academic year 2024–2025.
BIF205 Biostatistics
[3–0, 3 cr.]
This course introduces the statistical design and analysis techniques needed to perform pharmaceutical research, and evaluate clinical data. It includes designing epidemiologic and clinical studies, evaluating diagnostic testing procedures, interpreting the use of statistical data in Medical Literature, and using frequently used statistical methods of data analysis. Emphasis is placed on the statistical concepts, and their application to the critical appraisal of clinical and experimental data.
BIF243 Introduction to Object-Oriented Programming
[3–0, 3 cr.]
This course introduces the fundamental concepts, and techniques, of programming and problem solving, from an object-oriented perspective. Topics include the introduction to computer systems (hardware, software, compilation, execution), fundamental programming constructs, (variables, primitive data types, expressions, assignment), program readability, simple I/O, conditional constructs, iterative control structures, structured decomposition, method call and parameter passing, basic program design using algorithms, algorithm stepwise refinement, pseudo-code, introduction to the object-oriented paradigm (abstraction, objects, classes, entity and application classes, class libraries, methods, encapsulation, class interaction, aggregation), inheritance, error types, simple testing and debugging, 1-D and 2-D arrays, basic searching, and sorting algorithms.
BIF243B Introduction to Object-Oriented Programming Lab
[1 cr.]
Hands-on project and assignment-based course where students will gain strong practical and technical skills in programming. The course emphasizes the use of shell, tools, utilities, and programming environments.
Corequisite: BIF243 Introduction to Object-Oriented Programming.
BIF244 Introduction to Script Programming
[3–0, 3 cr.]
This course introduces students to programming using scripting languages such as PERL or PYTHON with an emphasis on string and text processing. Topics include: basic operators, arrays and list variables, hashing, pattern and motif matching, as well as functions and subroutines. The course also covers querying online resources and parsing DNA and peptide sequences, genes and proteins annotations, PDF files and alignment reports.
BIF245 Objects and Data Abstraction
[3–0, 3 cr.]
This course presents further techniques of object oriented programming and problem solving, with emphasis on abstraction and data structures. Topics include: object oriented concepts, such as, composition, inheritance, polymorphism, information hiding, and interfaces; basic program design and correctness, such as, abstract data types, preconditions and post conditions, assertions and loop invariants, testing, basic exception handling, and the application of algorithm design techniques. The course also covers: basic algorithmic analysis, time and space tradeoffs in algorithms, big-O notation; fundamental data structures and applications, such as, collections, single- and double-linked structures, stacks, queues, and trees; performance issues for data structures; recursion, more sorting algorithms.
Prerequisite: BIF243 Introduction to Object-Oriented Programming
BIF245B Objects and Data Abstraction Lab
[1 cr.]
Hands-on project and assignment-based course where students will gain strong practical and technical skills in programming. The course emphasizes the use of shell, tools, utilities, programming environments, user interfaces, software versioning, and GUI applications.
Corequisite: BIF245 Objects and Data Abstraction
Prerequisite: BIF243 Introduction to Object-Oriented Programming and BIF243B Introduction to Object-Oriented Programming Lab.
BIF310B Algorithms and Data Structures Lab
[1 cr.]
Hands-on project and assignment-based course where students will gain strong practical and technical skills in the implementation of efficient algorithms. The course includes software design, continuous integration and continuous delivery, version control and source code management, deployment to repository managers, control issues and routines, developer testing, defensive programming, debugging, self-documenting code, refactoring, and design patterns.
Corequisite: BIF 310 Algorithms and Data Structures
Prerequisite: BIF245 Objects and Data Abstraction, BIF245B Objections and Data Abstraction Lab and MTH207 Discrete Structures I.
BIF310 Algorithms and Data Structures
[3–0, 3 cr.]
This course presents fundamental computing algorithms and data structures, with emphasis on design and analysis. Topics include the asymptotic analysis of upper and average complexity bounds, the best, the average, and the worst, case behaviors. Recurrence relations, sets, hashing and hash tables, trees and binary trees (properties, tree traversal algorithms), heaps, priority queues, and graphs (representation, depth- and breadth-first traversals and applications, shortest-path algorithms, transitive closure, network flows, topological sort) are also covered. The course also covers the sorting algorithms and performance analysis which include mergesort, quicksort and heapsort as well as details fundamental algorithmic strategies (divide-and-conquer approach, greedy, dynamic programming, and backtracking). An introduction to NP-completeness theory is provided.
Prerequisites: BIF245 Objects and Data Abstraction and MTH207 Discrete Structures I
BIF345 Cell and Molecular Biology
[3–0, 3 cr.]
This course is an integration of the approaches of cytology, biochemistry, genetics, and physiology, to provide a comprehensive understanding of the operation of cells as units of structure and function in living organisms.
Prerequisite: BIO321 Genetics
BIF375 Database Management Systems
[3–0, 3 cr.]
This course is an introduction to the fundamental concepts and techniques of database systems. Topics include database architecture, data independence, data modeling, physical and relational database design, functional dependency, normal forms, query languages, query optimization, database security, and transactions at the SQL level.
Prerequisite: BIF245 Objects and Data Abstraction and MTH 207 Discrete Structures I
BIF415 Introduction to Bioinformatics
[3–0, 3 cr.]
This course provides an introduction to modern computational practices in bioinformatics. Topics include computational methods for: fragment assembly; sequence alignment; modeling evolution; gene finding; gene expression; protein structure and function.
BIF425 Functional Genomics
[3–0, 3 cr.]
This is a combined course with the biology department. One part of the course will be related to the functional properties of genes while the second part will be related to how we can annotate genes and extract their functional properties from online resources. This course will also include the analysis of gene expression data (microarray, single cell, etc.).
Prerequisite: BIO202.
Note: This course has not been taught since Fall 2022 and will not be taught in the academic year 2024–2025.
BIF435 Structural Bioinformatics
[3–0, 3 cr.]
This is a combined course with the biology department. The theoretical part focuses on the different protein structures and their properties while the computational part focuses on computational methods for predicting, visualizing and assessing protein structures.
Prerequisite: BIF415
BIF455 Computational Drug Design
[3–0, 3 cr.]
This course explains the process of drug discovery and development through specific examples of case studies to better understand the issues facing the challenges of delivering a new drug on the market and the contributions of computational methodologies in the field. It covers the state-of-the art methods and computational techniques nowadays applied in computational chemistry and computer-assisted drug design. It presents approaches for both ligand and target discovery such as pharmacophore modeling, QSAR, structure-based drug design (docking and scoring), combinatorial chemistry, high throughput virtual screening (HTVS) and ADMET property prediction.
BIF498 Topics in Bioinformatics
[3–0, 3 cr.]
This course covers selected topics in Bioinformatics. This course may be repeated for credits.
BIF498H Topics in Bioinformatics for Honors Program
[3–0, 3 cr.]
This course covers selected topics in Bioinformatics. This course may be repeated for credits.
BIF513 Computational Biology
[3–0, 3 cr.]
This course covers the use of computer science tools to solve the problems related to biochemistry, and/or medicine. Topics include fundamental algorithmic methods in computational molecular biology, and bioinformatics, such as protein sequence analysis, pair- wise and multiple alignment, probabilistic models, phylogenetic analysis, folding and structure prediction, biological structures (protein structures, RNA structures, etc…), and information that could be derived from them. The course is research-based. Students are required to read papers and articles, compare different techniques used to solve problems, and suggest alternatives.
Prerequisite: Senior Standing.
BIF524 Data Mining
[3–0, 3 cr.]
This course covers the fundamental techniques and applications for mining high-throughput data. Topics include related concepts from machine learning, information retrieval and statistics, techniques and algorithms for classification, clustering, and association rules.
Prerequisite: BIF205
BIF599 Capstone Project
[3–0, 3 cr.]
This course is a stand-alone project course that allows students to integrate the many concepts, and skills, they have learned. The course requires the design, implementation, and oral presentation of a complete significant team project. The course is offered in a classroom environment with a capacity of 18 students.
Prerequisite: ENG202 and BIF415
BIF599H Capstone Project for Honors Program
[3–0, 3 cr.]
This course is a stand-alone project course that allows students to integrate the many concepts, and skills, they have learned. The course requires the design, implementation, and oral presentation of a complete significant team project. The course is offered in a classroom environment with a capacity of 18 students.
Prerequisite: ENG202 and BIF415