Contact PSU | PSU FAQs
future students current students faculty + staff Alumni + Friends
Computer Science
Maseeh College of Engineering and Computer Science
  • contact us
  • Maseeh College
Home Prospective Students
  • Prospective Students
  • Undergraduate Programs
  • Graduate Programs
  • Graduate Admissions Information
  • Biomedical Informatics
  • International Programs
  • Capstone
  • Forms
People
  • People
  • Faculty
  • Staff
  • Grad Students
  • IAB Members
Research
  • Research
  • Theses and Dissertations
  • Technical Reports
Courses Schedules
  • Schedules
  • Archived Schedules
Programs
  • Programs
  • Undergraduate Programs
  • Graduate Programs
  • Biomedical Informatics
  • International Programs
  • Capstone
  • Forms
Resources
  • Advising
  • Employment
  • Directions/Contact Info
  • Support
  • Student Groups
  • Forms
The page you are looking for has moved, please update your bookmark accordingly.

CS 410 Top: Advanced Programming


Credit Hours: 4
Course Coordinator: N/A
Course Description: This course exposes students to the depth and breadth of modern programming practice, with the goal of making students better programmers. This course is not a "package tour" of programming languages, but an in-depth programming course that teaches students how to use functional and object-oriented programming techniques effectively. Many of the same concepts and principles apply to both the object-oriented and the functional paradigms, and are indeed fundamental to the activity of programming. These include parametrization, the use of Closures, Polymorphism, Overloading (viewed as implicit parameterization), Types, Recurison in Data Structures, Inheritance, and Compositionality. Underlying all of these concepts is the recognition that the programmer's chief task is to master complexity, and to use their chosen programming language to communicate to the programmers who come after them how they have done so.
Prerequisites: Students should have some experience programming in both the functional style, in a language like LISP, ML, or Haskell, and in the Object-oriented style, in a language like C++, Java or Smalltalk.
Goals: After completion of the course, students will be able to: 1. Select approriate names for their functions and methods. 2. Decompose methods and functions into components at the same level of abstraction. 3. Analyse a problem and determine what problem elements to represent as functions or objects. 4. Deal with complex data objects as whole entities, rather than by twiddling with their elements 5. Effectively use parameterization and inheritance to promot reuse 6. Use closures to encapsulate computations 7. Build recusive data structures and recursive operations over those data structures 8. Use tools such as type systems, unit tests and random testing to guarantee the integrity of their programs 9. Compose more complex programs from simpler parts 10. Write the simplest possible program that solves a given problem while explaining to the reader how it solves that problem.
Textbooks: None
References: To be announced. Possibly the following: 1. Smalltalk by Example. 2. The Haskell School of Expression: Learning Functional Programming through Multimedia
Major Topics:
Laboratory Exercises: A programming assignment will be given each week. Students will be expected to complete the assignments and discuss and defend their code in class.

CAC Category Credits Core Advanced
Data Structures
Algorithms
Software Design
Computer Architecture
Programming Languages

Oral and Written Communications:
Social and Ethical Issues:
Theoretical Content:
Problem Analysis:
Solution Design:
  • Give to PSU
  • PSU FAQs
  • Contact PSU
  • Find People
  • Maps/Directions
  • PSU Sitemap
  • © 2010