Skip to content

Nazlizamanian/Jonkoping-University-Computer-Engineeering-Programme

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Jönköping University Computer Engineeering Programme

About the programme

The first year of the program is primarily dedicated to foundational courses in programming, aimed at providing students with a fundamental basic understanding of both programming and mathematics. The second year is centered around the specialization in software development and mobile platforms and lastly the thrid year is focused around working in project from a therotical perspective. The education is largely based on projects and exercises that provide practical experience of the techniques being taught. Projects can span across multiple courses: in one course, you might build a user interface for a mobile app, then in the next course, construct its data storage, and in a third course, work on its network functionality. This approach offers a holistic view and understanding of the entire development process.

Year I

Year II

Year III

  • DevOps Fundamentals 7.5 hp TDOK12
  • Information Security 7.5 hp TIHG10
  • Research Methods in Computer Science and Informatics 7.5 hp TFIN13
  • Intelligent Mobile Systems 7.5hp TIGN13
  • Business Planning and Entrepreneurship 7.5hp TBPG19
  • Bachelor’s Thesis in Computer Science and Engineering 15 hp

Year I

Introduction to Computing 7.5hp TDIG19

Course Description

The content of the course aims to provide the student with an introduction to fundamental computer science terms and concepts, as well as an understanding of how code is compiled and executed on a computer. The course is organized and assessed through a combination of an exam and laboratory assignments. The laboratory component of the course encompasses a series of practical assignments, affording students valuable hands-on experience and an avenue to put into practice the theoretical insights acquired during the lectures. The course includes the following topics:

  • Introduction to digital technology
  • Data representation formats
  • CPU architecture
  • Introduction to assembler and C
  • Compilation tools and the compilation process
  • Embedded systems

Discrete Mathematics 7.5hp TDMG17

Course Description

The course introduces some of the fundamental elements of discrete mathematics, including set theory, combinatorics, modular arithmetic, propositional and predicate logic, and graph theory. The course is assessed through a final exam. The course includes the following topics:

  • Basic integer mathematics and modular arithmetic
  • Numbers in different bases
  • Set theory with applications
  • Combinatorics with applications
  • Mathematical recursion and induction
  • RSA encryption and other ciphers
  • Functions and relations between finite sets, equivalence relations
  • Fundamental graph theory
  • Propositional logic, predicate logic, and logical reasoning.

Course Description

The course aims to provide the student with fundamental knowledge in structured programming, including program design and implementation through imperative programming in C/C++. This course is organized and assessed through a combination of an exam and laboratory assignments. The laboratory component of the course encompasses a series of practical assignments, affording students valuable hands-on experience and an avenue to put into practice the theoretical insights acquired during the lectures.

The course includes the following topics:

  • Problem-solving with stepwise refinement
  • Program structures (sequence, selection, iteration)
  • Built-in and user-defined data types
  • Memory allocation, pointers, and references
  • Functions
  • Introduction to classes and objects
  • Using a debugger
  • The C/C++ programming language, specifically the subset of C++ corresponding to C What distinguishes the C programming language from the subset of C++ we use in the course.

Programming Languages and Tools

qt logo cplusplus logo

Linear Algebra 6hp TLJG17

Course Description

The course introduces vectors and demonstrates how vector calculations are used to solve geometric problems. It provides theory and systematic methods for solving linear equation systems. Additionally, determinants, matrices, and matrix algebra are introduced. The course includes the following topics:

  • Linear equation systems, Gaussian elimination
  • Vector algebra with geometric applications
  • Matrices and matrix algebra
  • Determinants with applications
  • Bases and base changes
  • Eigenvalues and eigenvectors, diagonalization, Markov processes
  • Using software for vector and matrix calculations.

Course Description

In this course the systems MySQL and Microsoft SQL Server Management Studio were utilized. Upon course completion, students will have gained a comprehensive understanding of fundamental concepts related to relational databases, enabling them to proficiently model, create, and query simple databases according to specified requirements. Moreover, students will develop insight into the role of database development within the broader context of system and business development. The course was examinated with an exam and a small project in databases. The course encompasses the following key topics:

  • Relational databases and their theoretical foundations
  • Database design using entity/relationship modeling
  • Normalization theory
  • Query languages
  • Databases in the system development life cycle
  • Transaction management

Programming Languages and Tools

microsoftsqlserver logo mysql logo

Datastructures and Algorithms 7.5hp TDSK17

Course Description

Advanced computer programs almost always make use of certain fundamental data structures (stacks, queues, hash tables, etc.). A programmer must, therefore, be well-acquainted with these data structures. They must understand how they work, what performance they offer, and how they can be utilized by programs solving complex problems. This course aims to address this need while providing students with the opportunity to practice their previously acquired knowledge in C/C++ and deepen their understanding of structured programming. The course covers the most fundamental data structures in computer science and the algorithms used to store and retrieve data from these structures. The course also includes several examples of applications.The course includes the following topics:

  • Recursion
  • Algorithm Analysis
  • Basic Data Structures
  • Graphs
  • Sorting

Programming Languages and Tools

qt logo cplusplus logo

Calculus 1 (Envariabelsanalys) 9hp TEVG17

Course Description

The course aims to provide fundamental knowledge of differential and integral calculus in a real variable and to enhance the ability to use the language and symbolism of mathematics to follow and conduct logical and mathematical reasoning. This, in turn, creates the foundation for the mathematical treatment of technical problems in professional practice. The course examination cotains two bigger exams and weekly homework assignments. The course includes the following topics:

  • Function theory, domain, and range
  • Elementary functions and their inverses
  • Limits and continuity
  • Derivatives, rules of differentiation, and some applications of derivatives such as differential calculus, optimization problems, and numerical equation solving using the Newton-Raphson method
  • Techniques for determining antiderivatives, partial integration, variable substitution, and simple partial fraction decomposition
  • Computation of definite and indefinite integrals
  • Linear and separable first-order differential equations
  • Second-order linear differential equations with constant coefficients

Course Description

This course equips students with both theoretical knowledge and practical skills in object-oriented software development.The course is designed to provide students with a solid understanding of object-oriented software development and programming languages. The course examination cotains an exam at the end and additionally weekly homework assignments.The course covers the following key components:

  • Object-Oriented Concepts: Exploring the fundamental principles of object-oriented programming, including objects, classes, encapsulation, inheritance, and polymorphism.
  • Object-Oriented Design: Teaching students how to design software systems using object-oriented methodologies, including creating class hierarchies and modeling complex systems.
  • Object-Oriented Languages: Introducing different object-oriented programming languages and their unique characteristics.
  • Practical Application: Allowing students to apply their knowledge through hands-on exercises and projects, solving real-world problems.
  • Programming Practice: Involving actual coding and implementation of object-oriented programming concepts.

Programming Languages and Tools

qt logo cplusplus logo

Year II

Course Description

The course aims to provide fundamental knowledge in web programming. It begins with an overview of the structure of the web and continues with how to build static web pages using HTML and CSS. It then covers JavaScript and Node.js, teaching students how to implement dynamic web pages that can generate different HTML codes for various clients. Users can fill in forms and send data to the server. Special emphasis is placed on cookies, sessions, database usage, and security. The course assessment comprised an individual project, an examination and additional lab assigments. The course includes the following topics:

  • Client-server communication and HTTP
  • HTML
  • CSS and CSS frameworks
  • JavaScript
  • Node.js and Node Package Manager
  • Frameworks and related technologies
  • Forms, cookies, and sessions
  • Security

Programming Languages and Tools

javascript logo express logo nodejs logo css3 logo html5 logo handlebars logo sqlite logo git logo npm logo

Course Description

The course aims to provide students with the knowledge required to perform object-oriented design in accordance with established practices and to be able to implement the results of such design in program code. The course includes the following topics:

  • Introduction to software development methodologies: waterfall models, iterative methods, agile methods
  • Software requirements specification and validation
  • Unified Modeling Language: class diagrams, sequence diagrams, use case diagrams, etc.
  • Design patterns: object-oriented patterns, analysis patterns, patterns for system architecture

Programming Languages and Tools

eclipseide logo java logo

Course Description

The purpose of the course is to give an introduction to and experience of Android programming, from start to finished and published app. The course includes the following topics:

  • Android architecture
  • Java
  • The Android SDK
  • Handling different runtime configurations
  • GUI development for Android
  • Sensors (gyroscope, GPS, camera)
  • Network communication in Android
  • Other key APIs
  • Publishing on the Google Play Store

Programming Languages and Tools

android logo kotlin logo

Course Description

The course provides an introduction to the structure of the Internet and TCP/IP protocols, but then focuses on the upper layers of the OSI model (session, presentation, and application layers).The course includes the following topics:

  • Introduction to data networks and the OSI model
  • Introduction to TCP/IP protocols
  • Client/server concepts
  • Socket programming
  • Scripting languages
  • Certain standard services and their protocols (Telnet, HTTP, SMTP, DNS, etc.)
  • How secure communication can be achieved through authentication and encryption (HTTPS, DNSSEC, S/MIME, PGP, etc.)
  • Principles of data compression for text and images
  • Decentralized architectures (Tor, Bitcoin, GPG, etc.)

Programming Languages and Tools

python logo vscode logo sqlite logo firebase logo

iOS Development 7.5hp TISK18

Course Description

The course aims to provide students with knowledge and hands-on experience in applied iOS programming, from the initial stages to the completion and publication of an app. The course includes the following components:

  • XCode and Swift
  • Memory management
  • Common design patterns in iOS APIs
  • GUI development in iOS
  • Software quality
  • Testing and debugging
  • Sensor usage
  • Network communication in iOS
  • Other important APIs
  • Publishing in the App Store

Programming Languages and Tools

swift logo xcode logo

Course Description

The course aims to convey advanced knowledge in web development. It begins with an overview of the use of JavaScript and the Document Object Model to directly modify the graphical interface of a website on the client side. Some key client-side libraries and APIs are also introduced. Following that, the focus shifts to the server side, covering Node.js and associated frameworks, teaching students how to build scalable database-based backend solutions that communicate with frontend applications through REST APIs. The security perspective is maintained throughout the course, both on the client and server sides, as well as a focus on good program structure with containers to facilitate the development, testing, and deployment of web applications.

The course includes the following components:

  • Document Object Model
  • Client APIs and libraries
  • Architecture and REST APIs
  • Containers for web development
  • Backend in Node.js
  • Authentication and authorization
  • Calling other web services

Programming Languages and Tools

javascript logo docker logo nodejs logo express logo postgresql logo npm logo

Industrial Placement Course in Computer Engineering 12hp TNDN15

Course Description

Completed a seven-week internship (industry-based course in Computer Engineering) at Albia. The tasks involved continuing the development of a cloud service, a customer portal. The work included developing pages for contracts and user statistics, as well as implementing functions and managing database communication. The project utilized a non-relational database (NoSQL).

Programming Languages and Tools

flutter logo dart logo firebase logo

Year III

DevOps Fundamentals 7.5 hp TDOK12

Course Description

The course aims to convey the fundamentals of DevOps in software architecture. Teaching covers everything from the initial idea of DevOps, the need for DevOps and the benefits of DevOps in software solutions. The course focuses on how to identify potential DevOps solutions in software architectures, embracing the DevOps life cycle, planning with DevOps, developing for DevOps, and finally deployment in a DevOps pipeline. The course also gives the students the ability to implement their own DevOps pipelines in already existing solutions, utilizing skills and knowledge gained from previous courses in software development which DevOps builds on.

The course includes the following elements:

  • Evolution of DevOps
  • Benefits of DevOps
  • Monoliths vs Microservices
  • Identifying appropriate DevOps solutions
  • Integrating DevOps solutions
  • Establishing DevOps values
  • DevOps Life Cycle
  • Planning with DevOps
  • Ensuring Maintainability, Scalability, Security, Usability, Reliability and Flexibility
  • Deployment, CI/CD
  • Documenting DevOps

Programming Languages and Tools

github logo python logo

Information Security 7.5 hp TIHG10

Course Description

In today's society, there are high demands for information security.The course aims to provide an overview of the field of information security by introducing common concepts, principles, models, and standards. It also covers human factors in security work and the role of humans in the field of information security. Furthermore, information security is an interdisciplinary field with connections to many other areas, such as law and ethics, which are therefore addressed in the course.

The course includes the following topics:

  • Common concepts and terms in the field of information security
  • Authentication methods
  • Malware and malicious programs
  • Operating system security
  • Network security
  • Management systems for systematic information

Research Methods in Computer Science and Informatics 7.5 hp TFIN13

Course Description

The course provides a fundamental introduction to modern approaches to science, with a focus on engineering, computer science, and informatics. The course emphasizes giving students insight into the history and philosophy of science, as well as how scientific methods are applied within engineering, computer science, and informatics. Upon completion of the course, students will have acquired sufficient knowledge on how to conduct research projects and how to write scientific reports.

The course covers the following topics:

  • Different research paradigms: Positivism, Hermeneutics, Interpretation, Critical Research, Design Science, Action Research
  • Computer science and informatics as research fields
  • Inductive and deductive research
  • Qualitative and quantitative studies
  • Systematic literature review
  • Experiments and proof of concept as research methods
  • State of the art
  • Writing and reviewing scientific reports