Erinevus lehekülje "Java Fundamentals" redaktsioonide vahel

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti
P
 
(ei näidata sama kasutaja 27 vahepealset redaktsiooni)
1. rida: 1. rida:
 +
'''!!!!! Exam info !!!!!'''
 +
 +
Exam times:
 +
* May 22nd - ICT-315, ICT-312 @12.00
 +
* May 29th - ICT-A1, ICT-A2 @12.00
 +
Format:
 +
* Written part
 +
** 25 multiple choice questions (choose one)
 +
** 45 minutes
 +
* Oral part
 +
** 2 questions
 +
** 10-15 minutes each
 +
* You will receive your grade immediately
 +
 +
 
'''Course Introduction'''
 
'''Course Introduction'''
 +
 
Offered by ZeroTurnaround in Spring semester 2017. The course will be taught in English.
 
Offered by ZeroTurnaround in Spring semester 2017. The course will be taught in English.
  
12. rida: 28. rida:
  
 
Students from TUT should register in ÕIS (registration will be opened on <s>January 11</s> January 30). Students from Tallinn University and IT College, who are interested in taking the course should send an e-mail to Siiri Taveter (siiri.taveter@ttu.ee) mentioning ITI8905 in the subject line.
 
Students from TUT should register in ÕIS (registration will be opened on <s>January 11</s> January 30). Students from Tallinn University and IT College, who are interested in taking the course should send an e-mail to Siiri Taveter (siiri.taveter@ttu.ee) mentioning ITI8905 in the subject line.
 +
  
 
'''Final Grade'''
 
'''Final Grade'''
 +
 +
Your final grade will consist of:
 
* 50% Homework
 
* 50% Homework
 
* 50% Exam
 
* 50% Exam
** 60% written (multiple-choice questions)
+
 
** 40% oral (3 questions)
 
** Prerequisite: must get at least 6 points for Homework
 
  
 
'''Homework'''
 
'''Homework'''
* 14 assignments total
+
 
* Each assignment scored 0.0 - 1.0
+
There are 14 homework assignments total for Lectures 1-14. The last lecture (lecture 15) will not have a homework assignment. Each assignment submission will be scored between 0.0 - 1.0. For a perfect score for homeworks you need at least 12 points out of the 14. So there is some buffer if you happen to miss a homework or if you didn't get a great score for each of them. For those of you that happen to get more than 12 points, we will make your life easier on the exam :).
* Max total score is 12
+
 
* Exam prerequisite: get at least 6 points for homework!
+
Homework assignments for the lectures will be given out at the end of each lecture (Monday) and each one, except for the first one, will need to be submitted by Sunday 23:59 EEST same week. This means you have 6 days for solving the homework and submitting it to us for grading. '''Don't be late''' - if you are late then you'll get 0 points and we won't even look at it!
* Bonus: get more than 12 points - have an easier time on the exam
+
 
* Given out at the end of the lecture (Monday)
+
'''No cheating''':
* Hard deadline is Sunday 23:59 EEST same week (6 days)
 
* If you are late then you’ll get 0 points!
 
* If you are late then we won’t even look at it!
 
* No cheating!
 
 
* Copying solutions from a friend is forbidden - if we see two identical submissions, they both get a 0.
 
* Copying solutions from a friend is forbidden - if we see two identical submissions, they both get a 0.
* Copying solutions from StackOverflow is forbidden - if we detect this we will deduct points.
+
* Copying solutions from StackOverflow is forbidden - its okay to look at solutions for ideas, but don't blatantly copy.
* Use the Java Standard Library unless homework assignment itself uses some other libraries
+
Use the Java Standard Library unless homework assignment itself uses some other libraries
 +
 
 +
 
 +
'''Exam'''
 +
 
 +
The exam will be:
 +
* 60% written (multiple-choice questions)
 +
* 40% oral (2+1 questions)
 +
*  NB! Prerequisite: must get at least 6 points for Homework
 +
 
  
 
'''Lectures'''
 
'''Lectures'''
  
 
Lecture 1  
 
Lecture 1  
* [[Meedia:JavaFundamentals - Lecture 1 - Introduction.pdf|Slides]]
+
* Slides: [[Meedia:JavaFundamentals - Lecture 1 - Introduction.pdf|JavaFundamentals - Lecture 1 - Introduction.pdf]]
* [https://github.com/JavaFundamentalsZT/jf-hw-intro Homework]
+
* Homework:
* Deadline: Sunday, February 12 23:59 EEST
+
** Link: [https://github.com/JavaFundamentalsZT/jf-hw-intro https://github.com/JavaFundamentalsZT/jf-hw-intro]
 +
** Goals:
 +
*** Get the failing unit test to pass
 +
*** Submit it
 +
** Deadline: Sunday, February 12 23:59 EET
 
Lecture 2
 
Lecture 2
* ...
+
* Slides: [[Meedia:JavaFundamentals - Lecture 2 - Lambdas and Streams.pdf|JavaFundamentals - Lecture 2 - Lambdas and Streams.pdf]]
 +
* Homework:
 +
** Link: [https://github.com/JavaFundamentalsZT/jf-hw-2-lambdas https://github.com/JavaFundamentalsZT/jf-hw-2-lambdas]
 +
** Goals:
 +
*** Implement the method getWords(filename) in class Homework2. Do not change the method signature.
 +
*** Find five most used words in a file. Treat words in case insensitive manner.
 +
*** Implementation must use the stream API and lambdas.
 +
*** Consider edge cases and don't forget to add tests!
 +
** Deadline: Sunday, February 12 23:59 EET
 +
Lecture 3
 +
* Slides: [[Meedia:JavaFundamentals - Lecture 3 - Collections and Generics.pdf|JavaFundamentals - Lecture 3 - Collections and Generics.pdf]]
 +
* Homework:
 +
** Link: [https://github.com/JavaFundamentalsZT/jf-hw-3-generics https://github.com/JavaFundamentalsZT/jf-hw-3-generics]
 +
** Goals:
 +
*** Task 1: Implement CardDeck, its constructor and methods shuffle(), take(), add(), size()
 +
*** Task 2: Create function unique() which receives a varg of List-s and returns a List of values that exist only once across all collections
 +
** Deadline: Sunday, February 19 23:59 EET
 +
Lecture 4
 +
* Slides: [[Meedia:JavaFundamentals - Lecture 4 - IO.pdf|JavaFundamentals - Lecture 4 - IO.pdf]]
 +
* Homework
 +
** Link: [https://github.com/JavaFundamentalsZT/jf-hw-packer https://github.com/JavaFundamentalsZT/jf-hw-packer]
 +
** Goals:
 +
*** Write a Java program which packs and unpacks files without compression
 +
*** More details on GitHub!
 +
** Deadline: Sunday, February 26 23:59 EET
 +
Lecture 5
 +
* Slides: [[Meedia:JavaFundamentals - Lecture 5 - IO2.pdf|JavaFundamentals - Lecture 5 - IO2.pdf]]
 +
* Homework
 +
** Link: [https://github.com/JavaFundamentalsZT/jf-hw-sysdump https://github.com/JavaFundamentalsZT/jf-hw-sysdump]
 +
** Goals:
 +
*** Write a Java program which outputs system info as XML and JSON files
 +
*** More details on GitHub!
 +
** Deadline: Sunday, March 5 23:59 EET
 +
Lecture 6
 +
* Slides: [[Meedia:JavaFundamentals - Lecture 6 - Threads and Java Memory Model.pdf|JavaFundamentals - Lecture 6 - Threads and Java Memory Model.pdf]]
 +
* Homework
 +
** Link: [https://github.com/JavaFundamentalsZT/jf-hw-threads-jmm https://github.com/JavaFundamentalsZT/jf-hw-threads-jmm]
 +
** Goals:
 +
*** Create tests with JCStressTest that demonstrate concurrency issues and outcomes
 +
*** Explain why these outcomes are possible under the Java Memory Model
 +
** Deadline: Sunday, March 12 23:59 EET
 +
Lecture 7
 +
* Slides: [[Meedia:JavaFundamentals - Lecture 7 - Thread Safety and Locks.pdf|JavaFundamentals - Lecture 7 - Thread Safety and Locks.pdf]]
 +
* Homework
 +
** Link: [https://github.com/JavaFundamentalsZT/jf-hw-money-transfers https://github.com/JavaFundamentalsZT/jf-hw-money-transfers]
 +
** Deadline: Sunday, March 19 23:59 EET
 +
Lecture 8
 +
* Slides: [[Meedia:JavaFundamentals - Lecture 8 - Concurrency API.pdf|JavaFundamentals - Lecture 8 - Concurrency API.pdf]]
 +
* Homework
 +
** Link: [https://github.com/JavaFundamentalsZT/jf-hw-password-cracker https://github.com/JavaFundamentalsZT/jf-hw-password-cracker]
 +
** Deadline: Sunday, March 26 23:59 EET
 +
Lecture 9
 +
* Slides: [[Meedia:JavaFundamentals - Lecture 9 - Classloaders.pdf|JavaFundamentals - Lecture 9 - Classloaders.pdf]]
 +
* Homework
 +
** Link: [https://github.com/JavaFundamentalsZT/jf-hw-classloaders https://github.com/JavaFundamentalsZT/jf-hw-classloaders]
 +
** Deadline: Sunday, April 2 23:59 EEST
 +
** General feedback:
 +
*** Very many of you print the stacktrace before throwing a new exception or returning null.The convention in the industry is to have exception logging (print it out in some sort) at one single location at some higher part of the calling chain. In your catch sections I would either handle the exception (some logic) or re throw.
 +
*** Make sure you close your streams! Classloaders are usually quite hot, meaning that they process a ton of files. If you happen to leak a handle each time then the leak can be substantial! Don’t forget to close them in the finally block or using the more convenient try-with-resources approach.
 +
*** Test your submission before you send them in! Out of the 22 submissions 4 threw an exception with the supplied input files.
 +
Lecture 10
 +
* Slides: [[Meedia:JavaFundamentals - Lecture 10 - Java Memory Management.pdf|JavaFundamentals - Lecture 10 - Java Memory Management.pdf]]
 +
* Homework
 +
** Link: https://github.com/JavaFundamentalsZT/jf-hw-jmm
 +
** Deadline: Sunday, April 9 23:59 EEST
 +
Lecture 11
 +
* Slides: [[Meedia:JavaFundamentals - Lecture 11 - Reflection API.pdf|JavaFundamentals - Lecture 11 - Reflection API.pdf]]
 +
* Homework
 +
** Link: https://github.com/JavaFundamentalsZT/jf-hw-reflection
 +
** Deadline: Sunday, April 16 23:59 EEST
 +
Lecture 12
 +
* Slides: [[Meedia:JavaFundamentals - Lecture 12 - Java Bytecode and Javassist.pdf]]
 +
* Homework
 +
** Link: https://github.com/JavaFundamentalsZT/jf-hw-javassist
 +
** Deadline: Sunday, April 23 23:59 EEST
 +
Lecture 13
 +
*  Slides: [[Meedia:JavaFundamentals - Lecture 13 - Networking.pdf]]
 +
* Homework
 +
** Link: https://github.com/JavaFundamentalsZT/jf-hw-net
 +
** Deadline: Sunday, April 30 23:59 EEST
 +
Lecture 14
 +
*  Slides: [[Meedia:JavaFundamentals - Lecture 14 - Java Troubleshooting and Performance.pdf]]
 +
* Homework
 +
** Link: https://github.com/JavaFundamentalsZT/jf-hw-performance
 +
** Deadline: Sunday, May 14 23:59 EEST
 +
Lecture 15
 +
*  Slides: [[Meedia:JavaFundamentals - Lecture 15 - Java 9 and Beyond.pdf]]

Viimane redaktsioon: 15. mai 2017, kell 10:43

!!!!! Exam info !!!!!

Exam times:

  • May 22nd - ICT-315, ICT-312 @12.00
  • May 29th - ICT-A1, ICT-A2 @12.00

Format:

  • Written part
    • 25 multiple choice questions (choose one)
    • 45 minutes
  • Oral part
    • 2 questions
    • 10-15 minutes each
  • You will receive your grade immediately


Course Introduction

Offered by ZeroTurnaround in Spring semester 2017. The course will be taught in English.

  • Course code: ITI8905
  • Credits: 3 EAP
  • Time: Lectures on Mondays 12:00-13:30. First meeting on January 30.
  • Place: ICT-315 (ICT building is at Akadeemia tee 15a)

The course is targeted to students who (think they) already know Java. It is not a beginner's course!

NB! The number of places is limited to 40! Sign up ASAP! When we cannot find any evidence of you having taken some Java courses in the past, we may vacate the place to other students.

Students from TUT should register in ÕIS (registration will be opened on January 11 January 30). Students from Tallinn University and IT College, who are interested in taking the course should send an e-mail to Siiri Taveter (siiri.taveter@ttu.ee) mentioning ITI8905 in the subject line.


Final Grade

Your final grade will consist of:

  • 50% Homework
  • 50% Exam


Homework

There are 14 homework assignments total for Lectures 1-14. The last lecture (lecture 15) will not have a homework assignment. Each assignment submission will be scored between 0.0 - 1.0. For a perfect score for homeworks you need at least 12 points out of the 14. So there is some buffer if you happen to miss a homework or if you didn't get a great score for each of them. For those of you that happen to get more than 12 points, we will make your life easier on the exam :).

Homework assignments for the lectures will be given out at the end of each lecture (Monday) and each one, except for the first one, will need to be submitted by Sunday 23:59 EEST same week. This means you have 6 days for solving the homework and submitting it to us for grading. Don't be late - if you are late then you'll get 0 points and we won't even look at it!

No cheating:

  • Copying solutions from a friend is forbidden - if we see two identical submissions, they both get a 0.
  • Copying solutions from StackOverflow is forbidden - its okay to look at solutions for ideas, but don't blatantly copy.

Use the Java Standard Library unless homework assignment itself uses some other libraries


Exam

The exam will be:

  • 60% written (multiple-choice questions)
  • 40% oral (2+1 questions)
  • NB! Prerequisite: must get at least 6 points for Homework


Lectures

Lecture 1

Lecture 2

Lecture 3

Lecture 4

Lecture 5

Lecture 6

Lecture 7

Lecture 8

Lecture 9

  • Slides: JavaFundamentals - Lecture 9 - Classloaders.pdf
  • Homework
    • Link: https://github.com/JavaFundamentalsZT/jf-hw-classloaders
    • Deadline: Sunday, April 2 23:59 EEST
    • General feedback:
      • Very many of you print the stacktrace before throwing a new exception or returning null.The convention in the industry is to have exception logging (print it out in some sort) at one single location at some higher part of the calling chain. In your catch sections I would either handle the exception (some logic) or re throw.
      • Make sure you close your streams! Classloaders are usually quite hot, meaning that they process a ton of files. If you happen to leak a handle each time then the leak can be substantial! Don’t forget to close them in the finally block or using the more convenient try-with-resources approach.
      • Test your submission before you send them in! Out of the 22 submissions 4 threw an exception with the supplied input files.

Lecture 10

Lecture 11

Lecture 12

Lecture 13

Lecture 14

Lecture 15