CSCI202: Computer Programming II

Updated 2019-05-07

Syllabus     XNA on YouTube     Academic Calendar     Final Exam Schedule

Final Test will be Tuesday, 5/7/2019 at 12:30 p.m.

Things students already know how to do:

Final Test

·         Final

 

 

 

 

 

 

 

 

Day #27. Thursday, 5/03/2019

·         A particle class. Particles

·         Platformer

·         Review/practice test. Shell program. Solution.

Day #26. Tuesday, 4/30/2019: More classes

·         A card class and a card deck class..

Homework due Thursday, 5/02/2019 at 12:30

·         Frogger. Frogger sprites. Frogger pre-written classes. Frogger class shell

Day #25. Thursday, 4/25/2019: The Frogger class

·         A simple Jar class: 2 private variables, 2 constructors, 2 property-procedure pairs, IsEmpty(), IsFull(), Fill(x), Empty(x), ToString(), Equals(x), overflow/underflow exceptions, a static member (ShowUnits).

·         The Frogger class.

Homework due Thursday, 5/02/2019 at 12:30

·         Frogger. Frogger sprites. Frogger pre-written classes. Frogger class shell

Day #24. Tuesday, 4/23/2019: More Classes and Objects

·         Workday for Frogger. Today's code (with a few extras).

Homework due Thursday, 5/02/2019 at 12:30

·         Frogger. Frogger sprites. Frogger pre-written classes. Frogger class shell.

Day #23. Thursday, 4/18/2019: More Classes and Objects

·         A Fraction class. default constructor, parameterized constructors, copy constructor, ToString, ToDouble, times, plus, reduce, reduced, six relational methods (Equals, NE, GT, LT, GE, LE). Throwing and catching exceptions in C# (divide by 0).

Homework due at the end of the semester

·         Frogger. Frogger sprites. Frogger classes. Frogger class shell.

Day #22. Tuesday, 4/16/2019: Test #2

·         Test shell

Day #21. Thursday, 4/11/2019: Classes

·         Introduction to classes. Notes

·         A Student class

·         Test topics. Practice test instructions. Practice test: Template. Solution. Data file.

·         Video solutions: Problem 1, problem 2, problem 3, problem 4.

Day #20. Tuesday, 4/09/2019: Array algorithms, text input

·         Array algorithms (continued) Notes.

·         Sorting. Derive bubble sort algorithm.

·         Getting text input from the user in Monogame. Notes.

·         Searching. Derive linear search algorithm.

Homework #10. Due Thursday, 4/11/2019

·         Life. 2D arrays, file input. Data Files. Video. Video. Video of Life2.txt. Video of Life480x480.txt.

Day #19. Thursday, 4/04/2019

·         Discuss Life

·         Files, arrays, and functions: Notes.

Homework #10. Due Thursday, 4/11/2019

·         Life. 2D arrays, file input. Data Files. Video. Video. Video of Life2.txt. Video of Life480x480.txt.

Day #18. Tuesday, 4/02/2019: Files

·         Discuss Tic-Tac-Toe: functions, parameters (took about half of period in 2018)

·         Files: Notes

Homework #9. Due Thursday, 4/04/2019

·         Tic-Tac-Toe. 2D arrays, mouse input

Day #17. Thursday, 3/28/2019: Mouse input, Minesweeper (in class)

·         Mouse Input. Notes.

·         Minesweeper. Notes. Template.

Homework #9. Due Thursday, 4/04/2019

·         Tic-Tac-Toe. 2D arrays, mouse input

Day #16. Tuesday, 3/26/2019: 2D arrays

·         Two-dimensional array algorithms involve nested loops. Today we will look at problems whose solution requires nested loops. Notes.

·         2D arrays. Notes

·         Debugging review. Notes.

·         Functions. Notes.

·         More functions. Notes.

·         Multi-way branching made cleaner. Notes.

·         Stopping prematurely: the return statement: Notes, the break statement: Notes

Day #15. Thursday, 3/21/2019: Parameters

·         Functions review. Notes

·         Reference parameters. Notes. Sample pong program.

Homework due Tuesday, 3/26/2019

·         Continue working on Space Invaders. Image files. Hand in a zipped copy of your project in the drop box.

Day #14. Tuesday, 3/19/2019

·         Crossing the screen slowly (like space invaders): Notes

·         Invader bullets. Notes.

·         Extra time? Work on Invaders. USE FUNCTIONS!

Complete program #8 due Tuesday, 3/26/2019.

·         Space Invaders. Image files. Hand in a zipped copy of your project in the drop box.

Day #13. Thursday, 3/14/2019: Sprite sheets

·         Free looping sound files. They are relatively small and can be used for background sound.

·         Sprite sheet animation: Notes. Files.

Program #7, part 1 of Space Invaders due Tuesday, 3/19/2019.

·         Part 1 of the Space Invaders program.

Complete program #8 due Tuesday, 3/26/2019.

·         Program: Space Invaders. Image files. Hand in a zipped copy of your project in the drop box.

Tuesday, 2/12/2019. NO CLASS. Water main break.

Day #12: Thursday, 2/28/2019. Test #1

·         Zipped test project

Day #11. Tuesday, 2/26/2019

·         Test #1 is Thursday.

·         Brickout: placing bricks.

·         Functions: Finish sample problems. Practice.

·         Topics to know for the test.

Homework due Tuesday, 3/12/2019

·         Brickout!

Day #10. Thursday, 2/21/2019

·         Test #1: Thursday, 2/28.

·         Shooting multiple bullets.

·         Subprograms. Notes. Practice.

Homework due Tuesday, 3/12/2019

·         Program: Brickout!

Day #9. Tuesday, 2/19/2019. Arrays

·         Debug this buggy Pong program.

·         Arrays. Notes. Create an array of asteroids, bullets. Asteroid. Bullet.

·         Add arrays to this program.

Day #8. Thursday, 2/14/2019. Shooting at an angle

·         Collision detection in Whack an Asteroid.

·         New C# elements:

·         Structs. Notes.

·         Enumerated data types and game state. Notes.

·         Moving things at an angle: Notes.

·         Try: Draw asteroids at different scales and rotation speeds.

Homework due 2/19/2019:

·         Program: Whack an asteroid.

Day #7. Tuesday, 2/12/2019. Repetition, a more flexible Draw method

·         Another version of the Draw method. Notes. Marilyn. Asteroid. Arrow.

·         All 8 versions of Draw.

·         Repetition. Notes.

·         Add a shadow to this bouncing ball. Bouncing ball program.

Homework due Tuesday, 2/12/2019:

·         Program: Two-player Alien Shooter.

Homework due 2/19/2019:

·         Program: Whack an asteroid.

Day #6. Thursday, 2/07/2019. Functions

·         Add functions to our Pong game. Function notes.

·         Coding practice. Solve this problem. Bouncing ball solution.

·         Shooting bullets. Notes.

·         Debugging: Slowing down the clock: Notes

·         Debugging: Setting breakpoints and watch lists: Notes.

Homework due Tuesday, 2/12/2019:

·         Program #4: Alien shooter

Tuesday, 2/05/2019: NO CLASS TODAY. Tom is sick.

Day #5. Thursday, 1/31/2019. Making noise, splash screens, shooting bullets

·         2-player Pong solution.

·         Enhance our Pong game:

·         Add Content: sounds. Notes.

·         Add a splash screen.

·         Add Keyboard input. Notes

·         Changing the window size: Notes

·         Making decisions with the if statement: Notes

·         ADD FUNCTIONS SOMEWHERE AROUND HERE!!!

Homework due Tuesday, 2/12/2019:

·         Program #4: Alien shooter

Tuesday, 1/29/2019: NO CLASS TODAY. School closed.

Day #4. Thursday, 1/24/2019. Game content: sounds

·         Get some content by copying this folder to your desktop: N:\All Courses\Kleen Courses\_MyContent.

·         Finish 2-player Pong.

·         Add scores: Strings, Fonts, and Vectors: Notes; Aligning scores and other text: Notes

·         Getting sounds to play on your personal computer. DirectX download.

Homework due Tuesday, 1/29/2019 at noon

·         Program #3: One-player Pong. Start from scratch; do NOT try to modify the 2-player Pong program. It'll be more trouble than it's worth.

Day #3. Tuesday, 1/22/019. Game content: sprites & fonts. Arithmetic, timers

·         Timers & game states: Notes

·         Button presses: Notes

·         Writing a Pong program in class: Problem description. Images.

Homework due Thursday, 1/24/2019 at noon

·         Program #2: Catch the bad guy. Use the gamepad to chase images around on the screen.

Day #2. Thursday, 1/17/2019. Gamepad input

·         Sprites: Notes

·         Gamepad input and the if statement: Notes

·         Arithmetic: Notes

·         Keeping images on the screen: Notes

Homework due Tuesday, 1/22/2019. Zip the project (top-level) folder and put the folder in the drop box.

·         Program #1: Color Controller.

Day #1. Tuesday, 1/15/2019. C#, XNA/Monogame, Visual Studio, and colors

·         Objectives:

o    Run a C#/Monogame program

o    Change background color using a named color

o    Change background color using R, G, and B variables

o    Set a random starting color

o    Change the color on every tick by incrementing R, G, and B.

o    Data types and type casting

o    The if statement

·         How to become a superstar

·         Programming and C#: Notes

·         What is XNA/Monogame? Notes

·         Setting defaults in C#: Notes

·         Colors on a computer: Notes, List of named colors in C#

·         Making decisions: Notes

·         Random numbers and type casting: Notes

Software used in this class

·         If you want the Visual Studio software on your own (Windows) computer, you can get the software (free) from Microsoft:
Visual Studio 2017 Community Edition.

·         You can download Monogame. If the installation process only allows for templates from Visual Studio 2010, that's fine; it'll still work.

·         Templates (need to link to them from Tools | Options | Projects and Solutions | Locations | User project templates location.

·         We will be using the following (free) image editor to create sprites for our programs: Paint.NET

·         We will be using the following (free) sound editor to edit sound files for our programs: Audacity

"Homework" due Thursday

·         If you haven't already done so, buy a game controller from the book store.

·         Read, print, and sign the Attendance, Test, and Homework Policies.

Interesting articles for programmers:

·         Top jobs, 2019

·         The Joys of the Craft

·         The Urge To Do It All Over Again

 

 

 

 

 

 

 

 

 

 

 

 

 

Videos

 

Misc

Day #21. Tuesday, 4/09/2019: Life

Homework Due Thursday, 4/13/2016 at noon (handed out Day #18—3/30/17 due Day #21—4/13/17)

Homework due Tuesday, 4/25/2017

Day #20. Thursday, 4/06/2017: Lists

 

 

 

Day #25. Thursday, 4/16/2019: Classes

Day #28. Tuesday, 5/01/2019

Homework due at the end of the semester

Final Test. Thursday, 5/10/2019

 

 

Earlier classes are below…

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Day #23. Thursday, 4/12/2017: Classes

Homework due at the end of the semester

Day #24. Tuesday, 4/17/2017: Classes and Frogger

Homework due at the end of the semester

 

 

Tuesday, 1/23/2019. No Class. Snow Day.

 

Tests

Day #29. Thursday, 12/08/2016.