Undergraduate classes, Spring 2009, Computer Science
Note: All courses taken towards the major or minor must be taken on a letter grade basis, not pass/fail.
|CS 110: Computer Science Fundamentals||Credits: 4||− Description||− Sections|
Content: The course will provide a basic understanding of the principles underlying computer systems and software. Topics include an overview of computer hardware, the design of algorithms and their role in problem solving, and programming in a high level language. Databases, networking and the world-wide web, and contemporary issues in information technology will also be discussed.
Particulars: Lectures will be supplemented by readings and some laboratory exercises; there will be several quizzes, a midterm, a final exam, and assignments. Computer-based assignments will account for approximately 25% of the grade but this is not primarily a programming course.
CS110 is intended for students who do not expect to take additional computing courses. Students interested in further course work should instead start in CS170.
|000||MSC: W201||MWF 10:40am - 11:30am||Phil Hutto||max 50|
|CS 153: Computing for Bioinformatics||Credits: 4||− Description||− Sections|
Content: The course introduces tools of computer science that are
relevant to bioinformatics, with a focus on fundamental problems with
sequence data. Practical topics will include script programming
(either Perl or Python), data management, and web services. We will
see a basic overview of the necessary biology, but with most of our
attention on computational issues.
Prerequisites: Grades will be based on regular technical assignments
(including some programming), a midterm, and a final exam. There is no prerequisite to this course.
|000||MSC: E308A||MWF 11:45am - 12:35pm||Michelangelo Grigni||max 15|
|CS 170: Introduction to Computer Science I||Credits: 4||− Description||− Sections|
Content: This course is an introduction to computer science for the student who expects to make serious use of the computer in course work or research. Topics include: fundamental computing concepts, general programming principles, the Unix Operating System, the X-window system, and the Java programming language. Emphasis will be on algorithm development with examples highlighting topics in data structures.
Particulars: No previous programming experience is required for this course. Students expecting to take more advanced Computer Science courses should start here.
The grade in this course will be based on programming assignments and examinations. Typically the programming assignments will count no more than 50%.
|000||MSC: W201||TuTh 11:30am - 12:45pm||Li Xiong||max 30|
|001||MSC: W201||MWF 2:00pm - 2:50pm||Pawel Jurczyk||max 30|
|L-1||MSC: E308A||Tu 4:00pm - 4:50pm||Li Xiong||max 30|
|L-2||MSC: E308A||W 4:00pm - 4:50pm||Pawel Jurczyk||max 30|
|CS 171: Introduction to Computer Science II||Credits: 4||− Description||− Sections|
Content: A continuation of CS170. Emphasis is on the use and implementation of data structures, introductory algorithm analysis, and object oriented design and programming with Java. The course will also introduce the basics of procedural programming with C.
|000||MSC: W301||TuTh 10:00am - 11:15am||Shun Yan Cheung||max 25|
|CS 190: Freshman Seminar: The Web||Credits: 4||− Description||− Sections|
Content: How long can you survive without access to Web applications such as
Facebook, Wikipedia, or Google? The Web now is central to our information
society, and this course will be a guided tour through the concepts, ideas,
and technology underlying the web's evolution into the modern ecosystem for
commerce, information finding, and social interaction. We will also gain
hands-on programming experience with key web applications such as search,
online social networks, and web services. The assignments will primarily
consist of lab exercises and group programming projects in which students
will program Web2.0 services to do cool stuff. Although the course is
self-contained and will explore both conceptual and practical topics, a
strong interest in learning how to program and/or some previous exposure to
programming would be quite helpful.
|000||MSC: W303||TuTh 1:00pm - 2:15pm||Eugene Agichtein||max 18|
|CS 323: Data Structures and Algorithms||Credits: 4||− Description||− Sections|
Content: This is an advanced course in computer science, studying
ideas and algorithms for processing data in a computer. The course
will involve studying such data structures as lists, trees, heaps,
hash tables, graphs, and their applications in the construction of
efficient algorithms. Searching and sorting algorithms will be also
Particulars: Grades will be based on programming assignments, written
work, a midterm exam, and a final exam. The programming language used
in this class is Java.
Prerequisites: CS 171 and CS 224
|000||MSC: W304||MWF 2:00pm - 2:50pm||Michelangelo Grigni||max 25|
|CS 325: Artificial Intelligence||Credits: 4||− Description||− Sections|
Content: Foundations and problems of machine intelligence,
heuristic problem solving techniques, search, knowledge
representation, applications, AI programming
Particulars: Offered alternate years.
Prerequisites: CS171 and CS224
|000||MSC: W301||MW 3:00pm - 4:20pm||James Lu||max 25|
|CS 355: Computer Architecture||Credits: 4||− Description||− Sections|
Content: This is the second course in computer organization and architecture. This course will involve studying the register transfer level of the control unit, micro-programming, pipelining, caching, interrupt handling, virtual memory (paging), and I/O programming. We will also look at SIMD, MIMD architectures, message passing multi-processors and dataflow machines.
Particulars: Students should have a thorough understanding of the SISD von-Neumann architecture. Grades will be based on quizzes, homework, one or two midterm exams, and a final exam.
Prerequisites: CS 255.
|000||MSC: W301||TuTh 11:30am - 12:45pm||Shun Yan Cheung||max 25|
|CS 424: Theory of Computing||Credits: 4||− Description||− Sections|
Content: This course gives mathematical methods to classify the complexity of computational problems. Topics include regular languages, grammars, decidability, NP-completeness, and corresponding models of computation.
Prerequisites: CS 253 and CS 224.
|000||MSC: W302||MWF 3:00pm - 3:50pm||Ojas Parekh||max 25|
|CS 452: Operating Systems||Credits: 4||− Description||− Sections|
Content: The structure and organization of computer operating systems. Process, memory, and I/O management; device drivers, inter-machine communication, introduction to multiprocessor systems.
An important portion of the course is a course long programming project that implements a simple operating system in stages. Each stage takes about three weeks, and is used as a basis for the next stage. (The scope and pace of the project is somewhat less than the related project in CS580)
Particulars: Grades will be based on the project and a final exam. Must be taken for a letter grade.
Prerequisites: CS 450.
|000||MSC: E408||TuTh 2:30pm - 3:45pm||Ken Mandelberg||max 16|
|CS 495RWR: Honors||Credits: 1 - 12||− Description||− Sections|
|CS 497R: Undergraduate Directed Study||Credits: 1 - 12||− Description||− Sections|