Course Highlights

Target Population: This course is intended for students and people wanting to be part of the Information Technology (IT) profession.

As an introduction into the world of computer programming here's what you'll learn by taking this course:

  1. How to design and implement a computer program
  2. Writing a program that will make different types of decisions
  3. How to solve problems using computer programs that remember things, make decisions, and perform repetitive tasks.

The course uses Alice, a 3-D programming environment designed at Carnigie Mellon University to teach programming concepts while you have fun making 3-D, animated movies. In addition you will learn JavaScript, a popular language used for scripting web pages (client-side programming).

This course uses up-to-date teaching techniques allowing you to learn by reading, listening, experimenting, and writing your own code. Each module has specific learning activities designed to help you learn in an interesting and fun manner.

This course is part of the Web Programming Certificate   and the AAS Information Systems programming degree at South Central College.

Course Details

Programming Fundamentals- COMP1130 - Spring 2009

On-line and Face-2-Face via D2L. http://southcentral.edu/students/
This course is available as an on-line course.
Optional Face2Face classes will be held each Wednesday from 9-10:50 am in C169 on the North Mankato Campus.

Credits - 4 credits

Required Text:
Beginning JavaScript 3rd Edition by Paul Wilton, Jeremy McPeak, WROX, ISBN: 978-0-470-05151-1

Suggested Reference Tool: 
XHTML Spark Reference Chart from Banes nad Noble - Keep this chart handy to help you with the XHTML and CSS code you'll be using in this course.

Suggested Text:
HTML For the World Wide Web 6th edition by Elizabeth Castro, PeachPit Press ISBN 0321430840

Required Software:
Alice
- Available at http://alice.org . This is a 3D programming environment which is free, open-source software, developed by Carnegie Mellon University.

TextPad (or similar text editor) - Available at http://textpad.com . This is a shareware program that costs $30. Student discounts are available. This text editor is used as the editor-of-choice in several computer careers courses.

FireFox browser with the FireBug add-on. Available at http://www.mozilla.com/en-US/firefox/all.html. This is an open-source browser with many excellent extensions that will make your programming much easier.

It is recommended that you have at least one flash drive to store you work and class information. (Please back up your data on a regular basis!)

For more information contact: Peter K. Johnson , Instructor
email: peter.johnson@southcentral.edu   
phone: 507 389-7337

Prerequisites

  1. Minimum typing speed of 20 wpm (35 wpm recommended)
    Find your typing speed at http://typingtest.com
    Here's a free, open-source typing programming that's fun to play: TuxType

Note: Prerequisites ensure that you are at the correct learning level for the course. Please feel free to contact the instructor to help you determine your expertise level if you have not completed the prerequisite courses.

Course Goals:

  1. Think like a programmer. Algorithmic thinking: being able to read and write a formal language.

  2. Solve problems. Learning how to communicate complex ideas and how to break down problems into logical pieces.

  3. Communicate. Speaking with precision, writing in a professional manner, and being able to listen.

Core Abilities:

Learning Objectives

Part I - Learn Programming Concepts Using Alice

Install and Use Alice
Establish the steps in designing and implementing a program.
Use the built-in Alice functions to control objects.
Set and modify the properties of an object.
Create new objects from pre-defined classes.
Explore composite objects (objects made up of other objects).

Use object-oriented concepts
Describe the difference between a class and an object
Use methods to do things.
Use parameters to describe the object and communicate with methods.

Use methods to handle data
Write methods to add potential behaviors to objects
Declare and set variables (Alice's short-term memory)
Use variables to calculate new results
Create random numbers within a certain range
Write methods to accept parameters

Make decisions and use loops
Make decisions in your program using an if/else statement
Have your program make decisions based on the contents of a variable
Describe the difference between equality operator, relational operators, and Boolean functions
Run repeating statements using while (indefinite looping)
Run repeating statements using loop with a counter (definite looping)
Nest if/else statements and loops

Use events to control the program
Explore the different types of events that Alice will process.
Describe the difference between loop processing and event processing.
Create events that respond immediately to the keyboard or mouse.
Use events to monitor conditions and change in the the values of variables

Write a list and check it twice (using arrays)
Explore data structures by building a list of things.
Explore data structures by buildin an array of things.
Describe the difference between a list and an array.
Use the For all together and For all in order statements in a program.
Change the contents of a list dynamically using built-in list methods.
Randomly choose an object in a list or array.

Part II - Client-Side Scripting Using JavaScript

Create a web page and view the file in a browser.
Create an HTML document using the essential HTML commands common to every web page.
Display the web page file using a browser without going out on the Internet.
Incorporate effective commenting in a web page.
Demonstrate the value of a header comment block for each web page.
Create a useful skeleton (or HTML template) to speed web page development.
Utilize at least three different heading tags in a web page.
Establish a working system for developing HTML code working between the HTML code editing window) and viewing the page (the browser).

Use variables to remember things for the browser.
Write a paragraph describing the three different data types.
Declare and initialize different types of variables

Use debugging techniques and tools to watch variables change and step through a program.
Write special print statements to help track contents of variables.
Use selective commenting to determine where bugs are located in code.
Use a debugging tool to step through a program and view the variables as they change.

Write functions that the browser can use to do things.
Declare a function in the head element of the web page.
Call the function from the body element of the web page.
Write a function that is expecting parameters.
Call a function passing parameters to it.
Call a function that returns information and display it on the web page.

Utilize operators and expressions.
Use the mathematical operators.
Use assignment operator "=" to store information in a variable.
Use the comparison operators to help make decisions.
Use logical operators to make a decisions.

Demonstrate the use of control statements.
Demonstrate the use of the if/else statement.
Demonstrate the difference between if/else and switch statements in a program.
Demonstrate use of the for statement in a JavaScript.
Demonstrate use of the while statement in a JavaScript.
Demonstrate the scope of variables.

Incorporate Events and Event Handling
Use the click event: onClick
Use the mouseover event: onMouseOver
Use the load event: onLoad
Use the focus event: onFocus

Demonstrate the Class/Object model used in JavaScript.
Demonstrate how to create a JavaScript object using the keyword "new".
Demonstrate the use of String objects in a program.
Demonstrate the use of Math objects in a program.
Demonstrate the use of Date/Time objects in a program.
Demonstrate the use of the Array objects in a program.
Explain the difference between a primitive, an object, a property, and a method giving examples of each.

Demonstrate creating interactive forms using JavaScript.
Create a web page that uses all the HTML form elements using a JavaScript program.
Demonstrate the onmouseup and onmousedown button events.
Demonstrate validating data from a form.
Demonstrate at least five string methods to parse data input by the user.

Demonstrate access to the web document using the DOM.
Describe what a node is.
Describe the difference between a text node and an attribute node.
Use the DOM to find elements by their ID.
Use the DOM to find elements by their tag name.
Find elements that have the same class name.
Change the style of an element using the DOM.

Utilize a JavaScript library to save time and money.
Compare at least three JavaScript libraries for ease of use, power, documentation.
Use a JavaScript library to streamline your programming.

Grading

A   97-100%
A-  90-96
B+  87-89
B    84-86
B-   80-83
C+  77-79
C    74-76
C-  70-73
D+  67-69
D    64-66
D-  60-63
F    Below 60%

The grading for this course is performance-based. You will not be graded a curve. This means that your grade is based on the work you do and not on what grade others in the class receive.

As your instructor I am the record-keeper of your points. I do not “give you a grade”; I only keep track of the scores you receive.

You will earn your grade by demonstrating your knowledge of the learning objectives listed at the bottom of each learning activity page. Complete the work according to the specifications and you will receive points accordingly.

One hint: This is a project and participation-based course. For example, most projects are worth 25 points while a quiz in the same module might only be worth only 10 points. This focuses your efforts on demonstrating your knowledge in applying your learning, not just knowing the facts or memorized information. (It also makes the things you learn in this course much more useful in the real world!)

Course Policies

Be responsible for your own actions.

Respect due dates - No late projects, papers, or quizzes will be accepted unless you have made prior arrangements in writing with the instructor and have a valid and documented reason. All late projects that are accepted will receive a 10% point penalty.

Quizzes - Make-up quizzes must be done on or before the next class session. A 10% point penalty will be taken off the total available points on any make-up quizzes.

Incomplete - An incomplete is granted due to serious extenuating circumstances (e.g. a death in the immediate family, hospitalization, etc.) near the end of the semester when the majority of the coursework has been successfully completed. An incomplete will not be granted for failing work.

Cheating - All graded projects must be your own work only. Cheating or plagiarism is a serious breach of academic ethics and could lead to sanctions including expulsion from college. When taking tests, protect your answers from others. If cheating is discovered, all participants will be penalized.

Special Needs -
If you have a disability and need accommodations to participate in the course activities, please contact your instructor as soon as possible. This information will be made available in an alternative format, such as Braille, large print, or cassette tape, upon request.

Student contributions - Students are expected to:
-- Participate in course discussions and actively participate within their team.
-- Complete all projects on or before the deadline.
-- Read all assigned material before class or chat sessions.

The Bottom Line -
I am here to help you learn and understand the material presented in this course. Please let me know if you do not understand any concepts or projects in this class. Feel free to clarify any questions you may have during class, at my office, or via email. I am also open to any suggestions you may have that would make this course more interesting and/or useful.

Peter K. Johnson