Skip to content

Iti1120 Assignment

Plagarism and Academic Fraud:Plagiarism or any other type of academic fraud will not be tolerated at uOttawa. The penalties are explained here. Visit the academic writing centre for free tutorials and writing support.

Not in first year?Click here for more general info and advice for SEG courses at the University of Ottawa.

Introduction to Linear Algebra

Intro to Linear Algebra (MAT 1341) starts off as one of the most difficult courses in 1st year. In MAT 1341 you will be learning about complex numbers, vector and scalar product, projections, vector spaces, linear independence, function spaces, solutions to systems of linear equations, matrix algebra, determinants, eigenvalues, eigenvectors, projections and linear transformations. The course can move very quickly since it has a lot of material to cover.

For the mathematically inclined, the first half of the course will offer a good challenge. For those who struggle with math, you may find it quite difficult. However the second part of the course is much easier. If you are struggling with the first midterm's material, we encourage you to keep working at it, as it will get easier as the semester progresses. The assignments can be very challenging but offer good practice for the midterms/final. We suggest to head down to the math help centre located in the basement of Marion and work on the assignments there. You will be able to ask questions to the tutors as well as to other fellow classmates.

Introduction to Computing I

Introduction to Computing I (ITI 1120), for most people this will be their first programming experience. This course uses the Python programming language. You will be learning about variable types, classes, conditions, parameters, methods, loops, recursion, arrays, 2d arrays and a small introduction to object oriented programming. This class at first seems simple and straightforward, however for those who have relatively no previous coding experience, it can prove to be quite challenging.

It's no lie that when learning how to code you MUST practice. If you don't understand a concept presented in class, there is no better way to clarify it for yourself than to jump in and play around with some code. However if you're still having difficulty understanding a concept or completing an assignment don't be afraid to ask someone for help. You can ask a TA, your professor, a friend or even us here at SESA. SESA also offers academic study sessions for this course.

If you want to prepare, practice or just get ahead of the game check out the following learn-to-code sites: buckysroom.com, codecademy.com, codingbat.com,

Introduction to Computing II

Introduction to Computing II(ITI 1121) starts off where Introduction to Computing I (ITI 1120) ended. Unlike ITI 1120, ITI 1121 uses Java as the main programming language instead of Python. No need to panic, Introduction to Computing II starts off with a quick introduction of Java followed by a review of object-oriented programming (OOP) then continues on to Abstraction principles, and finally finishes off with an introduction to data structures such as lists, stacks, queues, binary search trees, and processing of data structures. ITI 1121 builds off of the principles that you learned in ITI 1120 and teaches you more advanced principles to further develop your programming knowledge.

Also the assignments can be done in teams of two. Since the assignments are designed to be done in teams, they can be quite difficult and time consuming. The assignments get exponentially more time consuming and more difficult, make time for them and start earlier than you think you should! We suggest that you do NOT leave it to the last minute as you WILL have a hard time to complete it on time. Again if you need help with an assignment or understanding a concept from class, don't hesitate to ask a TA, your professor, a friend or even us here at SESA.

We cannot emphasize enough that this course IS difficult, and it WILL take a lot of time and effort, do not underestimate this course, it is a prerequisite for other courses later on so it is important that you understand the content.

Here are some useful links to help you make the transition from Python to Java:
Java vs Python
A comparison of the syntax of Python and Java
From Python to Java
Comparing Python Object-Oriented Code with Java

Engineering Mechanics

Engineering mechanics requires a very technical mindset and a lot of patience as well to solve problems. One mistake in any calculation will throw the answer off completely and do not expect all professors to be lenient in giving part marks. To be fair, in the real world, that one small mistake can result in severe consequences (bridges/structures collapsing). We advise you to double or even triple check your answers before finishing midterms/exams. A solutions manual will definitely come in handy for assignments (most questions will be assigned from the textbook). A little bit of googling may even help you find some solutions online ;). Make sure to understand all questions thoroughly though. Your exams/midterms will most likely consist of a few long answer questions combining all the concepts learnt throughout the course, so make sure not to miss out on any topics.

Physics 1

We highly recommend that you attend all classes for this course. Many practice problems and important examples will be discussed during lectures. From our experience, Engineering Physics is significantly harder than the type of physics learnt throughout highschool. Just memorizing examples will not fly by in this course. You will have to read up and understand the concepts and theory behind all questions. Doing well in this class will take up a significant amount of your study time so do not be afraid to consult the professor for extra help after class.

Watch out for weekly assignments and quizzes each week which can be time consuming, don't leave them to the last minute. Some profs offer bonus points, so keep a look out for them! If you’re having trouble, there’s a Physics help center in Tabaret. To get the most out of your visit to the physics center, make sure that you’ve tried solving the problem (aka don’t bring your blank assignment expecting people to help you fill in the blanks), and pinpoint where exactly what you don't understand of where you got stuck.

Calculus I

The best advice we can give for Calculus I is practice, practice, practice. Don’t fall behind on the homework questions, some of this material may start off as high school calculus but as new material is introduced the course gets significantly harder to handle if you don't start off with a good work ethic. Do ALL the homework questions as the material is covered in class and try to tackle extra problems if you have time. A lot of questions are going to be assigned so last minute crunching will not work with this course. Wolframalpha will be extra handy especially if you are stuck on what steps to do when integrating. The majority of your study hours will be spent on this course so make sure to stay organized and not fall behind in class.

Calculus II

Things become even more difficult with Calculus II. If you did poorly in Calculus I, prepare yourself for the worst in Calculus II. If you did well in Calculus I, still expect the content to be extremely tedious and difficult. Once again, practice, practice, practice. You’ll be diving into new concepts such as power series, directional derivatives, and eulers method for differential equations. Make sure to show up to all classes and solve problems using the specific technique taught by the professor. Your answer may be correct but there’s a possibility you will lose marks for not following their method.

Note:
Exams and tests will generally include one question from each section covered, so it's important to understand the material and be able to solve the math problems related to them. Online assignments are a great way to improve your grades, so don't skip out on them!
DGD's are usually mandatory for both these classes, they will either take attendance or have pop quizzes, so go to the class from start to finish to be sure you won't miss out.

Digital Systems

We will admit this is one of the easier courses for the semester but that does not mean you should take it lightly. Logic functions may seem simple at first but things will become more complex as you start building sequential circuits. Expect to be stuck waiting in lab tutorials for an extended period of time. The TAs will be scarce and even if you have completed your objectives, you will spend the majority of time waiting for the TAs to come over to verify your results. A solution to this situation would be to complete the labs prior to the lab on one of the SITE computers and show the TAs when the lab starts. Very little theory is required in this course, just finish all questions and assignments assigned and you should be able to pass with a decent grade. The solutions manual will be very handy to have in the course as well.

Discrete Mathematics for Computing

If you have taken discrete mathematics in highschool this course should be fairly easy for you. However, most people find discrete to be one of the more difficult first year courses. It begins simple with truth tables and propositional logic and then becomes more difficult when 'proofs' come into play. Students find 'proofs' difficult because this will be the first time for most of you to prove a mathematical statement formally - for example: prove that two odd numbers always add to an even number. The latter statement is extremely simple but chances are that if you havent taken discrete you would know how to answer that question as fast as you should.

Answer: An odd number can be written as '2k + 1' where k is an arbitrary integer. Then for arbitrary integers m and n, (2m + 1) + (2n + 1) = 2(m + n + 1), which is even divisible by two and therefore even.

This course is an introduction to the math that is most commonly used in computing. You will be using and developing from these basics in many courses during your undergrad. If you need help see your prof, a TA, a friend or a SESA member.

Principles of Chemistry

Principles of Chemistry (CHM 1311) Consists mostly of a review from High school. In CHM 1311 you will be learning about: chemical bonding, molecular geometry, chemical equations, matter, solutions, redox reactions, electrochemistry, kinetics and equilibrium, ionic equilibria and acids and bases. Principles of Chemistry seems to aim at being a review from high school while increasing the difficulty.

CHM 1311 consists of two parts: a lab and a lecture. Every week students will have a 3 hour lab along with a lab report, 3 hours of lectures and an assignment on the infamous Mastering Chemistry. Principles of Chemistry is probably the most time consuming course you will encounter in your first year. While the midterms/final can be quite difficult, doing good on the assignments, lab reports and in class participation marks can give you a much needed grade boost. We recommend working on the homework questions with some friends, it will make them much easier, less time consuming and maybe a little fun. For some chemistry can be quite difficult, however luckily there is a lot of help available if your having a hard time. Make sure to get help as soon as possible before you fall too far behind.

Technical Report Writing

The focal point of this course is to teach you how to structure and write technical reports. Your final exam will be replaced by a final report in which you will demonstrate all the skills you have learned over the course of the semester. This course will be easy if you attend your lectures and DGDs, the profs will give examples in class as to their expectations, so if you don't show up, you will miss out on some good tips! If you’re stuck while writing your report, don’t fret because there are tons of resources to help you out: check out the library (you can book a researching session with the librarian), make an appointment at the Academic Writing Help Center and as always ask questions in class to your prof or TA. This course will be very helpful for writing your CO-OP report and techical writing during your CO-OP placement.

Technical Report Writing

The focal point of this course is to teach you how to structure and write technical reports. Your final exam will be replaced by a final report in which you will demonstrate all the skills you have learned over the course of the semester. This course will be easy if you attend your lectures and DGDs, the profs will give examples in class as to their expectations, so if you don;t show up, you will miss out on some good tips! If you’re stuck while writing your report, don’t fret because there are tons of resources to help you out: check out the library (you can book a researching session with the librarian), make an appointment at the Academic Writing Help Center and as always ask questions in class to your prof or TA. This course will be very helpful for writing your CO-OP report and techical writing during your CO-OP placement.

General Advice

If you’re having trouble with concepts and course material, you can visit your prof/TAs during office hours. They’re here for you and ready to help!

Actually listen in lectures. This seems like a no brainer but listening in class and taking notes can save you hours of reading on your own time.

You’ve heard this a million times now (all you procrastinators) and you’ll hear it again: it really pays to start early. University courses place a lot of weight on exams so you don't want to start studying the night before a midterm worth 30% of your overall grade. This being said the course syllabus will often show a breakdown of how your final grade will be determined (as well as important test dates). Use this to your advantage!

University life should not only be about studying and trying to get good grades. Get involved! Tons of options: volunteering, work-study, clubs, hackathons, conferences, research, school events, international exchange... the list is endless. Remember, balance is important.

You’re not in high school anymore, and you’re no longer confined by the limitations that high schools have placed around you. Keep that in mind as you get involved and explore your interests.

There are SO many resources on campus (academic help centres, etc), and not all of them are always used. Make sure to check them out and use them!

If you’re worried about failing a class, talk to your prof and undergrad office. Undergrad office peeps are super nice and will help you guys (a lot), because we don’t want you dropped from the program. But don't put this off, the undergrad office works with defined deadlines, be responsible and look it up ahead of time.

Group studying sessions are amazing (if you dont get distracted)!!


Fall 2014, ITI 1120C Introduction to Computing I


Instructor:  Diana Inkpen

Office: SITE 5015
E-mail: diana@site.uottawa.ca   Telephone: 562-5800 ext. 6711

Meeting Times and Locations

Lectures:   See InfoWeb
Office Hours:
Fri 2:30pm-3:30pm, in SITE 5015, or by email appointment. Special office hours before the exam Dec 9, 4-5pm and Dec 10 3-4pm.

Overview: Problem solving and algorithm design. Basic principles of software engineering: structure decomposition, documentation, testing and debugging. Variable types, expressions and assignment.Conditional and iterative control structures. Modules and parameter passing.Recursion. Fundamental data structures: arrays, strings, matrices, records. Introduction to objects.    (3 hours lecture, 3 hours lab per week)

Announcements

  • The final marks were posted in the Blackboard Learn. If you need to view your exam, you can do it on Jan 5, 1:30-3:30pm in SITE 5015.
  • Exam preparation material is posted in the Blackboard Learn.
  • The mentor is available if you have questions before the exam. He is offering a free review session on Mon, Dec 8, 1-4pm in SITE 2060. You can email him at engineering.mentor@uottawa.ca
  • The midterm marks are posted in the Blackboard Learn. The solution will be discussed in class. If you want to see your midterm (and the solution again), stop by for office hours. Additional office hour time: Fri Nov 7, 5:30pm-6:15pm, and Tue Nov 11, 1:30-2:20pm
  • The midterm will be on Fri Oct 31, in class.
  • There is a change of classroom. From now on the lectures will be in CBY C03. (The change to a bigger classroom was done in order to allow more students to register.)
  • A mentor is available for this class, for students who might need additional help. His name is Alexander Dale. Email: adale031@uottawa.ca He offers One-on-One metings (SITE 2040) Tue 5:30pm to 7pm and Thu 10am to 11:30am, as well as Group Study sessions Wed 10am to 11:30am (SITE 2040) and Thu 2:30pm to 4pm (CBY B02).
  • Old exam from 2004. Can also be used as example of challenge exam.
  • The first lecture was Friday Sept 5. The first labs were the week of Sept 8 (there were no labs Sept 2-5).
  • Things to do right away

Evaluation  Students will be evaluated on:

  • Five programming assignments (5% each, that is 25% for all).
  • Midterm exam (20%)   
  • Final exam (50%)
  • Lab exercises and participation (5%) (there are 11 labs, 0.5% each lab, therefore one lab can be missed without penalty).  
  • There will be bonus points for class participation  
Note: The weighted average of your midterm and final exam has to be at least 50% in order to pass the course.
Course Policies:
    Plagiarism 
    Missed assignments; absence from the midterm or final examination
    Class attendance is mandatory. As per academic regulations, students who do not attend 80% of the class will not be allowed to write the final examinations.
    All components of the course (assignments, etc.) must be fulfilled otherwise students may receive an INC as a final mark (equivalent to an F).

Note: The assignments will be submitted electronically through Virtual Campus (Blackboard Learn). No late assignments are accepted. The assignment descriptions will be available in the Blackboard Learn.

Timetable

  • Practice assignment 0 
  • Assignment 1, is posted in the Blackboard Learn, due Sept 28 at 11:59pm
  • Assignment 2, is posted in the Blackboard Learn, due Oct 12 at 11:59pm
  • Assignment 3, is posted in the Blackboard Learn, due Oct 26, extended till Oct 28, at 11:59pm.
  • Midterm - Friday, Oct 31, 4pm-5:30pm, in class
  • Assignment 4
  • Assignment 5
  • Final exam  (during exam period)

Software:
     The Java 7 Standard Edition, Java Development Kit (JDK).  The “Dr. Java” development environment. 
     How to work on your own computer.


Course notes (required)

The course notes are available for download here. Please print them and bring them with you at every class. 
Here is an exercize book that you can use to write solutions to exercises discussed in class.

More lecture notes
Preliminaries
Learning objectives
Java code for the algorithm for avearge of 3 numbers Average1.javaAverage2.javaAverage3.java
Algorithm for area on a circle and Java code CircleArea.javaCircleArea1.java
Algorithm and Java code for for MarkResults example
Java code for testing if a character is upper case using a boolean expression
Movie tickets Tickets1.javaTickets2.javaTickets3.java
Java code for testing if two numbers are equal using a method that returns a boolean value
LeapYear0.javaLeapYear1.javaLeapYear2.javaLeapYear3.java
Maximum of 3 numbers. Nested ifs: max3nested.java. Consecutive ifs: max3.java
Loop.javaSumProd.javaFactorial.javaFactorial1.javaLoopDiv.javaGenerateRandomNumbers.java
PrimeNumbers.javaMultiplicationTable.java
MethodsQuiz1.javaMethodsQuiz2.javaMethodsQuiz3.java
SwapInArray.javaSameArray.java
SumArray.javaSumArrayExceeds.javaCountInArray.javaFindInArray.javaFindInArrayPosition.javaMaxInArray.javaCheckDuplicates.javaCreateArray.java
SumArray_rec.javaSumProd_rec.javaFactorial_rec.javaRecursion_examples.java
Section 10 Student.java   StudentDriverClass.java
Section 11 Student.java   StudentDriverClass.java
Fraction.javaFractionsDriverClass.java

Solutions to examples from lecture notes discussed in class (to be posted as we go):
Section 1Section 2Section 3Section 4Section 5Section 6Section 7Section 8Section 9Section 10Section 11

(The lecture notes are in pdf format, you can read them with Acrobat Reader)


Lab notes   The lab notes will be posted in the Virtual Campus (Blackboard Learn). Lab 1 is here.    
More about labs    
Read the Lab Manual: here, and instructions about how to submit the assignments here.

Teaching assistants - Office hours
Fadi Abu Sheikha, fabus102@uottawa.ca, Mon 11am-12 in SITE 3015
Diman Ghazi, dghaz038@uottawa.ca, Wed 2pm-3pm in SITE 5116
Layth Ali Al-Ani, lalan100@uottawa.ca, Thu 10-11am in SITE 4037
Debotri Sarker, dsark007@uottawa.ca, Fri 6:30pm-7:30pm in SITE 4023

Lab times and locations - see Registraton Navigator to find your lab section.

Textbook: (required)

The textbook will be available at the Agora Bookstore, not at the campus bookstore (because Agora is operated by the Student Federation of the University of Ottawa), at , near the corner of Waller.  Click here for map to the Agora Bookstore.   You can also buy online.
This is a customized textbook for this course, with only the necessary chapters from a Java book: Computer Science - custom publication University of Ottawa (ISBN 1256189146), based on Introduction to Java Programming,” by Y.D. Liang. (cost approx. $60)
If you already have another Java book, you can use it.

Other references (optional)

o       “A First Book of Java,” by G. Bronson
o       “On To Java” 3rd Edition by P. H. Winston and .   On-line version available at http://www.ai.mit.edu/people/phw/OnToJava/
o       "An Introduction to Computer Science Using Java", by S. N. Kamin, M. D. Mickunas, and E. M. Reingold.
o   "Java Programming:  From Problem Analysis to Program Design, 2nd Edition" by D.S. Malik.   
o       Official Java documentation for library classes (the "application programmers' interface" – API)
o       Sun's Java tutorial
o       Introduction to Programming Using Java (another online textbook)
o       Some more online tutorials

Useful links