This is an industry-oriented course that prepares students to undertake jobs and internships
in many fields of Software Engineering. This course is very broad, rather than deep. It introduces students
to many programming methodologies that would allow students to construct practical applications. This course is
fast paced and the students are encouraged to practice the introduced material at their own pace.
More than 50% of lecture time will be spent on writing real code. The code files will be posted on this website
just after the lecture
|Time:||6:00 PM - 7:30 PM, every Friday|
|Instructor:||Sami Abu-El-Haija. samihaija [at] yahoo [dot] com |
- Thanks a lot for the participation today. I am very glad that you all
enjoyed web programming. The files should be downloadable from the course outline below.
- Resumes: If you intend to practice the kind of programming that we do in class, add your "practice" projects on your resume, and then send me your resume. I will forward it arround to company recruiters that I usually communicate with.
- Next week: will be split into two parts; Dynamic Web Applications, and Machine Learning. We will write a small dynamic web application. Perhaps either an mini-email client, mini-chat service, or even mini-facebook if you guys want. In algorithms "section", we will introduce an easy-to-understand, yet a very powerful Machine algorithm. I honestly think that you will enjoy next class. I think that Machine Learning has the most interesting class of algorithms, of all times.
- Sample code from previous class have been posted on the course outline below. Thanks to students: Owajigbanam "Iggy" Ogbuluijah, who looked up the code, as well as: Jampala Anapurnesh, who fixed a minor bug.
- Friday's class will be about Network Programming. We will be writing a small application that can communicate with another application over the a network (internet). We will be using Java since most of you are familiar with it. Java is a perfect language for such a program since it contains easy-to-use libraries that our application needs. Our application will be less than 10 lines of code.
- For the 15-minute algorithm, we will be solving a problem using dynamic programming. A technique that people regard as 'difficult', but we will discuss a way to make such problems fairly easy to solve.
- The C# files that we wrote last lecture will be posted on this website during the week (including the database files).
- Your homework would be to install Microsoft Visual Studio 2008 (Available on MSDNAA @ UofT).
- Next class we will take the GUI (event-driven) programming one step to introduce MVC frameworks, and we will also continue the algorithmic aspect of the course
to introduce elementary graph algorithms.
Thank you all for the dynamic participation last lecture. The Microsoft Access database that we designed in class should be downloadable from the syllabus below.
For the homework part, please either email me the solution for the Circular Sort Algorithm
, or send me a solution for the Tennis Probability
Next class we will write a piece of Software that would access a database. The code will be written using C#, a fairly easy language to learn (especially that all of you have done programming with either Java or C++. C# is more similar to Java). During next class, I will introduce the concept of "O.R. Mapping". An industry-standard in designing database applications.
Next week's algorithmic part will be an introduction to Graph Theory. One of the most exciting topics in Computer Science.
- Object Oriented Programming
- Network Programming - Sample Code
- Basics of Network Programming
- Protocols, Security issue, and ideas
- Database Programming
- Introduction to Relational Databases. Sample Database
- Database-driven programming
- Algorithmic Programming
- Recursion and Dynamic Programming
- Elementary Graph Theory
- (if time permits) Web Programming
- Client-Side programming. Sample files
- Server-Side programming
Register for the course
Registration is now closed. Please contact the course instructor for manual