This is an archived copy of the 2014-2015 catalog. To access the most recent version of the catalog, please visit http://coursecatalog.bucknell.edu.

Computer Science and Engineering (CSEG)

Mission Statement

The mission of the computer science department at Bucknell University is to provide degree programs and courses, consistent with the missions of the University, the College of Arts and Sciences, and the College of Engineering, that meet the full range of needs of the talented, primarily undergraduate student body. To do this, the department provides the following:

  • A Bachelor of Science in computer science and engineering degree program in the College of Engineering for students seeking a rigorous engineering education in computer software and hardware systems with an emphasis on computer software (students interested in more of a focus on hardware should consider the computer engineering program).
  • A Bachelor of Science degree program in the College of Arts and Sciences for students seeking a solid foundation in the sciences while gaining an in-depth preparation in computer science.
  • A Bachelor of Arts degree program in the College of Arts and Sciences for students seeking a broad understanding of the liberal arts while gaining an in-depth preparation in computer science.
  • A minor in computer science for students seeking basic competency in the discipline.
  • Support for the interdisciplinary computer engineering program offered by the electrical and computer engineering department.
  • Basic courses to support the general educational needs of students outside of the degree programs and minor.

The department’s philosophy has the following four principles:

  • Departmental programs are based on a common core curriculum that supports the breadth of the discipline.
  • Computer science courses focus on principles; where appropriate, specific systems are studied to illuminate the principles.
  • Courses in the core curriculum typically have a substantial faculty-directed hands-on component in the form of a regularly scheduled laboratory.
  • Departmental degree programs provide the background and experiences appropriate for entering the workplace at the entry level or a variety of graduate programs.

Program Educational Objectives

Computer Science and Engineering degree graduates will be successful professionals in the computer science or other fields, and will be recognized for qualities associated with their Bucknell education. Such qualities include critical thinking, problem solving, and effective communication. Graduates will be prepared to pursue life-long learning such as professional or advanced education.

Bachelor of Science in Computer Science and Engineering

The Bachelor of Science in computer science and engineering curriculum requires 12 course credits in computer science as specified below (computer science electives must be at the 300-level, and no more than one credit from any combination of CSCI 376 Computer Science Honors Thesis and CSCI 378 Individual Study in Computer Science may count toward the computer science elective requirement):

First Year
First SemesterCreditsSecond SemesterCredits
ENGR 1001Elective1
MATH 2011PHYS 2121
PHYS 2111MATH 2021
First-year course in English literature and composition1CSCI 2031
 4 4
Sophomore
First SemesterCreditsSecond SemesterCredits
MATH 2111CSCI 2051
CHEM 20111CSCI 2061
CSCI 2041ENGR 221, 229, or MECH 2201
Elective1MATH 222.5
 MATH 2411
 4 4.5
Junior
First SemesterCreditsSecond SemesterCredits
CSCI 2081CSCI 240.5
CSCI 3151One Computer Science Elective1
ELEC 1011Elective1
MATH 226.5CSCI 3111
Elective1ELEC 2451
 4.5 4.5
Senior
First SemesterCreditsSecond SemesterCredits
CSCI 3201CSCI 4761
CSCI 475.5One Computer Science Elective1
MATH 3431Two Electives2
Two Electives2 
 4.5 4
Total Credits: 34
1

 See department policy for use of AP credit in chemistry.

The eight elective courses shown are distributed as follows:

  • One laboratory course in the natural sciences.
  • Five approved social science and humanities courses (in addition to the first-year course in English literature and composition) are distributed as follows:
  1. a minimum of two courses in the humanities (one could be the required first-year course in English literature and composition);
  2. and a minimum of two courses in the social sciences; one must be ECON 103 Economic Principles and Problems.
  3. Two of these six courses (including the English literature and composition course) must be from the same department OR at least one course must be at the 200-level or above. A minimum of one of these five courses must satisfy the global and societal perspectives requirement. Lists of approved social science courses, humanities courses and courses that contain global and societal perspectives are published by the College of Engineering.
  • Two courses in any department or program of the University, provided the prerequisites are satisfied.

Three courses in each student’s program must fulfill the University writing requirement which includes a W1 course taken in the first year and two subsequent W2 courses.

As an alternative to the Bachelor of Science in computer science and engineering curriculum, students may wish to consider the major in computer science offered in the Bachelor of Science curriculum or in the Bachelor of Arts curriculum. See the College of Arts and Sciences Course Descriptions for Computer Science .

Courses

CSCI 185. Computing and Interpreting Computations. 1 Credit.

Offered Fall Semester Only; Lecture hours:3,Other:1
Course includes a study of the history of computation. Instruction in programming in BASIC and Excel provides tools for solving problems. Working in small groups, students write short reports describing solutions of case studies.

CSCI 1NT. Computer Science Non-traditional Study. .5 Credits.

Offered Fall, Spring, Summer; Lecture hours:Varies
Nontraditional study in computer science. Prerequisite: permission of the instructor.

CSCI 203. Introduction to Computer Science I. 1 Credit.

Offered Either Fall or Spring; Lecture hours:3,Other:2
Overview of computing that explores relationships between computer organization, various programming approaches, limits to computing, and computing in society. Students solve computational problems using Python.

CSCI 204. Introduction to Computer Science II. 1 Credit.

Offered Either Fall or Spring; Lecture hours:3,Other:2
Introduction to data structures and algorithms using an object-oriented approach. Topics include software-engineering principles, object-oriented programming, recursion, basic data structures, algorithm analysis, and team programming. Prerequisite: CSCI 203 or permission of the instructor. Corequisite: MATH 201 or equivalent.

CSCI 205. Software Engineering and Design. 1 Credit.

Offered Either Fall or Spring; Lecture hours:3
Fundamentals of software design and software engineering. Students will participate in large-scale, team-based software development project. Prerequisite: CSCI 204 or permission of the instructor.

CSCI 206. Computer Organization and Programming. 1 Credit.

Offered Spring Semester Only; Lecture hours:3,Other:3
Concepts of software and hardware. Software: instruction set design, assembly language and assemblers. Hardware: processor organization, memory hierarchy, interfacing processors and I/O devices. Prerequisite: CSCI 204 or permission of the instructor.

CSCI 208. Programming Language Design. 1 Credit.

Offered Either Fall or Spring; Lecture hours:3,Other: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. Prerequisites: CSCI 205 or permission of the instructor.

CSCI 240. Computers and Society. .5 Credits.

Offered Spring Semester Only; Lecture hours:2
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.

CSCI 278. Computer Science Individual Study. .5-1 Credits.

Offered Fall, Spring, Summer; Lecture hours:Varies,Other:Varies; Repeatable
Independent study or project in computer science. Prerequisite: one of the following: CSCI 185, CSCI 203, CSCI 204, CSCI 205, CSCI 206, CSCI 208, CSCI 240, or permission of the instructor.

CSCI 2NT. Computer Science Non-traditional Study. .5-2 Credits.

Offered Fall, Spring, Summer; Lecture hours:Varies
Nontraditional study in computer science. Prerequisite: permission of the instructor.

CSCI 305. Introduction to Database. 1 Credit.

Offered Either Fall or Spring; Lecture hours:3
Relational database design methodologies, evaluation techniques, programming, and query languages. Introduction to database systems design, performance, and object-oriented databases. Prerequisites: junior or senior standing and CSCI 206.

CSCI 311. Algorithms and Data Structures. 1 Credit.

Offered Fall Semester Only; Lecture hours:3,Other:1
Introduction to the algorithms and data structures used in implementing abstract data types including priority queues, dictionaries, and graphs. Includes complexity analysis of various implementations. Prerequisites: MATH 241 and CSCI 205 or permission of the instructor.

CSCI 315. Operating Systems Design. 1 Credit.

Offered Fall Semester Only; Lecture hours:3,Other:2
Introduction to operating system design including processor management, scheduling, memory management, resource allocation, file systems, and concurrency. Prerequisite: CSCI 206.

CSCI 320. Computer Architecture. 1 Credit.

Offered Fall Semester Only; Lecture hours:3,Other:2
Use hardware description language to describe and design digital systems. Processor design, pipelining, cache and storage systems. Instruction and thread level parallelism, speculation, branch prediction. Prerequisite: CSCI 206 or permission of the instructor.

CSCI 321. Mobile Systems Development. 1 Credit.

Offered Occasionally; Lecture hours:3
Covers the software design and development process of a mobile applications developer. The course uses smartphones and tablets as the programming platform. Prerequisite: CSCI 205.

CSCI 331. Compiler Optimization. 1 Credit.

Offered Spring Semester Only; Lecture hours:3
Project based introduction to compiler optimization for theoretical and practical issues such as run-time, memory usage, code robustness, and security. Prerequisite: CSCI 208.

CSCI 334. Graphs, their Algorithms, and Software Engineering. 1 Credit.

Offered Either Fall or Spring; Lecture hours:3
An introduction to graph theory including: degree sequence, paths, cycles, trees, directed graphs and graph polynomials. Group projects on visualization of algorithms using a modern software engineering methodology. Prerequisite: CSCI 205.

CSCI 335. Web Information Retrieval. 1 Credit.

Offered Either Fall or Spring; Lecture hours:3
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.

CSCI 341. Theory of Computation. 1 Credit.

Offered Fall Semester Only; Lecture hours:3,Other:1
Finite automata, regular sets, pushdown automata, context-free grammars. Turing machines, recursive functions and undecidability. Prerequisite: MATH 241 or MATH 280.

CSCI 349. Introduction to Data Mining. 1 Credit.

Offered Occasionally; Lecture hours:3
Data preprocessing, statistical modeling, basic machine learning algorithms for mining large datasets. Topics include association analysis, frequent pattern mining, classification, and clustering. Prerequisites: CSCI 311 and MATH 226.

CSCI 350. Introduction to Analysis of Algorithm. 1 Credit.

Offered Either Fall or Spring; Lecture hours:3
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.

CSCI 362. Computer and Network Security. 1 Credit.

Offered Spring Semester Only; Lecture hours:3
Fundamental principles of computer and network security. Topics include cryptology, privacy, secure programming, authentication, assurance, intrusion detection, and practical experience on networking Linux computers. Concurrent prerequisite: must have already taken or currently taking CSCI 315.

CSCI 363. Computer Networks. 1 Credit.

Offered Alternating Spring Semester; Lecture hours:3,Other:2
Principles and design of networked computing systems and application programs. Topics include reliable communications medium access control, routing, transport, congestion control and networked applications. Prerequisite: CSCI 315.

CSCI 367. Computer Graphics. 1 Credit.

Offered Spring Semester Only; Lecture hours:3,Other: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 or senior standing; CSCI 204 or permission of the instructor.

CSCI 376. Computer Science Honors Thesis. .5-1 Credits.

Offered Fall, Spring, Summer; Lecture hours:Varies; Repeatable
Independent work on computer science honors thesis. Prerequisite: permission of the instructor.

CSCI 378. Individual Study in Computer Science. .5-1 Credits.

Offered Fall, Spring, Summer; Lecture hours:Varies; Repeatable
Independent study in computer science. Recent areas include graph algorithms, computer security, distributed computing, graphics, programming languages, software engineering, web retrieval. Prerequisites: junior standing and permission of the instructor.

CSCI 379. Topics in Computer Science. 1 Credit.

Offered Either Fall or Spring; Lecture hours:3,Other:2; Repeatable
Current topics of interest. Course may/may not require laboratory depending upon the topic. Prerequisite: permission of the instructor.

CSCI 3NT. Computer Science Non-traditional Study. .5-4 Credits.

Offered Fall, Spring, Summer; Lecture hours:Varies,Other:3
Non-traditional study course in computer science. Prerequisite: permission of the instructor.

CSCI 475. Senior Design I. .5 Credits.

Offered Fall Semester Only; Lecture hours:Varies,Other:2; Repeatable
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.

CSCI 476. Senior Design II. 1 Credit.

Offered Spring Semester Only; Lecture hours:1.5
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. Prerequisites: CSCI 475 and permission of the instructor.

CSCI 479. Computer Science Design Project. 1 Credit.

Offered Either Fall or Spring; Lecture hours:3
Students in teams use software engineering methodology to design and implement a semester-long project. Written reports and oral presentations are required. Prerequisites: CSCI 205 and senior standing in the College of Arts and Sciences and permission of the instructor.

Faculty

Professors: Maurice F. Aburdene, Gary Haggard, Xiannong Meng

Associate Professors: Stephen M. Guattery, Daniel C. Hyde, Luiz Felipe Perrone, Lea D. Wittie, Richard J. Zaccone

Assistant Professors: Brian R. King, Alan Marchiori, Evan M. Peck, Benoit Razet

Visiting Assistant Professor: Minhaz F. Zibran