PROGRAMMING LANGUAGES
- Course
- ITEC501 - PROGRAMMING LANGUAGES
- Department
- Information Technologies - English - Master
- Course Type
- Course
- Status
- Required
- Language
- English
- Credit
- 3
- ECTS
- 8
- T+P+L
- 3 + 0 + 0
- Course Coordinator(s)
- -
- Prerequisite
- -
- Keywords
Course Description
This course is designed to equip students with advanced programming skills and a deep understanding of Object-Oriented Methodology. Students will gain expertise in topics such as threads, sockets, XML parsers, collections, and database operations. The course emphasizes practical implementation through the use of Java programming language and development tools like the Eclipse IDE. Key topics include advanced concepts in Object-Oriented Programming (OOP), graphical user interface (GUI) development with Swing, multithreading, synchronization mechanisms (threads, semaphores, and mutex), file handling (text, binary, and random access files), and class serialization. Additionally, the course covers design patterns, debugging techniques, and socket programming, preparing students for real-world application development. By the end of the course, students are expected to create robust and scalable Java applications, leveraging advanced programming concepts and tools for efficient software development.
PROGRAMMING LANGUAGES
Evaluation Tools (Active Term)
No evaluation items have been defined.
Course outcomes
- 01 Design and develop software using object oriented design and programming methods
- 02 Practice UML Class diagrams to effectively create object oriented design models
- 03 Using persistency and database features alongside with programming
- 04 Using advanced features such as XML Parsing and Text file processes with programming langauges
- 05 Practice Parallel programming features such as threats and objects
- 06 Practice the fundamentals of Network and Socket Programming
Course Syllabus
| Week | Topic |
|---|---|
| Week 1 | An Introduction to the Course content, Outline and an IceBreaker |
| Week 2 | Recap of programming Knowledge: Swing Library, Decision Making, Loops, Arrays |
| Week 3 | Recap of programming Knowledge: GUI Components |
| Week 4 | Recap of programming Knowledge: Advanced GUI Components |
| Week 5 | Recap of programming Knowledge: Object and Classes, UML Class Diagrams, Object Orıented design and development. |
| Week 6 | Recap of programming Knowledge: Inheritance, Abstract Classes, Interfaces and Polymorphism |
| Week 7 | Collections in Advanced Programming: Sets, Lists and Queue |
| Week 8 | Midterm Exam |
| Week 9 | Database Connections (Apache Derby - JDBC): Select, Insert, Delete, Update operations. |
| Week 10 | Database Connections : JTable and constructing object oriented 3-tier Architecture model |
| Week 11 | Files in Advanced Programming |
| Week 12 | XML Files, XML Parsing |
| Week 13 | Multi-threading |
| Week 14 | Revision |
| Week 15 | Final Exam |
Reference Books & Course Materials
- 01 Java: The Complete Reference, Ninth Edition, 2016
- 02 Java: A Beginner's Guide, Sixth Edition, 2014
Learning Outcomes
- L01 Design and develop software using object oriented design and programming methods
- L02 Practice UML Class diagrams to effectively create object oriented design models
- L03 Using persistency and database features alongside with programming
- L04 Using advanced features such as XML Parsing and Text file processes with programming langauges
- L05 Practice Parallel programming features such as threats and objects
- L06 Practice the fundamentals of Network and Socket Programming
Program Outcomes
- Demonstrate a thorough understanding of the theories, frameworks, and models in order to assess and comprehend the state of the art in data science.
- Review the literature and apply data science theories and methodology in new research and experiments.
- Analyze datasets using supervised and unsupervised machine learning techniques.
- Design, develop and test statistics and informatics software systems for data management, analysis and problem solving.
- Conceptualize and develop efficient visuals for a range of data types and analytical tasks, and carry out independent research on a range of theoretical and applied subjects in visualization and visual analytics.
- Obtain a high level of proficiency in communication, problem solving, research or project-related activities and function effectively as a team member or a leader to accomplish a common goal in a multidisciplinary team.
- Develop and implement optimal solutions to overcome challenges associated with managing large datasets by utilizing parallel methods, cloud computing, and non-relational data storage and retrieval (NoSQL).
- Demonstrate an understanding of the interdisciplinary of data, information, and communications, as well as the ability to evaluate the leading research methods for data collection and analysis.
- Demonstrate a deep understanding of the ethical issues surrounding the use of data and apply ethical decision making in real-world data-related applications.
- Demonstrate capability of analyzing, synthesizing, and evaluating knowledge from a wide range of fields and be capable of lifelong self-directed learning.
Po-Lo Matrix
| LO | Average | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| L01 | - | - | - | - | - | - | - | - | - | - | - |
| L02 | - | - | - | - | - | - | - | - | - | - | - |
| L03 | - | - | - | - | - | - | - | - | - | - | - |
| L04 | - | - | - | - | - | - | - | - | - | - | - |
| L05 | - | - | - | - | - | - | - | - | - | - | - |
| L06 | - | - | - | - | - | - | - | - | - | - | - |