CS1372
-
Upload
marah-casey -
Category
Documents
-
view
20 -
download
0
description
Transcript of CS1372
CS1372: HELPING TO PUT THE COMPUTING IN ECE
CS1372
Introduction
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
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!
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
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.
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
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
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
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!
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!
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. ☺
CS1372: HELPING TO PUT THE COMPUTING IN ECE
Course Policies
• Review the Syllabus on T-Square– Goals– Evaluation– Late work policy– Collaboration
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!!!
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
CS1372: HELPING TO PUT THE COMPUTING IN ECE
Demo