Course Information:  CSE 1301c  Section 002   CRN 9296
Lecture Time Lab Time
M W 6:00 -7:15 am               J-210 M or W 7:30 - 9:15 am           J - 201L

Instructor: Richard Gesick              office: J-388

Means of Communication:

email (preferred):        rgesick@spsu.edu                office phone:    (678) 915-3534

 office hours:     M W 5–6 pm or by appt.

 

Required TextNone, the following are available free online:

Rob Miles CSharp Yellow Book 2008.pdf

C# Programming for Beginners

Programmer's Heaven:  C# School

 

Co- requisite:  MATH 1113

Overview:   This course provides an introduction to computer science with a focus on structured programming. Topics include an overview of programming, problem-solving and algorithm development, simple data types, arithmetic and logical operators, selection and repetition structures, and arrays.  Emphasis is placed on the techniques of good programming style and how to design, implement, debug, and document programs.  Designs and implementations use object-oriented programming.

Objectives:

  1. Accurately use primitive data types and arithmetic expressions in programs.
  2. Apply basic programming structures in program solutions, including logical expressions, selection, and repetition.
  3. Define and use classes in program solutions.
  4. Solve programming problems which include array handling, searching, and sorting.
  5. Develop correct, efficient, and documented code.
  6. Compile and run programs in the Windows environment.

Students with disabilities who believe that they may need accommodations in this class are encouraged to contact the counselor working with disabilities at (678) 915-7226 as soon as possible to better ensure that such accommodations are implemented in a timely fashion.  

Grading

The course grade will be determined in the following manner. 

          Assignments         40%                               

          Lab grade              15%                               

          Tests                     30%                               

          Final Exam            15%                               

 Grading Scale

[90 – ∞)                A

[80 – 90)               B

[70 – 80)               C

[60 – 70)               D

(-∞ – 60)               F

 Course Philosophy

Creating games is a great way to learn to program, but it can be quite daunting if you are starting from first principles. XNA 2.0 makes serious game creation easier than it has ever been before. Even so, the fact remains that for a beginner it is hard to understand how even a simple game like Pong is made to work using XNA 2.0.  From a programming point of view, the focus is on the algorithm that controls the behavior of the game. This approach allows programming fundamentals, and the essential nature of the way that computers store and process data, to be explored at the very start of the learning process.  So the games may not be very sophisticated, but they are still games and will teach you the basics of programming at the same time.

It is important to remember that learning to create programs is not just about writing code. There are also ethical and professional aspects to the business of building software. Great programmers take pride in their work, give consideration to their colleagues, and take steps to ensure that what they create is of high quality.

It is not possible in a single introductory programming course to cover everything. The intention of this course is to provide enough knowledge of programming fundamentals to allow someone to have fun writing code. It also includes enough game ideas to allow them to explore the creation of original material. It will also give you a foundation of programming skills to build on should you continue to study computing.

Class Rules:

1.   Students are responsible for all announcements and assignments made in class.

2.   Students are expected to do their own work for all assignments unless otherwise indicated by instructor.  Group discussion and study of the assignments are permitted, but, when you begin to prepare your assignment to turn in, all collaboration must cease.  If collaboration is suspected, the grade will be a 0.  Multiple occasions of collaboration will earn you an academic dishonesty F for the course.

3.   All assignments are due by MIDNIGHT on the day indicated.

4.   No late assignments will be accepted.

5.   If a student must miss an announced test due to illness work travel or other valid excuse, he/she must make alternate arrangements with instructor PRIOR to test date.  There will be NO make-up tests unless prior arrangements have been made.

6.   If a class is cancelled for any reason, any assignment due that day will immediately be due the next scheduled class period.  Any topic or test scheduled for that day will occur the next scheduled class period.

7.   Class attendance and participation is expected.  Meaningful and relevant class discussion is encouraged.

8.   All current Southern Polytechnic State University policies will apply.

Lab Rules:

1.   Students are expected to attend lab each day that a lab is scheduled.  

2.  Labs are expected to be done and completed during lab time.  Each lab is worth a maximum of 15 points. 

3.  Students are expected to work in groups of 2 for lab assignments.  Groups may be assigned or chosen, depending on the lab.

4.  If you have more than 2 missed lab grades (grades of 0), your final grade for the course will be penalized 1 letter grade.

5.  Labs are due at the end of the lab period.  Any lab turned in “late” will be worth a maximum of 1 point.

6.      If a student must miss a lab due to class cancellation, holidays, illness, work travel or other valid excuse, he/she must make alternate arrangements with the instructor.  

Week

Date

Topic

Lab Assignment

Project Assignments

1

24-Aug

Course Introduction

no lab this week

 

26-Aug

Computer Concepts

 

2

31-Aug

Introduction to Programming

Lab 0 – Orientation to GameStudio and XNA

Assign 1

2-Sep

Data Types

 

3

7-Sep

no class

no lab this week

 

9-Sep

Expressions & Conversions

Assign 1 due,   Assign 2

4

14-Sep

Worksheet & Examples

Lab 1 – First Game (2 Triangles) (twoTriangles.zip)

 

16-Sep

Using Classes

 

5

21-Sep

Examples

Lab 2 – Methods & Using Classes (Ball BounceInitial.zip)

 

23-Sep

Review

Assign 2 due

6

28-Sep

TEST 1

no lab, test week

 

30-Sep

Intro to Writing Classes

Assign 3

7

5-Oct

Constructors & Other Methods

Lab 3 – Classes & UML (CastleAttack.zip)

 

7-Oct

Boolean Expressions & Conditionals

 

8

12-Oct

More Conditionals

Lab 4 – Writing classes (CastleAttackversion2)

 

14-Oct

Worksheet

Assign 3 due

9

19-Oct

Loops

Lab 5 – Selection (CootieBug )

 Assign 4

21-Oct

More Loops

 

10

26-Oct

More Loops

Lab 6 – Building from scratch

 

28-Oct

review/ catch-up

 

11

2-Nov

Review, Worksheet

no lab, test week

 

4-Nov

TEST 2

Assign 4 due, Assign 5  & Assign 6

12

9-Nov

Parameter Passing & More

Lab 7 – Design a game and document

 

11-Nov

Examples

 

13

16-Nov

Arrays

Lab 8 – Arrays  (Elevens)

 Assign 5 due

18-Nov

More Arrays and Lists

 

14

23-Nov

More Arrays and Lists

no lab, Holidays

 

25-Nov

no class

 

15

30-Nov

Review

no lab, test week

 

2-Dec

TEST 3

 

16

7-Dec

Project Work (review if needed)

Game Play of Final Projects

 

9-Dec

Game Competition

 

Assign 6 due (AM)

17

week of 12/14

FINAL date time tbd

no lab, finals week

 
 
Game Lab Availability for Just Students in Gaming Courses            TBA     

PERMANENT LINKS:

Information on XNA

XNA Developer Center from Microsoft (good API reference)

FREE TUTORING AVAILABLE IN THE ATTIC

If you are having difficulty in the class, PLEASE go see a tutor...It's FREE!!!

 

Here is a link for viewing how to solve (debug) several common programming errors that beginning programming students have.  Let me know if you find these useful.  http://debug.csi.muohio.edu/

In addition, here's a link for practicing programming:  http://academicjava.com/

 

Here are a couple of links for more practice on number conversion.

The first is from Teresa Carrigan who has developed several animations to show the conversion.

The second is a practice exercise from Bettina Bair of Ohio State.

Here's an article from wikipedia.

 

Here is a link for a tutorial for 1301:

  http://cse.spsu.edu/cslab/Reference/Java/PatRothJavaTutorial.pdf