News and Announcements
- take home final has been assigned (see this page): due Thursday Dec 20, 2007, 9am.
- Labs | Lecture material | Take-home final | Midterm project | Misc info and links | UNITE video access instructions
- This course builds on students' knowledge of basic programming to teach object-oriented programming concepts via C++ and MATLAB. Importantly, it introduces students to the surrounding culture of serious programming: software and system installation, build systems, Makefiles, debuggers, finding and fixing memory leaks and related problems, how to leverage existing packages/libraries to quickly write functional code, and so on. It also focusses explicitly on "glue" and scripting, important in production-level environments and graduate research alike: bash; awk/sed; perl and python; web scripting via PHP; etc.. One of the main goals of this course is to bring out the unity amongst different programming paradigms; to leave the student with the conviction that by knowing one programming language and understanding the culture, she/he can learn other languages and skills quickly and easily. The course will also provide an introduction to the basics of multi-core programming via pthreads.
- The lab is an important component of this course. It focusses on hands-on experience with the concepts learned and also provides an introduction to simple graph-based algorithms, circuit-related software and computations, etc. (useful for those interested in pursuing a career, or grad school, in a wide variety of scientific and engineering fields, especially computer-aided design of large-scale circuits and systems).
- The projects provide the opportunity to apply concepts learned in the course to make useful contributions to existing software frameworks (for example, one of the projects will be to improve widely-used software for photo/video organization); this is an important skill in many real-life jobs and in graduate research.
- The course consists of a lecture component (two 1hr 15m lectures per week) and a laboratory component (one 3-hour lab per week). Grades will be based on performance in the labs, a midterm project and a finals project; there are no examinations.
- To take this course, you must register for EE4940 (3 credits) as well as EE4970, Section 47 or Section 62 (1 credit). Here is the UMN One Stop page.
- 4 credits. Graduate students may take this course for credit.
- Lectures: MW 9:45-11am in ME102. The course will be offered on UNITE.
- Labs (in EE/CS 2-170; you need to register for one of the two sections):
- M 11:15am-2:15pm (EE4970 Section 47)
- Tu 11:15am-2:15pm (EE4970 Section 62)
- Prior exposure to C programming.
- Jaijeet Roychowdhury, 481 Walter/DTC, jr at umn.edu, 6-7203. Please contact the instructor by email if you need permission numbers.
- Teaching Assistants:
- Bin Cheng, B28 Walter/DTC, bincheng at umn.edu, 5-9265.
- Urvashi Mishra, mish0081 at umn.edu.