Advanced Programming (25-777)
Department of Electrical Engineering
Sharif University of Technology
We cover a set of advanced topics which are specifically tailored for the EE major:
You should invest a lot of time mainly due to quick pace of the course, several documents that must be studied on your own, and practical programming assignments and take-home exams that must be turned in periodically throughout the semester.
- Carefully-selected topics on computer architecture, compiler and operating systems to build a solid understanding of the underlying system and the interrelations of hardware and software,
- Multi-threaded parallel software design to keep up with current trends in technology and the shift from serial implementations towards parallel processing, and
- Object-oriented programming in Java to build the foundation for application development in many platforms including Android.
- Principles of algorithm design and computer programming in C/C++
- Computer organization and microprocessors
- Prerequisite skills: Sunday 93/11/25 12:00 - 1:00
- Midterm: TBA
- Final: as scheduled by the department
- Class sessions: Sundays and Tuesdays 7:40 - 8:55 am
- Lab sessions (mandatory): Sundays 12:00 - 1:30 pm
- Introduction [PDF] Feb. 5, 2016
- C++ basic features (self-study) [PDF] Feb. 5, 2016
- Linux basic usage (self-study) [PDF] Mar. 14, 2015
- Selected topics on computer organization, compiler and operating systems
- Multi-threaded parallel software design in C
- Object oriented programming in Java
- Special introductory sessions: GPGPU, Android
- C++: cplusplus.com/doc/tutorial
- C++: cplusplus.com/reference
- Linux : Shotts, "The Linux Command Line - A Complete Introduction", 2012.
- OS: Silberschatz, Galvin and Gagne, "Operating System Concepts Essentials", 2013.
- OS: Bryant and O'Hallaron, "Computer Systems: A Programmer's Perspective", 2010.
- Pthread: Pacheco, "An Introduction to Parallel Programming", 2011.
- Java: tutorialspoint.com/java
- Robbins, "Learning the Vi and Vim Editors", 2008.
- Deitel and Deitel, "C++ How To Program", 2011.
- Josuttis, "The C++ Standard Library - A Tutorial and Reference", 2012.
- Stevanovic, "Advanced C and C++ Compiling", 2014.
- Aho, Lam, Sethi and Ullman, "Compilers - Principles, Techniques, and Tools", 2006.
- C++ Tutorials:
- Notes on C++ : http://www.stroustrup.com/C++.html