Web Development: Basic HTML/CSS Principles, JQuery, and Using WordPress

Event: Basic HTML/CSS Principles, JQuery, and Using WordPress

on Friday, 17th of May 2013, from 15:00 to 18:00 in Classroom B, Mezzanine of the Biology Building

Due to the rapid development of the World Wide Web, web programming is a skill every computer scientist should possess. However, basic knowledge of HTML, CSS and Javascript is not enough as there are many pitfalls to be avoided and many programming guidelines that should be followed. At the same time, Content Management Systems (CMS) facilitate the creation and management of professional websites and are considered an alternative option for web development.

Topics presented:

  • Efficient methods for developing web applications
  • JQuery, a library that greatly simplifies the client-side scripting of web applications (AJAX)
  • WordPress, the most commonly used CMS

Invited Speakers:

  • Theodosis Sourgkounis
  • Vassilis Mastorostergios

Slides:

Attended by ~45 students

Flier

Facebook Event Page

Posted in Events, Past Events, Web Development | Leave a comment

Tutorial : Source Version Control and Collaborative Coding with Git, Github and Travis-Ci

Source Version Control and Collaborative Coding with Git, Github and Travis-Ci

on Friday, 5th of April 2013, from 15:00 to 17:00 in Classroom B, Mezzanine of the Biology Building

Due to the rapid evolution of technology and computers, modern software is able to perform more and more complex functions. This plurality of functions naturally reflects to the rising complexity and size of source code. Simultaneously, the widespread usage of the Internet, enables developers worldwide to be involved in the same software project. The above issues, necessitate the use of specialized software to utilize and expedite the software development process.

Tutorials

  • Using Git to manage your code
  • Using the Github hosting platform for sharing your code and working with other developers
  • Using the Travis continuous integration platform for expediting your development process

Speakers: Andronidis Anastasis, Christos Sakalis, Trichopoulos Ilias

Materials:

Attended by ~30 students

Git flier

Facebook Event Page

Posted in Events, Past Events, Software Engineering | Comments Off

Event: The Smart Grid Vision

The Smart Grid Vision

In this lecture we present current, real-world applications of the Smart Grid implemented by research groups of our university.Our department and chapter is honoured to host a fellow Phd-canditate from the Electical Engineering department, Anthony Chrysopoulos, who is an expert in Smart Grids, developer and analyst at the Cassandra FP7 project, and greatly involved with the Power TAC Competition.
Specifically, this lecture's topics include:

  • Introduction to the Concepts of the Smart Grid
  • Policies for Electric Vehicles
  • Smart Building: International Hellenic University
  • Decision Making in Smard Grids, FP7 project "Cassandra"
  • PowerTAC (Trading Agent Competition)

Invited Speaker: Anthony Chrysopoulos, Developer & Analyst at the Cassandra FP7 project, EE PhD Candidate

ACM AUTH SC Speakers: Rigas Emmanuouil, Stavropoulos Thanos (CS PhD Candidates)

Slides:

Presentation Poster

Facebook Event Page

Posted in Events, Past Events | Comments Off

Invited Speaker: Serafeim Zanikolas

Creating a real-life high-tech startup using Agile development by Serafeim Zanikolas (head of DevOps at leemail.me) on Monday December 17th, 2012

Slides

leemail.me

Leemail flyer

Facebook Event Page

Posted in Events, Past Events, Software Engineering | Comments Off

Hello Android: Hands-on Seminar

Hello Android: Hands-on Seminar

Introduction to Android programming by chapter members George Piskas and Evangelos Motesnitsalis on Monday November 26th, 2012

Slides

Source Code

Attendance:  Over 80 students (undergraduate AUTH, postgraduate and MSc AUTH & TEITHESS) attended

Android flyer

Facebook Event Page

Posted in Android, Events, Past Events | Tagged | Comments Off

ACM SIGMOD/PODS

Welcome to the Web site for the 2011 ACM SIGMOD/PODS Conference, to be held in the city of Athens, Greece, on June 12-16, 2011.

The annual ACM SIGMOD/PODS conference is a leading international forum for database researchers, practitioners, developers, and users to explore cutting-edge ideas and results, and to exchange techniques, tools, and experiences.

In partnership with Google, we are pleased to announce a limited number of travel grants worth 500 EURO to academics and research students from Eastern Europe to participate to SIGMOD.

 

Applicants should be affiliated with universities in Albania, Armenia, Azerbaijan, Belarus, Bosnia and Herzegovina, Bulgaria, Croatia, Czech Republic, Estonia, Former Yugoslav Republic of Macedonia, Georgia, Latvia, Lithuania, Moldova, Poland, Romania, Serbia, Slovakia, Slovenia, Russian Federation, Ukraine.

To apply, please send an email to Dr. Theodore Dalamagas [dalamag@imis.athena-innovation.gr] by May 9, 2011, including the title and co-authors of your accepted paper(s), if any, and a short resume. Recipients will be notified by May 12, 2011. Preference will be given to PhD students.

The travel grant awards will reimburse actual expenses incurred. Details will be sent to awards recipients.

Posted in Events, Past Events | Comments Off

Meet The 2011 Chapter

April 11, 2011 – Meet the 2011 AUTH ACM Student Chapter

Slides
  • AUTH ACM Student Chapter (pdf)
  • FLOSS – Linux (pdf)
  • Software Engineering (pdf)
  • Domain Specific Modeling (pdf)
  • Open Document Formats (pdf)
  • Recommendation Systems (pdf)

Facebook Event Page

Posted in Events, Past Events | Comments Off

Professor Ricardo Baeza-Yates lectures on “Web Mining or the Wisdom of the Crowds”

The Web continues to grow and evolve very fast, changing our daily lives. This activity represents the collaborative work of the millions of institutions and people that contribute content to the Web as well as the one billion people that use it. In this ocean of hyperlinked data there is explicit and implicit information and knowledge. Web Mining is the task of analyzing this data and extracting information and knowledge for many different purposes. The data comes in three main flavors: content (text, images, etc.), structure (hyperlinks) and usage (navigation, queries, etc.), implying different techniques such as text, graph or log mining. Each case reflects the wisdom of some group of people that can be used to make the Web better. For example, user generated tags in Web 2.0 sites. In this talk we walk through this process and give specific examples.

This Invited Lecture is mainly aimed at the postgraduate students and the researchers of the Informatics Department of Aristotle University of Thessaloniki

About the Speaker:

Ricardo Baeza-Yates is VP of Yahoo! Research for Europe, Middle East and Latin America, leading the labs at Barcelona, Spain and Santiago, Chile, as well as supervising the newer lab in Haifa, Israel. Until 2005 he was the director of the Center for Web Research at the Department of Computer Science of the Engineering School of the University of Chile; and ICREA Professor at the Department of Technology of the University Pompeu Fabra in Barcelona, Spain. He is co-author of the best-seller book Modern Information Retrieval, published in 1999 by Addison-Wesley with a second edition in 2010, as well as co-author of the 2nd edition of the Handbook of Algorithms and Data Structures, Addison-Wesley, 1991; and co-editor of Information Retrieval: Algorithms and Data Structures, Prentice-Hall, 1992, among more than 200 other publications. He has received the Organization of American States award for young researchers in exact sciences (1993) and with two Brazilian colleagues obtained the COMPAQ prize for the best CS Brazilian research article (1997). In 2003 he was the first computer scientist to be elected to the Chilean Academy of Sciences. During 2007 he was awarded the Graham Medal for innovation in computing, given by the University of Waterloo to distinguished exalumni. In 2009 he was awarded the Latin American distinction for contributions to CS in the region and became an ACM Fellow and in 2011 has been named an IEEE Fellow.

[via - Distinguished Lecturer Series - Leon The Mathematician]

Posted in Events, Past Events | Tagged , , | Comments Off

Agile Methodology

 

Agile Methodology

 

What Is Agile?

Agile methodology is an approach to project management, typically used in software development. It helps teams respond to the unpredictability of building software through incremental, iterative work cadences, known as sprints. But before discussing agile methodologies further, it’s best to first turn to the methodology that inspired it: waterfall, or traditional sequential development.

Where Did Agile Come From?

In 1970, Dr. Winston Royce presented a paper entitled “Managing the Development of Large Software Systems” which outlined his ideas on sequential development. In essence, his presentation asserted that a project could be developed much like an automobile on an assembly line, in which each piece is added in sequential phases. This means that every phase of the project must be completed before the next phase can begin. Thus, developers first gather all of a project’s requirements, then complete all of its architecture and design, then write all of the code, and so on. There is little, if any, communication between the specialized groups that complete each phase of work.

It’s easy to see how this development agile methodology is far from optimized. First of all, it assumes that every requirement of the project can be identified before any design or coding occurs. Put another way, do you think you could tell a team of developers everything that needed to be in a piece of software before it was up and running? Or would it be easier to describe your vision to the team if you could react to functional software? Many software developers have learned the answer to that question the hard way: At the end of a project, a team might have built the software it was asked to build, but, in the time it took to create, business realities have changed so dramatically that the product is irrelevant. In that scenario, a company has spent time and money to create software that no one wants. Couldn’t it have been possible to ensure the end product would still be relevant before it was actually finished?

Why Agile?

Agile development methodology attempts to provide many opportunities to assess the direction of a project throughout the development lifecycle. This is achieved through regular cadences of work, known as sprints or iterations, at the end of which teams must present a shippable increment of work. Thus by focusing on the repetition of abbreviated work cycles as well as the functional product they yield, agile methodology could be described as “iterative” and “incremental.” In waterfall, development teams only have one chance to get each aspect of a project right. In an agile paradigm, every aspect of development — requirements, design, etc. — is continually revisited throughout the lifecycle. When a team stops and re-evaluates the direction of a project every two weeks, thereÂ’s always time to steer it in another direction.

The results of this “inspect-and-adapt” approach to development greatly reduce both development costs and time to market. Because teams can gather requirements at the same time theyÂ’re gathering requirements, the phenomenon known as “analysis paralysis” can’t really impede a team from making progress. And because a team’s work cycle is limited to two weeks, it gives stakeholders recurring opportunities to calibrate releases for success in the real world. In essence, it could be said that the agile development methodology helps companies build the right product. Instead of committing to market a piece of software that hasnÂ’t even been written yet, agile empowers teams to optimize their release as it’s developed, to be as competitive as possible in the marketplace. In the end, a development agile methodology that preserves a productÂ’s critical market relevance and ensures a teamÂ’s work doesnÂ’t wind up on a shelf, never released, is an attractive option for stakeholders and developers alike.

Posted in Software Engineering | Comments Off

Nature of Work

Computer software engineers design and develop software. They apply the theories and principles of computer science and mathematical analysis to create, test, and evaluate the software applications and systems that make computers work. The tasks performed by these workers evolve quickly, reflecting changes in technology and new areas of specialization, as well as the changing practices of employers. (A separate section on computer hardware engineers appears in the engineers section of the Handbook.)

Software engineers design and develop many types of software, including computer games, business applications, operating systems, network control systems, and middleware. They must be experts in the theory of computing systems, the structure of software, and the nature and limitations of hardware to ensure that the underlying systems will work properly.

Computer software engineers begin by analyzing users' needs, and then design, test, and develop software to meet those needs. During this process they create flowcharts, diagrams, and other documentation, and may also create the detailed sets of instructions, called algorithms, that actually tell the computer what to do. They also may be responsible for converting these instructions into a computer language, a process called programming or coding, but this usually is the responsibility of computer programmers.

Computer software engineers can generally be divided into two categories: applications engineers and systems engineers. Computer applications software engineers analyze end users' needs and design, construct, deploy, and maintain general computer applications software or specialized utility programs. These workers use different programming languages, depending on the purpose of the program and the environment in which the program runs. The programming languages most often used are C, C++, Java, and Python. Some software engineers develop packaged computer applications, but most create or adapt customized applications for business and other organizations. Some of these workers also develop databases.

Computer systems software engineers coordinate the construction, maintenance, and expansion of an organization's computer systems. Working with the organization, they coordinate each department's computer needs—ordering, inventory, billing, and payroll recordkeeping, for example—and make suggestions about its technical direction. They also might set up the organization's intranets—networks that link computers within the organization and ease communication among various departments. Often, they are also responsible for the design and implementation of system security and data assurance.

Systems software engineers also work for companies that configure, implement, and install the computer systems of other organizations. These workers may be members of the marketing or sales staff, serving as the primary technical resource for sales workers, or providing logistical and technical support. Since the selling of complex computer systems often requires substantial customization to meet the needs of the purchaser, software engineers help to identify and explain needed changes. In addition, systems software engineers are responsible for ensuring security across the systems they are configuring.

Computer programmers write programs. After computer software engineers and systems analysts design software programs, the programmer converts that design into a logical series of instructions that the computer can follow (A section on computer systems analysts appears elsewhere in the Handbook.). The programmer codes these instructions in any of a number of programming languages, depending on the need. The most common languages are C++ and Python.

Computer programmers also update, repair, modify, and expand existing programs. Some, especially those working on large projects that involve many programmers, use computer-assisted software engineering (CASE) tools to automate much of the coding process. These tools enable a programmer to concentrate on writing the unique parts of a program. Programmers working on smaller projects often use “programmer environments,” applications that increase productivity by combining compiling, code walk-through, code generation, test data generation, and debugging functions. Programmers also use libraries of basic code that can be modified or customized for a specific application. This approach yields more reliable and consistent programs and increases programmers' productivity by eliminating some routine steps.

As software design has continued to advance, and some programming functions have become automated, programmers have begun to assume some of the responsibilities that were once performed only by software engineers. As a result, some computer programmers now assist software engineers in identifying user needs and designing certain parts of computer programs, as well as other functions.

Work environment. Computer software engineers and programmers normally work in clean, comfortable offices or in laboratories in which computer equipment is located. Software engineers who work for software vendors and consulting firms frequently travel to meet with customers. Telecommuting is becoming more common as technological advances allow more work to be done from remote locations.

Most software engineers and programmers work 40 hours a week, but about 15 percent of software engineers and 11 percent of programmers worked more than 50 hours a week in 2008. Injuries in these occupations are rare. However, like other workers who spend long periods in front of a computer terminal typing at a keyboard, engineers and programmers are susceptible to eyestrain, back discomfort, and hand and wrist problems such as carpal tunnel syndrome.

Posted in Software Engineering | Comments Off