Homework 3: Problems - Python debugging and string manipulation

This homework aims at giving you some experience with String manipulation in Python and debugging a simple Python script. String manipulation is one of the greatest strengths and reasons for popularity of Python. For both questions below, submit your Python...

Quiz 3: Problems - Advanced Git

This quiz aims at testing your knowledge of advanced Git commands, such as branching. Don’t forget to push your answers to your remote repository by the end of quiz time. Push your quiz-3 readme.md file to quiz/3/ folder in your...

Lecture 3: Python for beginners

This lecture aims at providing an introduction to Python programming for beginners, how to install it, different Python distributoins available, how to write Jupyter notebooks, and how to perform simple arithmetic operations with Python. Python: a brief history Python was...

Announcement 2: Course Progress Evaluation

The goal of this survey is to assess your progress so far in this class, and to make improvements for the rest of the semester. I rely on your answers and comments to plan for the rest of the semester,...

Homework 2: Problems - Advanced Git

This homework aims at giving you some experience with creating Git branches, developing your project on multiple branches, merging them, resolving potential conflicts between different branches upon merging, and finally how to delete them. It also gives you some experience...

Lecture 2: Advanced Git concepts

This lecture aims at providing a brief review of some advanced topics in Git Version Control System which are essential for effective management of large collaborative projects. A useful Git-cheatsheet link for future reference: Advanced Git cheatsheet Getting help for...

Quiz 1: Problems - Programming history

This quiz aims at testing your very basic level of programming history as much as we discussed in Lecture 0. Please submit your answers to each of these questions in a single file (readme.md) in the appropriate directory in your...

Lecture 1: A professional programmer uses Version Control System (VCS)

This lecture aims at providing a brief review of Version Control Systems, why they are needed, how they work, and the most prominent and popular version control software that are available today for professional collaborative programming. Some useful links for...

Homework 1: Problems - Designing a Github README file and web-page for your project

This homework aims at teaching you how to design a Markdown README file and Github web-page for your projects. Use the following Markdown language references, or any other reference that you find or prefer, to design a Github-interpretable README file...

Lecture 0: Programming history

This lecture aims at providing a brief history of the development of computers and computer programming languages and their mutual interaction with rapid developments in natural sciences in the 20th century. The rise of the machines Immediately after the first...

Announcement 1: Assessing your programming knowledge and interests

The goal of this survey is to assess your prior programming experience and to identify the favorite programming language of the class. Please fill out the following two survey questions, and submit them within 3 minutes. Survey results The following...

Announcement 0: Student-professor connection day

I have ordered cookies to be delivered to our first ECL class. We will try to get to know each other and I will attempt to describe my research work and educational background for you, as well as what we...