τεχνη1



Computer Science 112

[ Approaches | Goals | Topics | Labs ]

Project: Applying a color scheme to an image

Learning Components:

  1. Problem-based learning: problem motivates the topics
  2. Visual Feedback: graphical output motivates the students and helps them quickly ascertain correctness
  3. Constructivism: students learn concrete foundations and logic and build progressively upward
  4. Intentional Learning: students use resources to find solutions.

Expected Outcomes

The student who completes this course:
Will understand the basic problem-solving process of implementing a computer program to solve a problem.
Will understand the basic machine model.
Will be able to implement simple computer programs in a computer programming language.

Class Outline

  1. Introduction to Computer Science and CS1
    1. Class Policies
    2. History of Computers Handout
    3. Computer Hardware Handout
    4. Computer Science Definition
      • Related Terms
        • Programming: providing a computer with a set of instructions
        • Software: the name for programs created for a computer. A sequence of steps that can be interpreted by the hardware of the computer.
      • Definition: The creation of the steps necessary for a computer to solve a problem.
      • Definition: "the science of problem solving in which the solutions happen to involve a computer" (The Art and Science of C by Eric S. Roberts. Addison-Wesley, 1995).

    5. Giving Instructions Exercise and discussion of how a CPU works
    6. Levels of languages
      1. Lowest level: absolute machine code (binary code)
      2. Assembly language
        • Symbolic representation of machine code
        • Translated into binary code with an assembly
      3. High-level language/Compiled Language
        • One high-level command translates to many assembly commands
        • A compiler converts the high-level source code into machine language for the appropriate computer
      4. High-level language/Interpreted Language
    7. Compiler Concepts
    8. Levels of software
      • Application Programs
      • Utility Programs
      • Operating Systems
    9. Unix Operating System Handout
    10. Eclipse Handout
  2. Problem-based learning for each phase:
    1. Introduction of class semester goal: create an image transfer program
    2. PBL for Project 1 (Teaching Guide)
    3. PBL for Project 2 (Teaching Guide)
    4. PBL for Project 3 (Teaching Guide)
    5. PBL for Project 4 (Teaching Guide)

Labs

  • Lab 1: Introduction to Eclipse
  • Lab 2: Counting digits, words and lines.
  • Lab 3: Debugging exercise
  • Lab 4: while, functions, luminance formula
  • Lab 5: Bubble sort (Passing arrays as parameters, swapping)
  • Lab 6: Writing string functions
  • Lab 7: Reading in PPM files && Memory allocation
  • Lab 8: Writing more string functions
  • Lab 9: Sunset and MaxBlue
  • Lab 10: Command-line arguments - arithmetic
  • Lab 11: Structures
  • Lab 12: Image manipulation Edge Detection

1. The objective of the Texnh project is to develop a new and revitalized approach to undergraduate education in computing.

The approach is based upon the use of problem based learning with semester-long problems taken from the domain of computer generated visual media.

Materials herein include course materials,  publications, and student images resulting from the project.

The Texnh project was originally funded by the National Science Foundation under grant TEXNH: A New Approach to the B.A.

Degree in Computer Science, award number 0305318. It is presently supported by the National Science Foundation under grant CPATH

EAE: TEXNH - Evaluation, Adoption and Extension, award number 0722313. The investigators gratefully acknowledge this support without which the project not have been possible.