CSS 390: Introduction to Data Management
Instructor: Asuncion, Hazeline
Days: T Th
Time: 3:30pm - 5:30pm
The main goal of the course is to teach best practices for managing data in the science domain. We will cover concepts such as data lifecycle, data analysis, data curation, data preservation and technologies such as XML, RDF, ontologies, storage mechanisms (e.g., databases, flat files), analysis tools (e.g., Excel, Matlab), and visualization tools. There is a strong hands-on component to the class because you will be expected to know how to use the various tools effectively at the end of the class. Any coding we may do in class will be at a very high level (i.e., can be performed by a non CSS student) and will most likely be within the platforms of Matlab or Excel.
CSS 490: Introduction to Functional Programming
Instructor: Ferracina, Fabiana
Time: 5:45pm - 7:45pm
Functional programming (FP) is a programming paradigm that emphasizes the evaluation and application of functions, in contrast with the state-changing emphasis of imperative programming languages such as C and Java. FP's treatment of functions as first-class citizens eliminates obscure state-changing effects, making programs that are often shorter and easier to understand than their imperative counterparts.
FP languages have been adopted by a variety of industries, ranging from the use of Erlang to create concurrent databases to Haskell which is employed in research and systems design. In this class we will learn the functional programming mindset via Scala, a modern general purpose language built on the JVM. Scala is object oriented and functional, thus scalable and elegant. Its use of the JVM makes it easy to integrate with Java and so it is starting to see widespread industry use. For example, Scala is used by companies such as Twitter, LinkedIn and Quora. After acquiring a good grasp of FP via Scala, we will also explore the different features present in other prominent FP languages used in industry.
The background required for this class is knowledge programming in an imperative language and comfort with recursion.
CSS 290: Educational Software
Instructor: Kofi Weusijana, Baba
Days: T Th
Time: 2:30pm - 5:00pm
This course examines constructionist methods of using computers to help learners. Students will evaluate educational software and then participate in design projects aimed at solving real problems. Students, particularly those from Education and Computing and Software Systems programs, will work together in project teams. No prior programming experience and no prior knowledge of teaching is required. Project work can be used in school or after-school settings by project members who are already teaching. Project work can also be used in informal settings such as homes and museums.
CSS 390: Scripted Languages
Instructor: Bernstein, Morris
Days: M W
Time: 8:00pm - 10:00pm
This special topics class will introduce the intermediate and advanced student to a variety of scripting languages, including at least bash, Perl, and Python. These languages are useful tools for a wide range of tasks, including automation of various workflow activities, ad hoc utility creation, rapid prototyping, systems integration, small and medium scale software development, job control, and as utilities for many peripheral software development tasks. We will not only learn how to use these tools to make ourselves more productive, we will also compare and contrast each language's capabilities, strengths, and weaknesses.
Prerequisite: CSS 342
CSS 490: Algorithms in Bioinformatics
Instructor: Wooyoung Kim
Days: T Th
Time: 3:30pm - 5:30pm
Bioinformatics is one of the most exciting fields with many computer science applications along with computational methods. Computer scientists have been involved in this field by developing algorithms and implementing them as tools to help create, analyze and manage biological data. Instead of learning about those computational tools, this course will focus on learning the algorithms that implemented the tools and computational models applied to bioinformatics. Students will learn how those algorithms have been developed to solve a variety of bioinformatics problems: Dynamic programming for DAN/protein sequence alignment; Graph algorithms for delineating dynamics of biological processes, Pattern matching technique to search databases; Combinatorial algorithms for DNA sequence processing; Hidden Markov models for sequence annotation; Statistics for haplotype frequency inference; Clustering and Trees for gene expression analysis, etc. This course also uses Python programming language to implement these algorithms for given problems. Students will conduct group projects which develop bioinformatics tools/platforms with any programming language including Python.
Prerequisite: CSS 343