CS1372

15
CS1372: HELPING TO PUT THE COMPUTING IN ECE CS1372 Introduction

description

CS1372. Introduction. Faculty. Lecturer David Smith CoC 121 [email protected] [Use your Tech email addr!] Office Hours See personal page. What is CS1372?. A second course in programming for ECE majors A course about lower level programming than CS1371 - PowerPoint PPT Presentation

Transcript of CS1372

Page 1: CS1372

CS1372: HELPING TO PUT THE COMPUTING IN ECE

CS1372

Introduction

Page 2: CS1372

CS1372: HELPING TO PUT THE COMPUTING IN ECE

Faculty

• Lecturer– David Smith– CoC 121– [email protected] [Use your Tech

email addr!]– Office Hours See personal page

Page 3: CS1372

CS1372: HELPING TO PUT THE COMPUTING IN ECE

What is CS1372?

• A second course in programming for ECE majors

• A course about lower level programming than CS1371

• A course primarily using the C programming language with some C++ and FORTRAN (just to confuse you).

• Fun!

Page 4: CS1372

CS1372: HELPING TO PUT THE COMPUTING IN ECE

History

• Late 90's: Everyone take the same thing– Pseudocode/Java

• The New Century– Scheme/Java

• The Age of Enlightenment– CS++: Python/Java– Engineers: Matlab/Java– Mgt/Arch: Python(Media)/JavaJava

Page 5: CS1372

CS1372: HELPING TO PUT THE COMPUTING IN ECE

ECE Said...

• We're special

• While Java is a swell language it is not extremely useful to ECE majors...nowhere near as useful as a low level language.

• We're low level guys. Our students should know

C.

Page 6: CS1372

CS1372: HELPING TO PUT THE COMPUTING IN ECE

SO...

• CS1372 was designed to teach C programming using something that students are comfortable with...

• Prior experience with Matlab

• Thus the original version of CS1372 taught students how to program in C using as a target duplication a lot of the functionality of Matlab

Page 7: CS1372

CS1372: HELPING TO PUT THE COMPUTING IN ECE

Meanwhile in a Parallel Universe

• Computational Media was invented

• CS2260/CS2261 was invented– Give students a view of low level

programming– Operate in a game context– Program a GameBoy Advance [GBA]

• Are using the GBA in CS2110

Page 8: CS1372

CS1372: HELPING TO PUT THE COMPUTING IN ECE

Advantages of GBA Programming

• Low level down to the "metal" programming

• What C is good for!

• No operating system– Experience true I/O device programming– See details normally hidden

• Hardware requires some of the messy low-level bit and byte twiddling

Page 9: CS1372

CS1372: HELPING TO PUT THE COMPUTING IN ECE

Advantages of GBA Programming

• Requires extensive use of pointers– Access physical memory locations– Classic pointer manipulations

• See the fruits of the labor of ECEngineers– Tiles and Sprites– Sound– DMA

• Hardware with space and time limitations

• It is really fun!

Page 10: CS1372

CS1372: HELPING TO PUT THE COMPUTING IN ECE

Nota Bene

• This is not a "Game Programming" class.

• Such a class would assume knowledge of C or some other language

• Such a class would supply a rich API

• Numerous game algorithmic topics would be covered

• We want you to see the messy low level details not hide them!

Page 11: CS1372

CS1372: HELPING TO PUT THE COMPUTING IN ECE

Teaching Method

• Despite what you are seeing today this is not going to a long series of PowerPoint slides.

• In general lecture will consist of coding with explanations as required.

• This means that you need to come to class!

• Recitation is not mandatory but it is. ☺

Page 12: CS1372

CS1372: HELPING TO PUT THE COMPUTING IN ECE

Course Policies

• Review the Syllabus on T-Square– Goals– Evaluation– Late work policy– Collaboration

Page 13: CS1372

CS1372: HELPING TO PUT THE COMPUTING IN ECE

Course Policies

• Collaboration

• You free to discuss assignments, look at one another’s code, help one another out.

• But you need to actually code the assignment yourself.

• Homework will be evaluated by demo with your TA. You will need to be able to demonstrate that you did it!!!

Page 14: CS1372

CS1372: HELPING TO PUT THE COMPUTING IN ECE

Textbooks

• Kernigan and Richie: “The C Programming Language” ISBN 978-0-13-110362-8

• Hanly and Koffman: “Problem Solving and Design in C” ISBN 0-321-40991-4

• Tonc: “GBA Programming” – on-line on

T-Square

Page 15: CS1372

CS1372: HELPING TO PUT THE COMPUTING IN ECE

Demo