Page 187 - University Bulletin
P. 187
CS285 Discrete Mathematics for Computing
Credits: 3(3,1,0) Prerequisites: CS101
The course introduces the students to mathematical logic, fundamental discrete structures, such
as: sets, functions, relations and graphs. Mathematical reasoning and various counting techniques
are also covered in the course. Throughout the course students apply the techniques they learn
to simplified practical problems. This course prepares the students for higher level computing
courses where these concepts are of fundamental importance
CS311 Design and Analysis of Algorithms
Credits: 3(3,1,0) Prerequisites: CS285 and CS210
Introduction to fundamental techniques for designing and analyzing algorithms, including
asymptotic analysis; divide-and-conquer algorithms and recurrences; greedy algorithms; data
structures; dynamic programming; graph algorithms; and randomized algorithms. Finally, the
course will introduce the different classes of complexity theory, which explain the intractability of
some problems and a classification of problems by their complexity.
CS316 Introduction to AI and Data Science
Credits: 3(3,1,0) Prerequisites: STAT101 and CS210
The Introduction to AI and Data Science Course merges key concepts from Artificial Intelligence
(AI) and Data Science (DS), designed for students eager to learn concepts related to these fields.
The curriculum includes AI problem-solving strategies, data manipulation, analysis, and basic
machine learning, as well as Python programming using essential libraries. Students will learn to
apply AI and DS techniques to basic real-world scenarios through lectures and hands-on group
projects, enhancing their problem-solving and analytical skills. This course aims to provide
students with the tools needed for academic and professional success in AI and DS.
CS320 Programming Languages: Concepts and Paradigms
Credits: 3(3,1,0) Prerequisites: CS210
This course provides Undergraduate Students with an Overview of the Theoretical Foundations of
Programming Languages. Topics Covered in This Course Include: Introduction to Different
Language Paradigms (functional, Logic and Object-oriented), the History of Programming
Languages and Language Design Principles, Syntax Specification (using Bnf, Ebnf, and Syntax
Diagrams), Central Semantic Issues of Programming Languages (declaration, Allocation,
Evaluation). Major Languages Covered Include C, C++, Smalltalk, Java, Ada, Ml, Haskell, Scheme,
and Prolog; Many Other Languages Are Discussed More Briefly.
CS330 Introduction to Operating Systems
Credits: 3(3,1,0) Prerequisites: CS175 and CS210 (Software Engineering: CS175 only)
This course explores the evolution, services, and structures of operating systems. It covers the
basic concepts of operating system design and implementation and management of system
resources such as Central Processing Unit (CPU), Input/output (I/O) devices, memory, and
software. Examples given from modern operating systems such as Unix and Windows-driven
operating systems are closely examined.
CS331 Data Communications and Computer Networks
Credits: 3(3,1,0) Prerequisites: CS175 and CS210
This course introduces the basic concepts in data communication and computer networks. Topics
covered include the nature of data communication, characteristics of computer networks, the ISO-
OSI network protocol layers, topologies and models, error detection and correction codes, and
network performance considerations.
175 PSU UNDERGRADUATE BULLETIN

