Undergraduate classes, Fall 2008, 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||TuTh 10:00am - 11:15am||Vaidy Sunderam||max 50|
|CS 155: Computer Science with Business Applications||Credits: 4||− Description||− Sections|
Content: This course covers tools and concepts of computer science that are most relevant to business (enterprise) computing and e-commerce, emphasizing the common 3-tier website model. Students will be introduced to basic programming principles, page layout and visual interface design, client/server computing, and simple techniques for accessing databases. Algorithmic and mathematical foundations of fundamental e-commerce techniques such as search engines, recommendation and reputation management systems, and online auctions will be studied. Teams of students will explore existing websites and design and implement extensions to a code framework. No background in computing is necessary but students with background are welcomed.
Particulars: Class meetings will be a mix of lectures and hands-on work in the Math/CS teaching lab using Microsoft #C .NET and related tools. Grades will be based on participation, presentations, project design and implementation, and a midterm and final exam.
This class has a lab on Thursdays from 4-5 pm in the Computer Lab, MSC E308A.
|000||MSC: W301||MWF 11:45am - 12:35pm||Phil Hutto||max 30|
|LAB||MSC: E308A||Th 4:00pm - 5:00pm||Phil Hutto||max 30|
|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: W303||MWF 10:40am - 11:30am||Phil Hutto||max 30|
|001||MSC: W301||TuTh 1:00pm - 2:15pm||Sebastien Siva||max 30|
|Lab1||MSC: E308A||Tu 4:00pm - 5:00pm||Phil Hutto||max 30|
|Lab2||MSC: E308A||W 4:00pm - 5:00pm||Sebastien Siva||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: W302||TuTh 1:00pm - 2:15pm||Eugene Agichtein||max 25|
|CS 190: Freshman Seminar: Robots||Credits: 4||− Description||− Sections|
Content: Computers are ubiquitous and take a variety of interesting forms such as robots, mobile phones, electronic music players, biomedical devices, and toys. This course provides an introduction to Computer Science by programming and exploring such embedded computers in the form of robots designed using the Lego Mindstorms NXT package. Assignments will primarily consist of weekly labs in which students will program a robot to compete with other students on or perform a given task. Although the course is self-contained and will explore various topics, the primary focus will be no designing and implementing programs, and a strong interest in learning or experience in programming will be quite useful.
|000||MSC: W304||TuTh 1:00pm - 2:15pm||Ojas Parekh||max 16|
|CS 224: Mathematical Foundations of Computer Science||Credits: 4||− Description||− Sections|
Content: This course introduces elementary mathematics necessary for the computer science curriculum. Topics include functions, boolean logic, quantifiers, automata, languages, asymptotic notation, and reasoning about programs.
Particulars: The grade is based on regular homeworks, one or two midterms, and a final exam.
Prerequisites: Math 112 (or 112s or 112Z). Corequisite: CS 170.
|000||MSC: E406||MWF 12:50pm - 1:40pm||James Lu||max 30|
|CS 255: Computer Organization and Architecture I||Credits: 4||− Description||− Sections|
Content: This is the first course in computer organization and architecture and is designed to introduce the student to computer organization, architecture. The hardware components of computer systems and their interconnections will be studied at a level suitable for assembly programming. The architecture of the M68000 and SPARC computers and their assembly languages will be covered in detail.
Particulars: Grades will be based on quizzes, homework, programming assignments, and tests.
Prerequisites: CS 171.
|000||MSC: W301||MWF 2:00pm - 2:50pm||Phil Hutto||max 30|
|CS 377: Database Systems||Credits: 4||− Description||− Sections|
Content: (Formerly CS 457). Prerequisite: Computer Science 171. Introduction to storage hierarchies, database
models, consistency, reliability, and security issues. Query languages and their implementations,
efficiency considerations, and compression and encoding techniques.
|000||MSC: W201||TuTh 1:00pm - 2:15pm||Shun Yan Cheung||max 30|
|CS 450: Systems Programming||Credits: 4||− Description||− Sections|
Content: (Formerly CS 351). Systems programming topics will be illustrated by use of the Unix operating system. Topics include: file i/o, the tty driver, window systems, processes, shared memory, message passing, semaphores, signals, and interrupt handlers.
Programming examples and assignments will illustrate the system interface on actual computer hardware. All assignments will be in written in C. The department's computing lab will be used in the course to allow students to get hands-on experience with operating system and hardware topics that cannot effectively be pursued on a central timesharing computer.
Particulars: Grades will be based on the programming assignments as well as the midterm and final exams. This course may not be taken S/U.
Prerequisites: CS 171 and CS 255.
|000||MSC: W301||TuTh 11:30am - 12:45pm||Ken Mandelberg||max 25|
|CS 456: Compiler Construction||Credits: 4||− Description||− Sections|
Content: An introduction to the algorithms and data structures used to construct a high level language compiler. Topics include: formal language specification, lexical analysis, parsing, and code generation.
Particulars: A substantial portion of this course will involve a student project to construct a compiler for a simplified programming language. Working knowledge of C or C++ is highly recommended.
Prerequisites: CS 253, CS 255, and CS 424, or their equivalents.
|000||MSC: W201||MW 3:00pm - 4:15pm||James Lu||max 25|
|CS 497R: Undergraduate Directed Study||Credits: 1 - 12||− Description||− Sections|