150 likes | 226 Views
CS1372. Introduction. Faculty. Lecturer David Smith CoC 121 dmsmith@cc.gatech.edu [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
E N D
CS1372 Introduction
Faculty • Lecturer • David Smith • CoC 121 • dmsmith@cc.gatech.edu [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 • A course primarily using the C programming language with some C++ and FORTRAN (just to confuse you). • Fun!
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)/Java
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.
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
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
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
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!
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!
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. ☺
Course Policies • Review the Syllabus on T-Square • Goals • Evaluation • Late work policy • Collaboration
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!!!
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