|
Current Projects
College Experiences for Talented High School students
Summer 2007 Research Experiences for Undergraduates Undergraduate Research Postgraduation Planning |
Computer Science Courses100-Level Courses200-Level Courses 300-Level Courses 400-Level Courses CS 115. Computers and Computation.Cr. 4. A general survey of central topics in computer science with emphasis on the scientific aspects of computation. This approach stresses analysis and inquiry into the limits of computation and properties of new computational models. Topics such as algorithms and their analysis, human-machine interfaces, artificial intelligence, software engineering, modelling of data, and serial and parallel computation will be introduced to demonstrate how computing relates to other disciplines. Experiments in a laboratory environment will be part of the course. This course may be used to fulfill the Natural Science and Mathematics component of the General Education Requirements. Prerequisite: MATH 110 or placement higher than MATH 110 on the math placement examination.CS 128. Introduction to Programming.Cr. 1-3. An introduction to computer problem-solving techniques using a high level language. Prerequisite: MATH 110 or placement higher than MATH 110 on the math placement exam.CS 157. Algorithms and Programming.3+2, Cr. 4. A first course in algorithm development and problem solving and an introduction to the use of a computer system with special emphasis on object-orientation. The student designs algorithms for the solution of elementary problems, and writes, documents, and debugs programs for the implementation of those algorithms. Techniques of software design and algorithm analysis are introduced. Students may not receive credit for both CS 157 and ECE 155. Prerequisite: MATH 110 or placement higher than MATH 110 on the math placement examination.CS 158. Algorithms and Abstract Data Types.3+2, Cr. 4. A continuation of CS 157, with emphasis on developing more skills in complex program development and data structures. Topics include stacks, queues and linked lists. Students design and write intermediate sized programs. Prerequisites: CS 157 or ECE 155.CS 210. E-Commerce and E-Business Technology.Cr. 3. (Also offered as IDS 310.) This course offers an overview of potentials, policies, politics, possibilities, and pitfalls of electronic commerce (conducting business on-line) and electronic business (using information technology to manage the supply-chain), including hardware and software applications required for both. Prerequisite: junior standing and consent of the chair.CS 246. Computer Architecture and Programming.2+2, Cr. 3. Fundamentals of the structure of digital computers and an introduction to assembly language programming. Topics include machine instructions, data representation, addressing techniques and program segmentation and linkage. Corequisite: CS 158.CS 257. Data Structures and Programming Languages.Cr. 4. A more detailed study of data structure and programming paradigms used in a variety of languages. Topics include trees, graphs, hash tables, object oriented programming, non-imperative languages, syntax and basic characteristics of grammars, parsing and run-time considerations. Prerequisites: MATH 122 or 131 or 151, CS 158 or ECE 252.CS 285. Practicum in Computer Science.Cr. 0.5-3. Intensive professional experience and/or technical training in a computing related field. A written report is required. Prerequisites: CS 257, CS 246 and consent of department chair. S/U grade.CS 290. Topics in Computer Programming.Cr. 1-2. The content of this course may change from semester to semester, but is ordinarily a study of a computer programming language not covered in other Computer Science courses. Possible languages to be studied include Ada, C, Lisp, and Prolog. This course may be repeated for credit, provided that topics are different. Prerequisite: specific requirements depend on course content; usually equivalent to CS 157.CS 320. (formerly CS 220) Digital Logic Design.2.5+0.5, Cr. 3. (Also offered as ECE 221). An introduction to digital logic concepts, including the analysis and design of combinational and sequential digital circuits.CS 325. Simulation and Modeling.Cr. 3. An introduction to computer simulation of mathematical models of discrete and continuous phenomena. Some standard simulations are examined, others implemented using a simulation language. Prerequisites: a course in calculus, a course in probability and statistics, and a course in programming.CS 332. Databases and Artificial Intelligence.Cr. 4. An introduction to information models and systems, including relational and object-oriented database management systems, data modeling, knowledge representation, problem spaces, models of reasoning, non-symbolic artificial intelligence, and other topics in intelligent systems. Prerequisite: CS 257.CS 347. Operating Systems and Networking.Cr. 4. Introduction to the concepts of operating system and networks. Topics include procedures, processes, resource management, interrupt-driven processing, protocols for communicating messages, such as Transport Control Protocol and User Datagram Protocol, error detection, methods for routing messages, application protocols, such as HTTP and SMTP. Prerequisites: CS 246 and 257.CS 358. Software Design and Development.3+2, Cr. 4. The specification, design, implementation, documentation, testing and management of software systems. Intensive work on a group project, directed by the instructor, to design and develop a usable software system. Students will also learn fundamentals of graphics and graphical user interfaces. Prerequisite: CS 257.CS 365. Interactive Computer Graphics.Cr. 3. A study of the fundamentals of interactive computer graphics systems and software. Emphasis is placed on graphics primitives, geometric transformation and projection, methods of creating visual realism, and selected graphics algorithms. Prerequisites: CS 158 (CS 257 is recommended) and MATH 122, 131, or 151.CS 370. Numerical Methods.Cr. 3. (Also offered as MATH 370). The analysis and implementation of basic numerical techniques: matrix methods for the solution of systems of equations, interpolating polynomials, finite differences, numerical differentiation and integration, numerical solution of differential equations, zeros of nonlinear equations and error analysis. Students are expected to solve problems using a digital computer. Prerequisites: CS 157 or the equivalent and one of the following: MATH 350; MATH 234 and 253; MATH 265.CS 372. Computability and Computational Complexity.Cr. 4. Emphasis on the limits to the power of computation and a systematic analysis of the algorithms that harness it. Computability topics include the Chomsky hierarchy, several automata and language models, and demonstrations of uncomputable problems. Complexity topics include various design strategies such as greedy, divide and conquer and backtracking, and fundamental computing algorithms, such as searching, sorting, graphs, trees, pattern matching and computational geometry, with a short foray into distributed algorithms. Prerequisites: CS 257 and MATH 269.CS 375. Theory of Computation.Cr. 3. Basic principles of computer science in formal languages, automata, nondeterminism, regular expressions, context free grammars, Turing machines, the halting problem, and unsolvability. Prerequisites: CS 235 and MATH 267. Last offered Fall 2003.CS 381. Cooperative Education in Computer Science.Cr. 0.5 - 3. The application of computer science concepts in a professional setting. Grade based on employer's evaluation and student's written and oral reports. Prerequisites: CS 257; approval of Cooperative Education Adviser and the Chair of the Department. S/U grade. May be repeated for additional credit.CS 445. Principles of Systems Programming.Cr. 3. Problems and techniques associated with programming in systems with shared resources, e.g., operating systems and data base management systems. Topics include concurrent processes, communication and deadlock, queuing and scheduling, resource protection and access. Prerequisites: CS 347 and a course in probability and statistics. Offered upon sufficient demand.CS 455. Theory of Programming Languages.Cr. 3. Concepts used in the translation of programming languages and the design of computers. Topics include grammars, scanners and symbol table manipulation, parsers and pushdown automata and techniques of automatic code generation and improvement. Applications may include general purpose languages as well as special purpose languages such as data base definition and inquiry languages. Prerequisites: CS 246 and 257 and MATH 269. Offered upon sufficient demand.CS 458. Senior Project.Cr. 3. The student defines a suitable computer application, develops the necessary software using appropriate techniques and prepares documentation for the use and support of the completed system. An oral report is required. Prerequisites: CS 358, senior standing and a proposal approved by the Chair of the Department.CS 491. Advanced Topics in Computer Science.Cr. 1-3. An advanced course for computer science majors. The topic studied may change from year to year. Possible topics: data communications and networks, supercomputers, parallel processing or computer architecture. Prerequisites: consent of the Chair of the Department; consent of the instructor.. Specific course requirements depend on topic. Offered upon sufficient demand.CS 492. Research in Computer Science.Cr.1- 3. The student undertakes a research problem in Computer Science under the direction of a faculty member. Written and oral reports are required. Prerequisites: CS 257 and 358 and a proposal approved by the Chair of the Department. S/U grade.CS 493. Seminar in Professional Practices.Cr. 2. Student and faculty presentations in the context of professionalism and ethical responsibilities in software development and human-computer interaction. Topics include laws, risks, and liabilities, codes of ethics, privacy, international and gender related issues, philosophical frameworks, and economic implications. Students will learn and develop oral presentation and research skills. Prerequisites: CS 246 and 257.CS 495. Independent Study in Computer Science.Cr. 1-3. The student studies an advanced topic in Computer Science under the direction of a faculty member. Written work is required. Prerequisite: consent of the Chair of the Department.CS 497. Honors Work in Computer Science.Cr. 3. See Honors Work, page 54.CS 498. Honors Candidacy in Computer Science.Cr. 3. See Honors Work, page 54. |