myBucknell | Giving to Bucknell | Bookstore
Quick Links:

Computer Science

(CSCI)

Computer Science (CSCI)

Professors: Maurice F. Aburdene, Gary Haggard, Xiannong Meng (Chair)

Associate Professors: Stephen M. Guattery, Daniel C. Hyde, Jerud J. Mead, Patricia A.Wenner, Richard J. Zaccone

Assistant Professors:  Luiz Felipe Perrone, Joshua Steinhurst, Lea Wittie

Computer science programs stress the foundation of the experiemental discipline. In each course, students solve programming problems whose solutions draw on capabilities learned in earlier courses. This problem solving guides the student toward a more complete understanding of the programming process. The programs give all students particular expertise in the systems area of computer science.

Students are prepared for lifelong learning in this rapidly evolving discipline. Typically, graduates take entry-level positions in hardware and software systems application and design or continue their education at the graduate level.

A computer science major may be pursued under any one of four degree programs: bachelor of arts, bachelor of science, bachelor of science in computer engineering, and bachelor of science in computer science and engineering (see College of Engineering). The bachelor of science in computer science curriculum is accredited by the Computer Science Accreditation Commission of the Computer Sciences Accreditation Board. Students interested in the computer science major should consult the department concerning the choice of degree program.

The bachelor of arts major curriculum provides the student with an opportunity to combine the liberal arts tradition with strong preparation in computer science. It requires eight course credits in computer science: CSCI 203, CSCI 204, CSCI 206, CSCI 208, CSCI 311, CSCI 315, and either CSCI 479 and one 300-level elective or two 300-level electives. In addtiion the following mathematics courses are required: MATH 201, MATH 202, MATH 211, MATH 226, and MATH 241. (MATH 226 is a half course.)

The bachelor of science major curriculum requires 11.5 course credits in computer science: CSCI 203, CSCI 204, CSCI 206 CSCI 208, CSCI 240, CSCI 311, CSCI 315, CSCI 341, and CSCI 479 and three computer science electives that may be at the 300 level or above. In addition, the following courses are rquired: MATH 201, MATH 202, MATH 211, MATH 226, and MATH 241; ENGR 139; PHYS 211, PHYS 212, and PHYS 235; one additional science course.

The recommended sequence for the bachelor of science major is as follows

First Year

First Semester: CSCI 203; MATH 201
Second Semester: CSCI 204; MATH 202

Sophomore Year

First Semester:  CSCI 206; MATH 211; PHYS 211
Second Semester: CSCI 208; MATH 241; PHYS 212

Junior Year

First Semester: CSCI 311; ENGR 139; MATH 226*
Second Semester: CSCI 240*; CSCI 315; PHYS 235; One elective in  computer science

Senior Year

First Semester: CSCI 341; CSCI 479
Second Semester: Two electives in computer science

* Half course, all others are one-credit courses

The minor in computer science requires five computer science courses: CSCI 203, CSCI 204, CSCI 206, and two additional courses chosen from CSCI 208 and the 300-level computer science courses.

180. Introduction to a Microcomputer Environment (I and II; 3, 1)
Topics include the history of computers, hardware, software, file organization, data communications, systems analysis and design, programming, and societal issues. Labs use an operating system, a wordprocessor, a spreadsheet, and a programming language. Not open to computer science majors or students who have taken CSCI 203, CSCI 204, or who are enrolled in the College of Engineering.

203. Introduction to Computer Science I (I or II; 3, 2)
Fundamentals of problem solving in Java. Introduces program structures, object-oriented programming, algorithm design, computer organization, programming language syntax, semantics, and translation.

204. Introduction to Computer Science II (I or II; 3, 2)
Introduction to data structures and algorithms using an object-oriented approach. Topics include software-engineering principles, object-oriented programming, recursion, basic data structure, algorithm analysis, and team programming. Prerequisite: CSCI 203 or permission of the instructor. Corequisite: MATH 201 or equivalent.

206. Computer Organization and Programming (I or II; 3, 2)
Concepts of software and hardware. Software: instruction set design, assembly language and assemblers. Hardware: processor datapath and control, pipelined execution units, memory hierarchy, interfacing processors and I/O devices. Prerequisite: CSCI 204 or permission of the instructor.

208. Programming Language Design (I or II; 3, 2)
Study of modern programming language paradigms (procedural, functional, logic, object-oriented). Introduction to the design and implementation of programming languages including syntax, semantics, data types and structures, control structures, run-time environments. Prerequisite: CSCI 206.

240. Computers and Society (II; 2, 0) Half to full course.
The place of the computer in modern society. An in-depth study of the societal, ethical, and legal issues of computing. Historical as well as futurists’ views of computing and technology. Public perception of computers and computer scientists and how that influences the role of the computer scientist as a professional. Course work includes oral and written presentations. Prerequisite: junior or senior standing.

278. Computer Science Individual Study (I, II, R; or S; 0, 6) Half to full course.
Independent study or project in computer science. Prerequisites: CSCI 180 or 203 and permission of the instructor.

305. Introduction to Database (I or II; 3, 0)
Relational database design methodologies, evaluation techniques, programming, and query languages. Introduction to database systems design, performance, and object-oriented databases. Prerequisites: CSCI 206 and junior standing.

311. Data Structures (I, 3, 1)
Introduction to the abstract data types: list, stack, queue, tree, set, and graph. Includes complexity analysis of the various implementations of an abstract data type. Prerequisite: MATH 241. Corequisite: CSCI 208 or permission of the instructor.

315. Operating Systems Design (II; 3, 2)
Introduction to operating system design including processor management, scheduling, memory management, resource allocation, file systems, and concurrency. Prerequisite: CSCI 208.

320. Computer Architecture (I; 3, 2)
Use hardware description language to describe and design systems. Processor design, pipelining, cache and storage systems. Instruction and thread level parallelism, speculation, branch prediction. Prerequisite: CSCI 206 or permission of the instructor.

335. Web Information Retrieval (I or II; 3, 0)
Introduction to information retrieval. Topics include retrieval models, evaluations, text properties, indexing, query operations, user interfaces, and web search. Prerequisites: CSCI 206 and junior standing.

341. Theory of Computation I (I; 3, 0)
Finite automata, regular sets, pushdown automata, context-free grammars. Turing machines, recursive functions and undecidability. Prerequisite: MATH 280 or 241.

350. Introduction to Analysis of Algorithms (I or II; 3, 0)
Selected topics in algorithm design, analysis, and application. Possible topics include network flows, graphs, string processing, randomized algorithms, parallel algorithms, optimization, and NP-completeness. Prerequisite: CSCI 311.

355. Distributed Computing (I or II; 3, 2)
Design of distributed systems, including Internet-based. Topics include interprocessor communication; naming, services, and objects; concurrency control and security. Corequisite: CSCI 315 or permission of the instructor.

362. Computer and Network Security (II; 3, 0)
Fundamental principles of computer and network security. Topics include cryptology, privacy, secure programming, authentication, assurance, intrusion detection, and practical experience on networked Linux computers. Corequisite: CSCI 315.

363. Computer Networks (AII; 3, 2)
Topics in computer networks and distributed computing systems. Computer communications, hardware, and software, distributed operating systems, and application programs. Study of existing networks. Prerequisite: CSCI 315 or permission of the instructor.

367. Computer Graphics (II; 3, 2)
Topics in graphics hardware and software. Input devices and output displays and graphics processor architecture. Application packages, general purpose graphics packages, and algorithms. Use of color and software for two- and three-dimensional graphics. Prerequisites: junior status; CSCI 204 or permission of the instructor.

376. Computer Science Honors Thesis (I and II and S; R) Half to full course.
Independent work on computer science honors thesis. Prerequisite: permission of the instructor.

378. Individual Study in Comptuer Science (I or II or S; R) Half to full course.
Independent study in computer science. Recent areas include graph algorithms, computer security, distributed computing, graphics, programming languages, software engineering, web retrieval. Prerequisite: permission of the instructor.

379. Topics in Computer Science (I or II; R) Half to full course.
Current topics of interest. Course may or may not require laboratory depending upon the topic. Prerequisite: permission of the instructor.

475. Senior Design I (I; 2, 0) Half course.
A recognized software engineering methodology will be used with all phases of a senior design project. Written work will include a technical report about the project, a feasibility report, and a requirements specification document. Prerequisite: permission of the instructor.

476. Senior Design II (II; 1.5, 0)
Students will undertake several cycles of delivery, including (for each cycle), a design document, an implementation of the product, testing, and feedback. Students will produce a technical manual and a user’s manual for the final version. Class presentations of the design versions and implementations will be given to obtain feedback. There will be a public presentation of the final product and design process. Prerequisite: CSCI 475.

479. Capstone Computer Science Design (I or II; 3,0)
Students in teams use software engineering methodology to design and implement a semester-long project. Written reports and presentations are required. Prerequisite: senior standing in the College of Arts and Sciences. Corequisite or prerequisite: CSCI 311.

 

BUCKNELL UNIVERSITY • 701 MOORE AVENUE • LEWISBURG • PA 17837 • (570) 577-2000
© Bucknell University All Rights Reserved