SE 375 | Course Introduction and Application Information

Course Name
System Programming
Code
Semester
Theory
(hour/week)
Application/Lab
(hour/week)
Local Credits
ECTS
SE 375
Spring
2
2
3
7

Prerequisites
None
Course Language
English
Course Type
Required
Course Level
-
Course Coordinator
Course Lecturer(s)
Assistant(s) -
Course Objectives The goal of this course is to extend students’ knowledge in systems programming by focusing on practical network and multi threaded programming. Topics such as communication protocols, synchronization primitives, deadlocks, information security, authentication, confidentiality, integrity and digital signing are introduced in this course. The Java programming language will be used throughout the course. Remote Method Invocation, Java Native interface is among other topics to be discussed in the course. All laboratory exercises and assignments will be performed in Java; therefore, to be able to complete this course, a student should have good programming skills in Java.
Course Description The students who succeeded in this course;
  • be able to explain threading concepts and the advantages and potential problems of threaded programming
  • be able to write thread code
  • be able to explain the key principles of computer networks and their operation principles and protocols.
  • be able to implement socket programming and multi-threaded networking program
  • be able to apply security concepts of authentication, confidentiality, integrity and digital signing
Course Content To acquaint students with basic knowledge to develop systems programs that involves multi threading and computer networks. It provides an introduction to multi threading, socket programming and information security.

 



Course Category

Core Courses
X
Major Area Courses
Supportive Courses
Media and Management Skills Courses
Transferable Skill Courses

 

WEEKLY SUBJECTS AND RELATED PREPARATION STUDIES

Week Subjects Related Preparation
1 Introduction Instructor Notes
2 Processes, Threads, Concurrency Horstmann & Cornell, Chapter 14, pp. 716-722
3 Thread Programming Constructs Horstmann & Cornell, Chapter 14, pp. 730-735
4 Synchronization, Deadlocks Horstmann & Cornell, Chapter 14, pp. 736-762
5 Thread-safe Collections, Swing Horstmann & Cornell, Chapter 14, pp. 771-806
6 Networking Basics/Addressing Hortsmann, Chapter 20, pp.818-823
7 Network Protocol Basics: IP/TCP/UDP Hortsmann, Chapter 20, pp.818-823
8 Socket Programming Constructs Hortsmann, Chapter 20, pp. 823-842
9 Socket Programming, Multi Threaded client-server programming Hortsmann, Chapter 20, pp. 823-842
10 MIDTERM EXAM
11 Security Basics. General overview and definitions of information security. Oaks, Chapter 1
12 Practical information security: authentication, hashing, symmetric and asymmetric encryption and decryption techniques, digital signature. Oaks , Chapters 7,9,11.
13 Remote Procedure Call in Java: RMI Lecturer Notes
14 Calling other languages from Java: JNI Lecturer Notes
15 Project Discussions and Presentations
16 Review of the Semester

 

Course Notes/Textbooks

1) Core Java, Volume I Fundamentals, 8/e, Horstmann & Cornell, 2008 , Prentice Hall , ISBN10: 0132354764,  ISBN13: 978-0132354769

Suggested Readings/Materials

1)  Big Java, Horstmann, 4th edition, 2010, Wiley, ISBN13: 978-0470553091

2) Java Security, Scott Oaks, 2nd Edition,  2013,O'Reilly Media, ISBN13: 978-0596001575, ISBN10: 0596001576

 

EVALUATION SYSTEM

Semester Activities Number Weigthing
Participation
Laboratory / Application
Field Work
Quizzes / Studio Critiques
Homework / Assignments
Presentation / Jury
Project
1
50
Seminar / Workshop
Portfolios
Midterms / Oral Exams
1
50
Final / Oral Exam
Total

Weighting of Semester Activities on the Final Grade
2
100
Weighting of End-of-Semester Activities on the Final Grade
Total

ECTS / WORKLOAD TABLE

Semester Activities Number Duration (Hours) Workload
Course Hours
Including exam week: 16 x total hours
16
2
32
Laboratory / Application Hours
Including exam week: 16 x total hours
16
2
Study Hours Out of Class
16
4
Field Work
Quizzes / Studio Critiques
Homework / Assignments
Presentation / Jury
Project
1
52
Seminar / Workshop
Portfolios
Midterms / Oral Exams
1
20
Final / Oral Exam
    Total
200

 

COURSE LEARNING OUTCOMES AND PROGRAM QUALIFICATIONS RELATIONSHIP

#
Program Competencies/Outcomes
* Contribution Level
1
2
3
4
5
1 Adequate knowledge in Mathematics, Science and Software Engineering; ability to use theoretical and applied information in these areas to model and solve Software Engineering problems X
2 Ability to identify, define, formulate, and solve complex Software Engineering problems; ability to select and apply proper analysis and modeling methods for this purpose X
3 Ability to design, implement, verify, validate, measure and maintain a complex software system, process or product under realistic constraints and conditions, in such a way as to meet the desired result; ability to apply modern methods for this purpose X
4 Ability to devise, select, and use modern techniques and tools needed for Software Engineering practice X
5 Ability to design and conduct experiments, gather data, analyze and interpret results for investigating Software Engineering problems
6 Ability to work efficiently in Software Engineering disciplinary and multi-disciplinary teams; ability to work individually X
7 Ability to communicate effectively in Turkish, both orally and in writing; knowledge of a minimum of two foreign languages
8 Recognition of the need for lifelong learning; ability to access information, to follow developments in science and technology, and to continue to educate him/herself
9 Awareness of professional and ethical responsibility
10 Information about business life practices such as project management, risk management, and change management; awareness of entrepreneurship, innovation, and sustainable development
11 Knowledge about contemporary issues and the global and societal effects of engineering practices on health, environment, and safety; awareness of the legal consequences of Software Engineering solutions

*1 Lowest, 2 Low, 3 Average, 4 High, 5 Highest