Courses in Engineering

CSC 115. Programming for Applications.   Topics include algorithms, data types, graphical user interfaces, objects, event handlers, and database programming. This course does not prepare students for more advanced computer science courses, but it does satisfy the core requirement in computer programming for Digital Communications majors. We will use Visual Basic. 3 credits.

CSC 131. Introduction to Programming (with Java).   Foundational aspects of computer programming. Algorithms and data; control structures; the design of small programs. Class and object basics. Uses the Java programming language. 3 credits.

CSC 132. Computer Organization and Programming.   Introduces the design and organization of the major components of a modern computer: CPUs, memory, storage, and other related hardware. Continues the study of programming started in CSC 131 via programming projects related to the study of computer architecture. Prerequisite: CSC 131 or permission. 3 credits.

CSC 216. Concepts of Networking and Database.   The course covers two inexorably interwined subjects. They are brought together in one course because almost all database systems are now designed with network use in mind, and designs of almost all network applications are (or should be) centered on one of more databases. The course has three distinct segments: 1)networking, 2)databases, and 3)network database applications.

CSC 231. Program Design I: C++ and Data Structures.   Begins the study of large-scale software systems. Introduces the C++ programming language and fundamental data structures like vectors, lists, and trees. MAS 162 and CSC 132, or permission. 3 credits.

CSC 232. Program Design II: OOP and Patterns.   A continuation of CSC 231. Applications of data structures, object-oriented programming, design patterns, and other techniques to the design and implementation of large software systems. Prerequisite: CSC 231. 3 credits.

CSC 331. Software Design I.   A survey of modern techniques for designing complex software systems. Investigates both programming techniques and processes. Includes substantial programming projects that continue in CSC 332. Prerequisite: CSC 282. 3 credits.

CSC 332. Software Design II.   A continuation of CSC 331. Must be taken in the semester immediately following CSC 331. Prerequisite: CSC 331. 3 credits.

CSC 441. Operating Systems.   Theory and practice of modern operating systems. Topics include memory management, file systems, scheduling, concurrency, distributed processes, and security. Prerequisite: CSC 282 and MAS 251. 3 credits.

CSC 442. Networks.   Network design and implementation. Topics include layered network design, types of hardware, low-level protocols, packest, frames, routing, security, and so on. Prerequisite: CSC 282 and MAS 251. 3 credits.

CSC 448. Databases.   The theory, structure and implementation, and application of modern database systems. Prerequisite: CSC 282. 3 credits.

CSC 451. Theory-Programming Languages.   Examines the design of computer programming languages and the tools that process them. Includes an examination of several current languages, and an introduction to the design and implementation of compilers. Prerequisite: CSC 282 and MAS 251. 3 credits.

CSC 452. Artificial Intelligence.   An introduction to the field of AI. Topics include expert systems, goal-seeking algorithms, neural networks, genetic algorithms, computer vision, language recognition. Prerequisite: CSC 282 and MAS 251. 3 credits.

CSC 481. Advanced Topics in Computer Science I.   Topics to be selected from current areas of interest and research in computer science. Prerequisites: CSC 282; MAS 251. 3 credits.

CSC 482. Advanced Topics in Computer Science II.   Topics to be selected from current areas of interest and research in computer science. Prerequisites: CSC 282, MAS 251. 3 credits.