Tome Scientific Building
717-254-8312
Farhan Siddiqui's research interests are in computer networking, with a focus on mobile and ubiquitous computing, wireless networks, the Internet of Things, network protocols, and quality of service. Recently, she has also become interested in computer science education research, particularly in broadening participation in computing.
COMP 130 Introduction to Computing
An introduction to computer science as a scientific discipline. The key elements of computer programming will be introduced, using the Python programming language. This leads to techniques for solving problems and conducting scientific investigations via computation. Core topics include: programming constructs such as conditionals, loops, functions, and parameters; data structures such as arrays and dictionaries; libraries and objects; algorithmic techniques such as recursion; and software engineering techniques such as testing and debugging. Additional topics include social, legal and ethical issues raised by computing and computing for the greater good.Students may not take this course for credit if they have already received credit for COMP 132 or COMP 232.
COMP 356 Programming Lang Structure
An examination of the major programming language paradigms. The course also explores the basic properties and special facilities of languages representing each paradigm. Topics include data types, scope rules, block structures, procedure calls and parameter types, and storage allocation considerations.
Prerequisite: 232. Offered every fall.
COMP 256 Computing Abstractions
A broad examination of the role and evolution of the abstraction hierarchies that enable the construction of complex computing systems. Examples spanning the field of computer science will be used, including: machine organization and architecture, data representation, language translation, operating systems, concurrency, networks, and web application architectures. Prerequisite: 132. Three hours of classroom and two hours of laboratory a week. Offered every spring.
COMP 352 Computer Networks
An introduction to the fundamental concepts in computer networking with a focus on the Internet’s architecture and protocols. Topics include layered architectures, client-server computing, routing, switching, reliable and unreliable protocols, data encoding and compression, error detection and correction, flow control, congestion control, and network performance metrics. Additional topics may include wireless networks and security
Prerequisite: 232 and 256.