A clear path to help you “advance” in programming

{SUTAP} Sharif University of Technology
Advanced Programming course

Duration

20 Hours

Exercises

4+2 Extras

TAs

45

Students

170+

Why choose Sharif’s AP course?

First of all, it’s free! So why not? ^__^
Also, presented by Sharif University of Technology - the best university in the country (QS 2017-present) - this may be the best course you could get your hands on. Designed in a user-friendly manner, the course consists of videos, exercises, sample questions and even a project to further your knowledge and gain hands-on experience. Our goal is to guide you through this so-called thorn-filled path and make learning easier for you.
Final word, Welcome to SUTAP!
What will you learn:

  • Java Programming Language
  • Object Oriented Programming
  • Graphics in Java using JavaFX
  • Network and Socket Programming
  • Software Design Patterns
  • Parallelism and Multi-Thread

What's Included

20
Hours
6
Exercises
45
Assistants
170+
Students

Course Content

Requirements : Your PC & Internet *___*

Start...
0.0Download the IDE here
IDE
00:04:31

00:05:31

00:10:46

0.2Setup Java like the description presented here
Documentation
EXTRAAll changes in different versions of Java with example here
Documentation
Requirements : Search, Search, Search

These are the essentials, learn them well while doing Exercise 1 and please learn how to search.
Documentation
1.2Regex in Java available in these sources:
Documentation
Exercise
Judge
1.5Accepted answers for exercise1, .zip
Exercise
Requirements : Some of your previous codes, get the soap ready

Keeping your code clean is a very important step in becoming a good programmer.
2.1Slides on clean code
Slides
2.2A guide to all shortcuts in Intellij, What is "Refactor" and how does it help ?
Documentation
2.3Documenting your code is a must and you should never forget about it. Start this lesson here
Documentation
EXTRAChoosing the right name for the variable is always important. Study this essay or its translation to get a better view on variables' names.
Documentation
Requirements : Exercise 1, Data Structures

Review on some Data structures by Hamed Khanaki
R1.1VideoVideo
01:18:20
R1.2Codes from the session available here
Code
Requirements : Regex (Pattern, Matcher), Stack

A code to validate HTML by Ali Shirmohammadi
EE1.1Question
Exercise
EE1.2VideoVideo
00:41:07
EE1.3Codes from the session available here
Code
Requirements : Data Structures

Start an Object Oriented program by Hamed Khanaki, Exercise 2
3.1VideoVideo
01:38:29
3.2Codes from the session available here
Code
Exercise
Judge
3.5Accepted answers for exercise2, .zip
Exercise
3.6Use this to compare your output to the output expected
Documentation
Requirements : Object Oriented Programming

Review on Object Oriented programming, Know a bit about Inheritance by Hamed Khanaki
R2.1VideoVideo
01:39:02
R2.2Codes from the session available here
Code
Requirements : Object Oriented Programming, Class

Inheritance, Polymorphism and Abstract by Hamed Khanaki
4.1VideoVideo
00:43:59
4.2Codes from the session available here
Code
Requirements : Intellij, A code with bugs

One of the most important part in programming is debugging, so make sure you learn this part well.
5.1Debugging in Intellij : Video Video
00:17:40
Requirements : Intellij, Github Account

Github introduction by Mohammadhossein Bahmani
6.1VideoVideo
02:14:47
6.2A summary of the Git class
Documentation
6.3Learn Git commands here
Documentation
6.4Git cheat sheet here
Documentation
6.5How to use github with Intellij here
Documentation
RECOMMENDEDLearn about branches with pictures here
Documentation
RECOMMENDEDLearn pull request : VideoVideo
00:08:12
Requirements : Object Oriented Programming

A tutorial on MVC by Hamed Khanaki
7.1VideoVideo
01:27:41
7.2Codes from the session available here
Code
Requirements : MVC, UML design

Use what you have learned so far to create an online market, using UML, Trello and Github
P0.1Documentation:
Documentation
Requirements : JSON, Data Structures, Object Oriented Programming, MVC

Start your project, Apache Maven, Unit Test, Code Coverage by Ahmad Salimi
P1.1Documentation:
Documentation
P1.2Maven, Unit test and Code coverage : VideoVideo
00:30:14
P1.3A note on how to use Test for phase 1 of the project
Documentation
Requirements : Object Oriented Programming, Inheritance

A code to create a Supermarket with Java, using MVC design by Ali Shirmohammadi
EE2.1Question
Exercise
EE2.2Video - Part1Video
01:12:14
EE2.3Video - Part2 In this part, "Stream" and "Exception" were used, you can just skip them Video
01:10:49
EE2.4Codes from the session available here
Code
Requirements : Error Handling, Exceptions

All you need to know about Errors and Exceptions by Ali Shirmohammadi
8.1VideoVideo
01:15:45
8.2Codes from the session available here
Code
Requirements : Java Classes, Inheritance

Best sources to learn Interfaces from
9.1Our recommended video on interfaceVideo
00:07:12
9.2A source with good explanation on the subject
Documentation
Requirements : JavaFX, Github, MVC, Generic (needed for Exercise)

Get started on animating your project, presented by Ali Shirmohammadi

An Exercise on Graphic and Generic to further your learning

10.1VideoVideo
01:12:15
Exercise
Judge
10.4Accepted answers for exercise3.1, .zip
Exercise
Requirements : Java Data Structures

An introduction to Thread by Hamed Khanaki
11.1VideoVideo
01:22:52
11.2Codes from the session available here
Code
Requirements : JavaFX

Add Graphics to your project, Yaaay! ^__^
P2.1Documentation:
Documentation
Requirements : Thread

Learn about Socket programming and Server, a presentation by Hamed Khanaki
12.1Server and Socket programming : VideoVideo
01:22:52
12.2Multiple clients with Thread : VideoVideo
00:51:22
12.3Exercise3.2 : Thread and Server
Exercise
Judge
Requirements : Everything you've learned

Handle a server based digital market and you're done. Good Job!

Best Projects

Spring 2020
Shop Application
Spring 2019
Fall 2018
Farm Frenzy

Team 5

Namasha

Team 1

Aparat

Team 10

Aparat

Team 7

Aparat

Team 11

Aparat

Team 17

Aparat
Spring 2018
Clash of Clans

Team 3

Aparat

Team 1

Aparat

Team 6

Aparat

Team 7

Aparat

Team 12

Aparat

Team 15

Aparat

Education Team

  • Mohammad Haghighat

    Head TA

  • Ahmad Salimi

    Head of Project

  • MohammadHossein Gheisarieh

    Head of Assignments

  • Hamed Khanaki

    Head of Workshops

  • Amirhossein Abbasi

    Head of Public Relations

Course Reviews

Characteristics of an ideal "Teacher's Assistant"

~Spring 2020




Read the rest of this article on Virgool

Mohammad Haghighat
Estimated : 3 minutes

Documentation of "Advanced Programming" course by Human Resources team

~Spring 2020



Read the rest of this article on Virgool

Amirhossein Abbasi
Estimated : 13 minutes

All that happened throughout the course (two semesters)

~Spring 2018 - Fall 2019




Parts One ,Two and Three on Virgool

Mohammad Haghighat
Estimated : 16 minutes

Experiences of an AP assistant in Assignment team

~Spring 2020


Read the rest of this article on Virgool

Mohammadhossein Gheisarieh
Estimated : 14 minutes

Share your story!

You may have gone through ups and downs while passing this course. Here is a place to share your experiences with everyone.
AP@Virgool

Contact Us

image image

Help us improve this site and course by sending your feedbacks. You can contact hamilamailee@yahoo.com or ahsa9978@gmail.com for further suggestions.

Know someone who may find the course useful?
Help them find SUTAP like you did! :)