Computer Science & 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 & Sciences, and the College of Engineering, which 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 & 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 & 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 & 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 & 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 & engineering degree graduates will be successful professionals in 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 lifelong learning, such as professional or advanced education.
Of all courses in the student's degree program (required and elective courses): Bachelor of Science in Computer Science & Engineering
The Bachelor of Science in Computer Science & Engineering requirements are:
First Year | |||
---|---|---|---|
First Semester | Credits | Second Semester | Credits |
ENGR 099 | 0 | CSCI 2031 | 1 |
ENGR 100 | 1 | MATH 2022 | 1 |
MATH 2012 | 1 | PHYS 212 | 1 |
PHYS 211 | 1 | Elective | 1 |
Foundation Seminar (W1) | 1 | ||
4 | 4 | ||
Sophomore | |||
First Semester | Credits | Second Semester | Credits |
CSCI 201 | .5 | CSCI 202 | .5 |
CSCI 204 | 1 | CSCI 205 | 1 |
MATH 2273 | 1 | MATH 2414 | 1 |
Elective | 1 | Elective | 1 |
Elective | 1 | Elective | 1 |
4.5 | 4.5 | ||
Junior | |||
First Semester | Credits | Second Semester | Credits |
CSCI 306 | 1 | CSCI 307 | .5 |
CSCI 345 | 1 | CSCI 308 | 1 |
ECEG 341 | 1 | CSCI 311 | 1 |
Elective | 1 | Math/Sci Elective5 | 1 |
Elective | 1 | ||
4 | 4.5 | ||
Senior | |||
First Semester | Credits | Second Semester | Credits |
CSCI 475 | .5 | CSCI 476 | 1 |
CSCI 315 | 1 | Elective | 1 |
Elective | 1 | Elective | 1 |
Elective | 1 | Elective | 1 |
Math/Sci Elective5 | 1 | ||
4.5 | 4 | ||
Total Credits: 34 |
- 1
Requirement can be fulfilled with transfer credit for AP Computer Science A. Alternatively, students with programming experience may request placement into CSCI 204 and later substitute this requirement for a CSCI elective.
- 2
All students in computer science are encouraged to pursue a mathematics minor. Students who have met the requirements for MATH 201 Calculus I and/or MATH 202 Calculus II may want to consider a mathematics minor or a mathematics double major.
- 3
The MATH 227 requirement may be waived for students who have credit for a substantially similar course, such as AP Statistics or another statistics course required for a second major.
- 4
Any 1.5-credit or 2.0-credit combination of MATH 280 and MATH 240 or any 1.0-credit Combinatorics & Graph Theory course may replace MATH 241 (note that some MATH courses have MATH 211 as a prerequisite). Students seeking additional depth in mathematics are encouraged to pursue this route as MATH 211 and MATH 280 are prerequisites to several upper-level mathematics courses.
- 5
Any course with NSMC designation outside the Department of Computer Science.
Elective courses in a student's program must include:
- One Social Sciences course (SLSC);
- One Arts & Humanities course (ARHC);
- Three other courses including any combination of the following: foundation seminar, residential college courses, and other SLSC or ARHC courses.
Of all courses in the student's degree program:
-
Three courses in each student's program must fulfill the University writing requirement that includes a W1 course taken in the first semester, foundation seminar (FOUN or RESC), and two subsequent W2 courses. (CSCI 476 will count toward one of the required W2 courses.)
-
One course must fulfill the college global perspectives requirement (GBCC).
Graduates of the program are expected to demonstrate the following learning outcomes, which reflect ABET engineering and computing accreditation criteria:
Engineering:
- Identify, formulate and solve complex engineering problems by applying principles of engineering, science and mathematics.
- Apply engineering design to produce solutions that meet specified needs with consideration of public health, safety and welfare, as well as global, cultural, social, environmental and economic factors.
- Communicate effectively with a range of audiences.
- Recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental and societal contexts.
- Function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks and meet objectives.
- Develop and conduct appropriate experimentation, analyze and interpret data and use engineering judgment to draw conclusions.
- Acquire and apply new knowledge as needed using appropriate learning strategies.
Computing:
- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
Courses
CSCI 103. Introduction to Computer Programming. 1 Credit.
Offered Summer Session Only; Lecture hours:6
Introduction to programming using the Python programming language. Students will learn to collect, process and visualize data. Students will make a simple predictive model and discuss the benefits and limitations of using predictive algorithms. Prerequisite: permission of the instructor. Open to BCCSP students only.
CSCI 187. Creative Computing and Society: Computing, Creativity, and the Social Good. 1 Credit.
Offered Both Fall and Spring; Lecture hours:3,Other:2
Introduces computing in the context of creativity and examining problems of social good. Students will create visual artifacts that will empower them to investigate, and draw novel insights from, data that may be social, historical, or textual in nature. Supplemented with discussions on computing's impact on society.
CSCI 1NT. Computer Science Non-traditional Study. .25-2 Credits.
Offered Fall, Spring, Summer; Lecture hours:Varies
Non-traditional study in computer science. Prerequisite: permission of the instructor.
CSCI 201. Computer Science Seminar. .5 Credits.
Offered Fall Semester Only; Lecture hours:1.5
A variety of Computer Science related topics presented by faculty, alumni, student speakers, and other relevant guests. Presentations and discussions on the frontier of the discipline, professional development, ethics and societal issues, and other topics relevant to the profession. Prerequisite: open to sophomores. Others by permission of the instructor.
CSCI 202. Research Methods. .5 Credits.
Offered Spring Semester Only; Lecture hours:1.5
An introduction to research methodology in Computer Science, involving reading scientific literature, developing presentation skills, and learning to use various software packages. Prerequisites: open to first years and sophomores. Others by permission of the instructor.
CSCI 203. Introduction to Computer Science. 1 Credit.
Offered Either Fall or Spring; Lecture hours:3,Lab:2
Students will learn the python programming language in order to explore the capabilities, limits, and social impact of computing. Application areas include image manipulation, data manipulation and visualization, introductions to predictive models, and ethical programming practices. Not open to students who have taken ANOP 203 or ECEG 230.
CSCI 204. Data Structures & Algorithms. 1 Credit.
Offered Either Fall or Spring; Lecture hours:3,Lab: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 ECEG 230 or permission of the instructor.
CSCI 205. Software Engineering and Design. 1 Credit.
Offered Either Fall or Spring; Lecture hours:3,Lab:2
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 240. Computers and Society. .5 Credits.
Offered Spring Semester Only; Lecture hours:2
The place of computers in society. In-depth study of societal, ethical, and legal issues related to computing. Historical and futurists' views of computing and technology. Public perceptions of computing and the role of computer scientists as professionals. 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: permission of the instructor.
CSCI 279. Topics in Computer Science. .5-1 Credits.
Offered Either Fall or Spring; Lecture hours:Varies
Current topics of interest. Prerequisite: permission of the instructor.
CSCI 2NT. Computer Science Non-traditional Study. .25-2 Credits.
Offered Fall, Spring, Summer; Lecture hours:Varies
Non-traditional study in computer science. Prerequisite: permission of the instructor.
CSCI 305. Introduction to Database. 1 Credit.
Offered Occasionally; Lecture hours:3
Relational database design methodologies, evaluation techniques, programming, and query languages. Introduction to database systems design, performance, and object-oriented databases. Prerequisites: CSCI 204 and junior or senior standing.
CSCI 306. Computer Systems. 1 Credit.
Offered Fall Semester Only; Lecture hours:3,Lab:2
Fundamental concepts showcasing the integration of hardware and software. Topics include data representation, processor, memory, I/O, Unix system programming in C and assembly, introduction to operating systems, and development tools. Not open to students who have taken CSCI 206.
CSCI 307. Computer Networks and Security. .5 Credits.
Offered Spring Semester Only; Lecture hours:1.5
Introduction to network programming including datagram and virtual circuit protocols. Introduction to topics in computer security such as authentication, integrity, access control, applied cryptography, and secure programming.
CSCI 308. Programming Language Design. 1 Credit.
Offered Spring Semester Only; Lecture hours:3,Lab: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 205 or permission of the instructor. Not open to students who have taken CSCI 208.
CSCI 311. Algorithm Design & Analysis. 1 Credit.
Offered Both Fall and Spring; Lecture hours:3,Recitation:1
An introduction to standard patterns and techniques in algorithm design and tools for analyzing algorithmic performance. Students learn to evaluate algorithms, design new algorithmic solutions, and communicate the correctness and usefulness of their solutions.
CSCI 315. Operating Systems Design. 1 Credit.
Offered Fall Semester Only; Lecture hours:3,Lab:2
Introduction to operating system design including processor management, scheduling, memory management, resource allocation, file systems and concurrency. Prerequisite: CSCI 306.
CSCI 320. Computer Architecture. 1 Credit.
Offered Fall Semester Only; Lecture hours:3
Explores two important topics in computer architecture today: memory hierarchy and parallelism in all its forms. Students will use a hardware description language to implement concepts including pipelining, cache and branch prediction. Prerequisite: CSCI 206 or CSCI 306 or ECEG 247 or permission of the instructor. Crosslisted as ECEG 443 and ECEG 643.
CSCI 331. Compiler Optimization. 1 Credit.
Offered Occasionally; 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 308.
CSCI 332. The Internet of Things. 1 Credit.
Offered Either Fall or Spring; Lecture hours:3
A broad investigation into the design of internet-connected physical objects and the infrastructure that supports them. This hands-on course covers topics including embedded systems, wireless communication, internet protocols, cloud computing and security. Students will develop their own IoT system in the course. Prerequisite: CSCI 306 or ECEG 247. Crosslisted as ECEG 432 and ECEG 632.
CSCI 340. Mobile Computing. 1 Credit.
Offered Either Fall or Spring; Lecture hours:4
Mobile computing ecosystem including apps, devices, wireless networks, and back-end systems. Includes at least one major project; the specific course content will vary based on projects, student interest, and current technology trends. This course typically includes a considerable amount of software development. Prerequisite: CSCI 205 or permission of instructor. Crosslisted as ECEG 430 and ECEG 630.
CSCI 341. Theory of Computation. 1 Credit.
Offered Fall Semester Only; Lecture hours:3,Recitation:1
Finite automata, regular sets, pushdown automata, context-free grammars. Turing machines, recursive functions and undecidability. Prerequisite: MATH 241 or MATH 280.
CSCI 345. Computers and Society. 1 Credit.
Offered Fall Semester Only; Lecture hours:3
Analysis of the impact of computing on society through the application of deontological and consequence-based ethical theories and professional codes of ethics. Students will learn to analyze the impacts of computing on the fundamental values of society so as to be able to create systems that don't oppose social progress.
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 216 or MATH 226 or MATH 227).
CSCI 351. Distributed Computing. 1 Credit.
Offered Either Fall or Spring; Lecture hours:3
An introduction to concurrency, communication, and fault-tolerance. Students learn fundamental models of distributed computing and use them to study classic problems and their solutions or impossibility. Examples include consensus, mutual exclusion, distributed data structures and more. We focus primarily on theoretical results, also applying them in practical implementations.
CSCI 358. Human Computer Interaction. 1 Credit.
Offered Occasionally; Lecture hours:3
In this interdisciplinary course, we will study research at the intersection of people and computing. Through a variety of prototypes that we'll build (3D user interfaces, visual design, data communication, intelligent user interfaces, etc), we will deliberately practice processes that result in useful, usable and maybe even inspirational computer interfaces.
CSCI 359. Fairness, Privacy, & Transparency When Learning From Data. 1 Credit.
Offered Either Fall or Spring; Lecture hours:3
The course enables students to audit and analyze data-centric systems and processes that are used to make decisions about people’s lives and understand the bias, fairness, privacy, and transparency implications of these systems. We will read, discuss, and implement ideas from recently published research articles in this upcoming area.
CSCI 363. Computer Networks. 1 Credit.
Offered Occasionally; Lecture hours:3
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 306 or ECEG 247.
CSCI 365. Image Processing & Analysis. 1 Credit.
Offered Either Fall or Spring; Lecture hours:3,Other:1
Imaging is everywhere! In this course, we will cover broadly the acquisition, processing, and analysis of digital images, covering topics ranging from the human visual system, to image and video compression algorithms, to pattern recognition and machine learning within the context of automatic image understanding.
CSCI 375. Teaching Assistant in CSCI. .5-1 Credits.
Offered Either Fall or Spring; Lecture hours:Varies,Other:Varies; Repeatable
Teaching assistant to support mastery in a core computer science course. Written learning objectives and assessment policies will be developed with the course instructor. Prerequisites: by permission only.
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 information retrieval. Prerequisites: junior standing and permission of the instructor.
CSCI 379. Topics in Computer Science. .25-1 Credits.
Offered Either Fall or Spring; Lecture hours:Varies; Repeatable
Current topics of interest.
CSCI 3NT. Computer Science Non-traditional Study. .25-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:1,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. Not open to students who have taken ENGR 452.
CSCI 476. Senior Design II. 1 Credit.
Offered Spring Semester Only; Lecture hours:2,Other:2
Students undertake several cycles of delivery, each including a design document, product implementation, testing, and feedback. Students produce technical and user’s manuals for the final version. Class presentations of designs and implementations. Includes 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 Fall Semester Only; 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: Jessen Havill, Xiannong Meng, Luiz Felipe Perrone
Associate Professors: Susan Baish, Brian R. King, Alan Marchiori (Chair), Darakhshan Mir, Joshua V. Stough, Lea D. Wittie (Associate Chair)
Assistant Professors: Alexander Fuchsberger, Samuel C. Gutekunst, Rajesh Kumar, Sing Chun Lee, Anne Spencer Ross, Edward Talmage
Laboratory Director: Lily Romano