Zebra0.com

MCCMSC100: Fundamentals of Programming, Course Content
for CRN 31278: Spring, 2024, Professor Joy

CMSC100: Fundamentals of Programming, Course Content
for CRN 31278: Spring, 2024, Professor Joy

Topics this week: read, study, learn each of the items below:

Introduction to CMSC100Lesson 1: Introduction to CMSC100

Goal: Learn all of the skills necessary to succeed in this course.
Objectives: In order to do this you will:
  • Read the syllabus;
  • Introduce yourself to your classmates;
  • Join a study group;
  • Watch the welcome video;
  • Find the professors name and contact information in the syllabus;
  • When are the professors office hours?
  • Find how many quizzes and projects there will be in this class;
  • Know what percent of the grade each quiz, discussion, or project is;
  • Find what day everything is due;
  • Find 2 places to get help;
  • Read each section of Blackboard and find one SECRET to SUCCESS;
  • Learn about grading and class policies.

Introduction to Alice 3Lesson 2: Introduction to Alice 3

Goals:
  • Download and install the latest version of Alice and run it;
  • Learn to navigate the user interface;
  • Learn about some of the 3D models in Alice.
Objectives: In order to do this you will:
  • Download and install Alice (or find a computer lab with Alice.);
  • Select a template, such as grass, moon, sea floor, etc.;
  • Toggle between the scene editor and the code view windows;
  • In the code view window, locate each of the panels;
  • Name 3 classes in the Alice gallery;
  • Be able to search for an object in the gallery.

Your First program: Hello WorldLesson 3: Your First program: Hello World

Goals:
  • Write your first program in Alice3;
  • Be able to create a scene by selecting a template;
  • Add a character and other objects to the scene;
  • Create and edit code;
  • Understand how to add comments and why they are important;
  • Be able to debug simple errors.
Objectives: In order to do this you will:
  • Write your first Alice program;
  • You will learn to add code;
  • Create and modify a scene in the design view;
  • Select and add 3D characters to the scene;
  • Select, add and modify people;
  • Use the arrows to move, rotate, and resize the characters and other objects;
  • Move the camera and change the angle;
  • Add comments with your name and description of the program;
  • Create code to have the character say "Hello World";
  • Run the program, test, debug, and save it.

The Software-LifecycleLesson 4: The Software-Lifecycle

Goals:
  • Learn how to use some tools for planning;
  • Designing and managing larger software projects;
  • Break the program into small manageable parts.
Objectives: In order to do this you will:
  • Algorithms: Analyze the problem and determine the best way to achieve the goals;
  • Pseudocode: Decompose the problem using step wise refinement;
  • Storyboards: Create a graphical layout for the design;
  • Flowcharts: Analyze the problem using standard symbols to illustrate the sequence of actions;
  • Truth tables: Create a table of all possible combinations and the desired outcomes.

BlackboardDue in Blackboard by Midnight, Wednesday, January 24, 2024

Initial post in discussions: 1. Introductions, 2. Reaction to Alice, 3. Hello World, 4. Storyboard
First attempt at quizzes: 1. Syllabus, 2. Introduction to Alice, 3. The Software-Lifecycle

BlackboardDue in Blackboard by Midnight, Sunday, January 28, 2024

Final Project Design: Step 1: Proposal, Step 2: Algorithm, Storyboard, and Sound
Assignments: In Blackboard: Check major and submit Academic Integrity statement, Program 1: Hello World
Last chance to take quizzes: 1. Syllabus, 2. Introduction to Alice, 3. The Software-Lifecycle
Last chance to respond in discussions: 1. Introductions, 2. Reaction to Alice, 3. Hello World, 4. Storyboard
Topics this week: read, study, learn each of the items below:

Start, Save, Reopen and modify your programLesson 5: Start, Save, Reopen and modify your program

Goals:
  • Learn ways to start a new project;
  • Modify, save, save as, and reopen your project;
  • Set preferences.
Objectives: In order to do this you will:
  • Instead of selecting a template choose other tabs: starters, my projects, recent, file;
  • Use the arrows to move, rotate. and resize the characters and other objects;
  • Move the camera and change the angle;
  • Edit an existing project;
  • Add parameters to commands;
  • Set the preferences to see Java style code;

Understanding the Alice Virtual WorldLesson 6: Understanding the Alice Virtual World

Goals:
  • Understand how objects view the world;
  • Learn how to move objects in the Alice virtual world;
  • Be able to move, turn and roll the objects that make up your scene;
  • Gain a deeper understanding of objects in the Alice virtual world.
Objectives: In order to do this you will:
  • Understand the basic principles of object motion and rotation;
  • How Objects see the Virtual World: Video demonstrates move, turn and roll;
  • Understand that each object has a sense of direction;
  • Be able to add code to move, turn and roll;
  • Use a sequence of actions to create a dance routine, or other complex action.

Setting up the Alice Virtual WorldLesson 7: Setting up the Alice Virtual World

Goals:
  • Learn how to change the properties and position of the objects;
  • Learn how to change the properties and position of the camera;
  • Learn to fine tune your ability to position objects in the Alice virtual world;
Objectives: In order to do this you will:
  • Use the handles to turn, roll, and move objects;
  • View the scene from starting view, layout, top, side, or front;
  • Use different camera views to position objects;
  • Change the ground, opacity; add fog, light from above and below;
  • Use one shots to move, turn and roll in design view;
  • Be able to assign vehicles to objects.

Posing Objects in Alice3Lesson 8: Posing Objects in Alice3

Goals:
  • >Pose the 3D characters by positioning subparts such as arms,legs;
  • Create poses using both design tools and code;
  • Positioned subparts using turn and roll;
  • Understand that you cannot move a subpart as that would separate it from its body;
  • Position subparts at design time in the scene editor;
  • Position subparts during execution using code;
  • Understand that each subpart has its own orientation and sense of direction;
  • Realize that the sense of direction for subparts may not be the same as its parent object;
  • Understand that some poses and action may use several subparts.
Objectives: In order to do this you will:
  • Use tools in design mode to move, turn and resize the 3D actors in the design mode;
  • Write code to move, turn and roll the characters;
  • Use tools in design mode to turn and roll the subparts such as arms and legs;
  • Implement OneShots to turn and roll the subparts such as arms and legs.
  • ;
  • Be able to create a pose using several subparts.

BlackboardDue in Blackboard by Midnight, Wednesday, January 31, 2024

Initial post in discussions: 5. Motivation, 6. Poses
First attempt at quizzes: 4. The Alice Virtual World, 5. Poses in Alice3

BlackboardDue in Blackboard by Midnight, Sunday, February 4, 2024

Final Project Design: Step 3: Locations
Assignments: Program 2: A Comic
Last chance to take quizzes: 4. The Alice Virtual World, 5. Poses in Alice3
Last chance to respond in discussions: 5. Motivation, 6. Poses
Topics this week: read, study, learn each of the items below:

Scene Procedures in Alice 3Lesson 9: Scene Procedures in Alice 3

Goal: Learn how to create Scene Procedures and use them for top down design.
Objectives: In order to do this you will:
  • Be able to create a Scene Procedure;
  • Be able to call a Scene Procedure;
  • Use Scene Procedures for Top Down Design;
  • Disable a call to a Scene Procedure to facilitate testing and debugging.

Variables in Alice 3Lesson 10: Variables in Alice 3

Goals:
  • Learn about variables and how to use them;
  • Declare variables;
  • Assign them values.
Objectives: In order to do this you will:
  • Name the different types in Alice;
  • Name variables and objects correctly;
  • Declare a variable and give it an initial value;
  • Use the assign statement to give a variable a new value;
  • Select and use functions to ask the user a question and store the result;
  • Experiment with the tools available in Alice3;
  • Use constants appropriately.

User Input in Alice3Lesson 11: User Input in Alice3

Goals:
  • Learn how to get input from the user;
  • Store those values in variables;
  • Ask the user for information such as his name and age;
  • Use that information later in the program.
Objectives: In order to do this you will:
  • Select and use functions to ask the user a question and store the result;
  • Use functions to get information from the user;
  • Use stored values in the code;
  • Use input from users in the code.

BlackboardDue in Blackboard by Midnight, Wednesday, February 7, 2024

Initial post in discussion: 7. Variables
First attempt at quizzes: 6. Scene Procedures, 7. Variables and User Input

BlackboardDue in Blackboard by Midnight, Sunday, February 11, 2024

Final Project Design: Step 4: Scene Procedures
Assignments: Program 3: Talk to the User
Last chance to take quizzes: 6. Scene Procedures, 7. Variables and User Input
Last chance to respond in discussion: 7. Variables
Topics this week: read, study, learn each of the items below:

A Little MathLesson 12: A Little Math

Goals:
  • Learn to do simple math using arithmetic operators;
  • Learn to use a counter;
  • Learn to find a total.
Objectives: In order to do this you will:
  • Use assign and math to assign a value;
  • Create code to do math using just one step;
  • Find a total, percent and other values.

Boolean Expressions: true or falseLesson 13: Boolean Expressions: true or false

Goals:
  • Use Boolean expressions to make comparisons;
  • Use the if/else control structure to create different paths or branches in the code;
  • Perform tasks such as asking the user a question and tell if the answer is right;
  • Gain a deeper understanding of objects in the Alice virtual world.
Objectives: In order to do this you will:
  • Write code to input answers of various types from the user;
  • Apply if/else control structures to tell the user if his answer is right or wrong;
  • Implement a counter to display the score at the end;
  • Use the function getBooleanFromUser to get true or false answers;
  • Write code to compare values and take appropriate actions;
  • Be able to use AND and OR in Boolean expressions;
  • Use the function getHeight to find the taller of two animals.

Creating Animation in Alice3Lesson 14: Creating Animation in Alice3

Goals:
  • Learn use the control structure doInOrder;
  • Learn use the control structure doTogether;
  • Learn use the control structure count (a loop);
  • Learn use the control structure while (a loop);
  • Learn how to combine these control structures to create 3D animation;
  • Learn how to create and edit markers;
  • Use markers in the animation code;
  • Use subparts in the animation code.
Objectives: In order to do this you will:
  • Utilize control structures in your code;
  • Determine which control structures to use for more natural movements;
  • Implement loop control structures count and while to wave, clap, shake the head, and stomp the feet!;
  • Use markers to move an object to a set position.;
  • Edit object markers: add, delete, re-rename, and change the color;
  • Create an animation that uses several subparts, such as walking.;

BlackboardDue in Blackboard by Midnight, Wednesday, February 14, 2024

Initial post in discussions: 8. Boolean Operations, 9. Animation
First attempt at quizzes: 8. Arithmetic and Boolean Expressions, 9. Animation

BlackboardDue in Blackboard by Midnight, Sunday, February 18, 2024

Final Project Design: Step 5: Interactions
Assignments: Program 4: Math, Program 5: A Quiz, Program 6: Animation
Last chance to take quizzes: 8. Arithmetic and Boolean Expressions, 9. Animation
Last chance to respond in discussions: 8. Boolean Operations, 9. Animation
Topics this week: read, study, learn each of the items below:

Class Procedures in Alice3: Reusable CodeLesson 15: Class Procedures in Alice3: Reusable Code

Goals:
  • Learn to create class procedures;
  • Create procedures for an object to perform actions such as walk or jump;
  • Understand the advantages of creating procedures;
  • Use the procedure many times and for many objects;
  • Decompose a program into functional subprograms;
  • Use parameters to give the procedure information;
  • Use parameters so that the same procedure can vary in speed, repetions, or distance;
  • Use parameters to pass an object, such as a marker, or another object.
Objectives: In order to do this you will:
  • Write code to animate a character, then convert that code to a procedure;
  • Utilize parameters for flexibility;
  • Decompose a program into subprograms;
  • Make sure that myFirstMethod is mostly calls to procedures and functions.

Calculations and FunctionsLesson 16: Calculations and Functions

Goals:
  • Know how to use builtin functions such as getHeight to retrieve information about an object;
  • Learn to do calculations using functions;
  • Learn to use counters using functions;
  • Learn to find totals using functions;
  • Learn to create functions.
Objectives: In order to do this you will:
  • Build arithmetic expressions using functions;
  • Use variables, functions, and assign statements;
  • Create code to do calculations using multiple variables and steps;
  • Write a function to do calculations;
  • Create a function to get distance to move next to something;
  • Use a loop to add numbers uses a running total: total=total + number.

Random NumbersLesson 17: Random Numbers

Goals:
  • Learn to use random numbers;
  • Understand how random numbers make it possible to create games;
  • Understand how random numbers make the movements of the characters more natural.
Objectives: In order to do this you will:
  • Write code to generate random numbers in 2 different ways;
  • Use random values in your animation procedures so that characters move more naturally;
  • Use loops to create a number guessing game with hints 'too high' and 'too low';

BlackboardDue in Blackboard by Midnight, Wednesday, February 21, 2024

Initial post in discussion: 10. Calculations and Random Numbers
First attempt at quizzes: 10. Class Procedures, 11. Functions and random numbers

BlackboardDue in Blackboard by Midnight, Sunday, February 25, 2024

Final Project Design: Step 6: Biped Procedures
Assignments: Program 7: An Exercise Class, Program 8: Jumping
Last chance to take quizzes: 10. Class Procedures, 11. Functions and random numbers
Last chance to respond in discussion: 10. Calculations and Random Numbers
Topics this week: read, study, learn each of the items below:

Arrays: Working with lists of objectsLesson 18: Arrays: Working with lists of objects

Goals:
  • Learn to declare and use arrays (lists);
  • Understand how arrays can act on groups of objects together;
  • Learn to create array of different types, including objects;
  • Use the control structures that operate on arrays;
  • Define parallel arrays and name ways to use them;
  • Be able to use arrays of segments.
Objectives: In order to do this you will:
  • Declare a variable to be an array;
  • Create code to assign initial values to an array;
  • Use subscripts or index to access the elements of the array;
  • Utilize loop control structures to process all of the elements of the array;
  • Create and process arrays of different data types, including arrays of objects;
  • Understand the purpose of parallel arrays and ways to use them;
  • Experiment with arrays of segments.

Advanced Techniques: The finishing touchesLesson 19: Advanced Techniques: The finishing touches

Goals:
  • Be able to create more interesting movies;
  • Use vehicles;
  • Download and use sound in your movie;
  • Use billboards to display pictures;
  • Add camera position to scene changes;
  • Change the ground and visibility of objects;
  • Use panels and text;
  • Use asSeenBy to change the scene view;
  • Add transitions to scene changes;
  • Export and import procedures and functions;
  • Add properties to a class
Objectives: In order to do this you will:
  • Implement markers to move to specific locations.;
  • Utilize vehicles to move two objects together;
  • Add sound to an Alice project.;
  • Create billboards and camera positions to change scenes;
  • Use text objects to create headlines;
  • Write code that uses the argument asSeenBy to show movement through the eyes of another object;
  • Create scene procedures and change the ground and visibility of objects;
  • Adding transitions to scene changes;
  • Use camera markers to switch from scene on the left and one on the right;
  • Add properties to a class.

BlackboardDue in Blackboard by Midnight, Wednesday, February 28, 2024

Initial post in discussions: 11. Arrays, 12. Advanced Techniques

BlackboardDue in Blackboard by Midnight, Sunday, March 3, 2024

Final Project Design: Step 7: Arrays
Assignments: Program 9: Arrays, Program 10: Advanced Techniques
Last chance to respond in discussions: 11. Arrays, 12. Advanced Techniques
Topics this week: read, study, learn each of the items below:

Events: Responding to the Mouse and KeyboardLesson 20: Events: Responding to the Mouse and Keyboard

Goals:
  • Learn to make your program more interactive using events;
  • Understand that an event is something that happens;
  • Add a listener to code what happens when an event occurs;
  • Allow the user to control the action using the keyboard and the mouse;
  • Detect collisions and write the code for what to do when a collision occurs;
  • Use a timer;
  • Create background sounds;
  • Create background animation.
Objectives: In order to do this you will:
  • Create code to implement event listeners for various events;
  • Write code to determine which key on the keyboard was pressed;
  • Write code to determine which object was clicked;
  • Use control structures to specify which actions to take when an event occurs;
  • Use addSceneActivationListener to create a continuous action while other actions take place;
  • Play background music using initializeEventListeners;
  • Write code the uses default model manipulation in event listeners to let the user drag and drop objects at run time;
  • Use collision detection to make something happen when objects collide;
  • Write code for the keypress event; for example typing a letter to make a selection;
  • Add object mover for an object so that the user can move it with the arrow keys;
  • Use the timer event to make an action occur at random intervals.

Final ProjectsLesson 21: Final Projects

Goal: In this unit, you will present your final project to the class
In order to do this you will:
  • Add the final touches
  • create an MP4 movie
  • Present the movie in discussions
  • Submit the a3p file in assignments

BlackboardDue in Blackboard by Midnight, Wednesday, March 6, 2024

Initial post in discussion: Present your final project in Blackboard
First attempt at quiz: 12. Arrays, Advanced Techniques, and Events

BlackboardDue in Blackboard by Midnight, Sunday, March 10, 2024

Final Project Design: Step 8: Events and Alternate Ending
Assignments: Program 11: Events (optional), Final Project
Last chance to take quiz: 12. Arrays, Advanced Techniques, and Events
Last chance to respond in discussion: Present your final project in Blackboard