Undergraduate classes, Fall 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 FundamentalsCredits: 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.
Texts: TBA
Assessments: TBA
Prerequisites: None
000Psych 290TuTh 11:30am - 12:45pmVaidy Sunderammax 100
CS 155: Computer Science with Business ApplicationsCredits: 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.
Texts: TBA
Assessments: TBA
Prerequisites: None
000MSC: W303MWF 2:00pm - 2:50pmPhil Huttomax 25
LABMSC: E308ATh 4:00pm - 5:00pmPhil Huttomax 25
CS 170: Introduction to Computer Science ICredits: 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.
Texts: TBA
Assessments: TBA
Prerequisites: None
000MSC: W303TuTh 11:30am - 12:45pmEugene Agichteinmax 32
001MSC: W301MWF 12:50pm - 1:40pmSebastien Sivamax 32
Lab1MSC: E308ATu 4:00pm - 4:50pmEugene Agichteinmax 28
Lab2MSC: E308AW 4:00pm - 4:50pmSebastien Sivamax 30
CS 171: Introduction to Computer Science IICredits: 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.
Texts: TBA
Assessments: TBA
Prerequisites: CS170
000MSC: W306TuTh 11:30am - 12:45pmMichelangelo Grignimax 25
CS 190: Freshman Seminar: RobotsCredits: 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 programming or experience in programming will be quite useful.
Texts: mostly electronic resources
Assessments: readings and labs
Prerequisites: None
000MSC: E308ATuTh 1:00pm - 2:15pmOjas Parekhmax 16
CS 224: Mathematical Foundations of Computer ScienceCredits: 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.
Texts: TBA
Assessments: TBA
Prerequisites: Math 112 (or 112s or 112Z). Corequisite: CS 170.
000MSC: E408MWF 12:50pm - 1:40pmJames Gardnermax 15
CS 255: Computer Organization and Architecture ICredits: 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.
Texts: TBA
Assessments: TBA
Prerequisites: CS 171.
000MSC: E406MWF 11:45am - 12:35pmPhil Huttomax 16
CS 377: Database SystemsCredits: 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.
Texts: TBA
Assessments: TBA
Prerequisites: CS 171
000MSC: W303TuTh 10:00am - 11:15amShun Yan Cheungmax 25
CS 450: Systems ProgrammingCredits: 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.
Texts: TBA
Assessments: TBA
Prerequisites: CS 171 and CS 255.
000MSC: W301TuTh 11:30am - 12:45pmKen Mandelbergmax 25
CS 456: Compiler ConstructionCredits: 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.
Texts: TBA
Assessments: TBA
Prerequisites: CS 253, CS 255, and CS 424, or their equivalents.
000MSC: W301MW 3:00pm - 4:15pmJames Lumax 25
CS 485: Topics in Computer Science: Fund. of Genome BioinformaticsCredits: 4− Description− Sections
Content: (Same as BIOL 470 003). As modern biomedical research has become more and more data intensive, computational and statistical approaches have become crucially important. This course will cover fundamental methods used in the analysis of genomic sequence data. We will examine core algorithmic ideas relevant to sequence analysis: greedy approaches, dynamic programming, pattern matching, and graphical models. Much of our focus will be on the application of these ideas to problem areas such as genome assembly and alignment, phylogenetic and evolutionary modeling, and identification of functional elements in genomes (genes, regulatory motifs, et cetera).
Texts: Biological Sequence Analysis: Probabilistic Models of Proteins and Nucleic Acids (Durbin, Eddy, et al).
Assessments: This course will be accessible both to Biology majors with no computational background and Computer Science majors with no biology background. A substantial portion of this course will involve student projects applying the techniques learned to real biological problems, which students will work on in interdisciplinary teams combining both Biologists and Computer Scientists.
Prerequisites: CS 171.
000MSC: W302TuTh 2:30pm - 3:45pmJames Taylormax 10
CS 485: Topics in Computer Science: Software EngineeringCredits: 4− Description− Sections
Content: Software engineering as a discipline has evolved in conjunction with computer hardware and programming tools. Despite its infancy, SW Engineering has some fundamental processes that are recognized as essential to the production of quality software that meets customer requirements. Both the ACM (as "SE2004") and the IEEE (as "Software Engineering Body of Knowledge" or "SWEBOK") have defined a set of skills that practitioners of software development should possess. These include Requirements, Design, Construction, Testing, Quality Control, and Configuration Management. This course seeks to teach principles of software engineering through hands-on experience in a series of projects. In addition, the student will be introduced to applied concepts in software engineering through the blogs and writings of some of today's most noted practitioners.
Texts: Much of the material used in the course is available on the web. Software Engineering by Ivan Marsic (free pdf download available here: http://www.caip.rutgers.edu/~marsic/books/SE/book-SE_marsic.pdf) will serve as the primary text.
Assessments: 25% exams (10% mid-term, 15% final); 30% projects; 25% homework; 20% presentations. There will be 3 projects (at 10% each) assigned during the semester. The goal is to help the student become familiar with the phases of software development through multiple iterations. The student will also become more adept at rapid prototyping and the trade-offs needed to meet deadlines while conforming to requirements specifications. Students will provide a brief (10-minute) presentation on each project (5% each for the first 2 projects and 10% for the last one). There will be 5 readings assigned during the semester. Students will provide a report on each paper, at a value of 5% each of the course grade, consisting of (a)content summary; (b) arguments in favor of the paper's thesis; (c) arguments against the paper's thesis; (d) the student's opinion -- pro or con -- with supporting rationale. There is no absolute right or wrong opinion, but the student's views must include rational supporting discussion.
Prerequisites: Senior standing, Graduate student, or permission from the instructor. The student should be familiar with at least one language used in web software development.
001MSC: W306TuTh 4:00pm - 5:15pmJoan Smithmax 25
CS 497R: Undergraduate Directed StudyCredits: 1 - 4− Description− Sections
Content: Credit, one to four hours, as arranged with the department.
Texts: TBA
Assessments: TBA
Prerequisites: TBA
00PMSCFaculty (TBA)