computer science at albright  

Computer Science

Professor Daniel J. Falabella, Ph.D., Chair

Major in Computer Science

The computer science curriculum is modeled on recommendations of the Association for Computing Machinery, the world's oldest and largest educational and scientific computing society. The major prepares students for apprentice level positions in system software design, development, implementation and maintenance, as well as for graduate study. The intention is to educate students in principles with a long, useful life rather than to provide vocational training that may be obsolete in less than a decade.


  • CSC 141, 142
  • CSC 213
  • CSC 305, 306
  • Two 400-level courses
  • Two elective courses from CSC 307, 372, 382, 385 and 391
  • Four related mathematics courses: MAT 103, MAT 104, MAT 132 and MAT 320 (Any prerequisites for MAT 320 are waived for computer science majors.)
  • MAT 131 should be taken as a general studies quantitative reasoning course.


Combined Major in Computer Science


• CSC 141, 142
• CSC 213
• CSC 305, 306
• One 400-level course
• One elective course from the elective courses listed above
• The related mathematics courses are recommended but are not required.




Combined Major in Information Systems

A student can only do a combined major in information systems; a student cannot major in information systems alone.

There continues to be an increasing demand for college graduates who possess an information systems (IS) degree. Projections are for the need to be further unmet over the next several years as the gap widens for supplying skilled individuals to IS jobs.  We are faced with a major shortage, not only with providing players with these needed skills, but also with providing new leadership in burgeoning areas as IS has moved into the mainstream of our economic culture.  Globalization of business markets adds the need for communication and project teamwork. To become a part of a graduate’s repertoire. Exhibiting the knowledge and skills that such an IS degree requires, graduates can expect to be in strong positions to compete for managerial and analytical positions in many fields, including software design, database management, network consulting and e-commerce business.


• IST 150
• CSC 141, 142
• CSC 305
• IST 301
• One 300-level IST course
• One 400-level IST course

A student is not allowed to combine information systems with computer science.  A student who is interested in this combination would work out a program of study within the Computer Science Department that would result in the student majoring in computer science with some information systems courses being chosen for the student’s departmental elective requirements.



Interdisciplinary Major in Game and Simulation Development

A combined offering from the Computer Science and Digital Media departments

Integrating computer science, digital media, mathematics, music and physics, this interdisciplinary major will teach you how to utilize software engineering principles to implement game and simulation technologies.

Moreover, you’ll benefit from a liberal arts approach to game and simulation development. In addition to studying programming, artificial intelligence, game engine development, and industry-standard software packages, you’ll learn from a curriculum expressly structured to strengthen creative and critical thinking, oral and written communication skills, and personal, social and global awareness. The result is an education that positions you to be competitive in a rapidly expanding field.


  • Application of software engineering skills to game and simulation development
  • Increased creative and critical thinking skills
  • Strengthened oral and written communication abilities
  • Heightened personal, social and global awareness

Possible career fields

  • Software engineering
  • Software development
  • Computer science

Program Curriculum

  • ART 265 Computer Graphics
  • CSC 141 Foundations of Computer Science I
  • CSC 305 Data Structures
  • CSC 311 Gaming Physics and Math
  • CSC 372 Graphics Programming
  • CSC 391 Mobile Programming
  • CSC 491 Client/Server (Networking for Games) or CSC 491 Artificial Intelligence Programming
  • DIG 280 Game History and Development
  • DIG 310 Introduction to Game Design
  • DIG 311 Experience Design
  • DIG 320 Simulation Design
  • DIG 380 Visual Programming
  • DIG 470 Game Production
  • MUS 231 Music and Audio Design for Games

Students interested in this major should contact Professor Dan Falabella.

Wireless Technologies


The Computer Science Department's Personal Digital Assistant (PDA) curriculum is a comprehensive program for higher education students interested in learning wireless technologies.

Today’s computing is done on handheld computers. Academically, students need to be educated in the latest technologies that reflect current business and consumer trends. Nationally, there exists a need for IT and IT-related professionals to become proficient in handheld wireless technologies, as it is one of the fastest growing fields in IT today. The possibilities of these small devices are only limited by the imagination of the user.

To this end, the department has established two wireless research labs. These labs house Sun ULTRA 10 workstations and DELL Pentium computers and are reserved for research and application development for such things as mobile devices, smartphones and Palm OS-based hand-helds.



Albright's academic computing facilities include Sun ULTRA 80 file server with Sun ULTRA 10 and ULTRA 5 workstations for student use. These computers may be accessed through the computer science lab located in the Center for Computing and Mathematics. Additional access is provided via internet connections for students living in the residence halls and off-campus. Many language processors, such as C, C++, JAVA, Visual Basic and Python are available on the system for student use.



CSC 119
Introduction to Programming

This course includes elements of programming in C, C++, JAVA or some other high-level language; practical experience solving problems; coding and executing programs. It does not fulfill the computer science concentration requirements.
Prerequisite: permission required for non-computer science majors

CSC 141
Foundations of Computer Science I

This is an introduction to problem-solving methods and algorithm development using object-oriented methodology and JAVA. The objective is to teach how to design, code, debug and document programs using techniques of good programming style. Three hours lecture and three hours laboratory per week.

CSC 142
Foundations of Computer Science II

This course continues the development of discipline in program design, style and expression. It focuses on debugging and testing; and introduces algorithmic analysis and basic aspects of recursion and simple data structures. Three hours lecture and three hours laboratory per week.
Prerequisite: Successful completion of CSC 141 or permission of the department

CSC 213
Assembly Language and Computer Organization

This course provides basic concepts of computer systems; introduces computer architecture; teaches an assembly language; and introduces the organization and structuring of the major hardware components of computers. Three hours lecture and three hours laboratory per week.
Prerequisite: CSC 141

CSC 305
Data Structures and Algorithms

Analysis of data structures and algorithms for their manipulation are studied, along with comparative efficiency of searching and sorting algorithms. The course applies analysis and design techniques to non-numeric algorithms, which act on data structures. Topics include lists, stacks, queues, recursion, searching and sorting, binary trees, and graphs.
Prerequisite: CSC 141

CSC 306
Operating Systems

Topics in this course include: structure and implementation of multiprogrammed and time-shared computer systems; sequential, interacting and sharing processes; memory management; synchronization; protection; virtual memory; monitors; kernels; and networks of operating systems modules.
Prerequisites: CSC 213 and CSC 305

CSC 307
Software Engineering

This course examines axiomatic bases of program and system design. Students gain laboratory experience designing systems software and are introduced to state-of-the-art software for designing structured systems. Three hours lecture and three hours laboratory per week.
Prerequisite: CSC 305 or permission of the department

CSC 311
Gaming Physics & Mathematics 

The objective of this course is to present applications of mathematics and physics in game and simulation programming.  The course includes utilization of matrix and vector operations, along with Newtonian principles in games and simulations.  Starting with an overview of the rendering pipeline in OpenGL, the student will study vectors, matrices, linear transformations, and geometry for 3D engines.  The course will dovetail into a more complete understanding of linear algebra topics that will be covered in the CSC372 Computer Graphics course. 
Prerequisite: CSC 305 or permission of the department

CSC 372
Computer Graphics

This course is designed to provide those principles which will enable the student to design, use and understand graphics systems. It is assumed that the student has no prior background in computer graphics, but is familiar with fundamental mathematical concepts which will be necessary for the development of this course. Students should have coding experience in either C, C++, or Java. Topics will include: line drawing algorithms, menus and panel constructions, polygons, two-dimensional transformations, windowing and clipping, three-dimensioning, and, possibly, texture mapping. Prerequisite: CSC 305

CSC 382
Computer Science Internship

Students will apply computer science theory in a business, institution or government agency under the supervision of an on-site staff member and a faculty sponsor. Reports and computer science projects are required. This course does not fulfill CSC concentration requirements. Students must obtain sponsorship and apply to the computer science faculty no later than the first day of the last month of the semester preceding the expected internship. Quality/Nonquality only.
Prerequisite: Permission of computer science faculty

CSC 385
Handheld Wireless Technology

This course introduces the underlying concepts of wireless technology and its particular use with handheld devices. Operating system principles are discussed in relation to the environment of the Palm PDA. Coding and application development are essential components of this course. Students work in the C and JAVA programming environments and learn how to interface Palm devices with Unix and Windows platforms.

CSC 391
Advanced Topics in Computer Science

A different topic is presented each semester. These topics include mobile programming, object-oriented methodologies, expert systems, artificial intelligence, advanced graphics concepts, database management, wireless research, algorithm analysis. It is designed to provide the serious student with a challenging course on a topic that might not usually be developed at the elementary or intermediate levels. The instructor provides a syllabus discussing the topics to be covered in the semester prior to the actual offering of the course. Prerequisite: Changes based on topic

CSC 491

The seminar includes assigned readings, projects and lectures in areas of special interest. These areas include: client/server (networking for games), artifical intelligence, automata theory, computability, formal languages, compiler writing, image processing and advanced UNIX concepts. Material in these courses should be current and topical. The seminars present a strong challenge to the student. May be repeated with new topic. Prerequisite: Changes based on topic

IST 100
Introduction to Computer Concepts

This course provides a personal capability for student use of information technology. Exposure to a suite of software tools, which are useful for the IS major, including Internet and electronic mail, spreadsheet processing, databases, presentation graphics, statistical software and word processing.

IST 150
Fundamentals of Information Systems

This course provides an introduction to systems and development concepts, information technology and application software. It explains how information is used in organizations and how IT enables improvement in quality, timeliness and competitive advantage.

IST 301
Analysis and Logical Design

This course provides an understanding of the system development and modification process. It enables students to evaluate and choose a system development methodology. It emphasizes the factors for effective communication and integration with users and user systems.
Prerequisite: IST 141 and IST 150

IST 391
Advanced Topics in Information Systems

A different topic is presented each semester. Currently, these topics include, but are not limited to, applications programming in Visual Basic and Python, operating systems concepts, database management principles, advanced database concepts, data communications, and network security. The course provides the IS student with a challenging, applications-based topic that can be utilized in the business sector. The instructor provides a syllabus discussing the topics to be covered in the semester prior to the actual offering of the course.
Prerequisite: IST 150 and IST 301

IST 492
Project Management and Practice
This course covers the factors necessary for successful management of system development or enhancement projects. Both technical and behavioral aspects of project management are discussed. Project management, management of the IS function and systems integration are components of the project experience.
Prerequisite: IST 301 and IST 313

IST 499
Information Systems Topics Seminar
This course discusses current topics in computing based upon readings in professional literature and individual research projects. It is designed to provide the serious student with a challenging topic, which will allow the individual to draw upon the knowledge that has been gained in previous IS courses.
Prerequisite: Senior-level standing or department permission


top of page