next up previous
Up: APS105S 1999 Home

APS 105S: Computer Fundamentals

Guy Lemieux

Winter 1999

General Information

APS 105S - Computer Fundamentals - is designed to give you an introduction to computer systems and their role in problem solving in science and engineering, and to provide you with the basics for studies in greater depth in subsequent years. The course consists primarily of lectures and laboratories. Major topics to be covered in the lectures include: problem solving, programming, algorithms, data structures, digital computer elements and digital computer operation. The laboratories will provide you with an opportunity to exercise concepts introduced in the lectures through a number of programming assignments using the Java programming language. Throughout, there will be an emphasis on a programming style that encourages easier understandability, debugging, and maintenance of programs.

Home Page

The home page for this course can be found at
http://www.eecg.toronto.edu/~lemieux/aps105/
The most recent versions of this handout, other handouts, and the labs, will be accessible there. Watch the home page for updates on test dates and locations, and other news for the class.

  
Instructor

Guy Lemieux
Department of Electrical and Computer Engineering
lemieux@eecg.toronto.edu
http://www.eecg.toronto.edu/~lemieux

Office Hours

It works best to get me after lectures or make an appointment by sending me email. You should also see the Getting Help section below.

Lectures

Monday Wednesday Friday
10-11 10-11 11-12
GB119 GB120 SF1105

  
Labs and Lab Assignments

Monday Tuesday
P0101 P0102
4-6 10-12
SF1012/1106 SF1012/1106

The schedule above shows the times for the lab sections. While lab access and use are possible any time, you must regularly attend your own scheduled lab session to get your lab marked. We will not accept your assignment unless it is your day. Teaching assistants will be available to answer any questions and offer help at those sessions, and will assign you a grade based on your progress in each lab session. If you have the assignment working before the lab session, then you only need to attend long enough to get a grade assigned.

The first lab will not be graded. The remaining labs will be graded out of of 5, with two components to the mark: functionality (3 marks) and documentation/style (2 marks). Full marks for functionality are given if the program works correctly, less if not. Full marks for documentation are given if variable names are chosen well, and the code is properly commented and indented. Later in the course, good style will include proper design and modularization of your code.

Most lab assignments consist of programming assignments using the Java programming language. A handout describing each assignment will be available on the home page by the week prior to the beginning of the assignment. The lab assignments will take a substantial amount of your time. It is important to start as early as possible on your assignments and to avoid procrastination. Don't start a lab assignment during the lab in which it's due.

Although the assignments do not contribute significantly to your final grade, you should be sure to finish each assignment. The lab exam, held near the end of the term, contributes substantially to your grade. It is unlikely you will be able to score well on the lab exam if you do not independently complete all the assignments.

There will also be a Lab Project during the last several weeks. This is an opportunity for you to be creative and implement something interesting. Projects will be decided in consultation with the TAs. Project demonstrations will occur during the last lab period of the term.

The Lab schedule  will be as follows this term:

Assignment: 1 2 3 4 5 6
P0101 Jan 11 Jan 18 Jan 25 Feb 1 Feb 8 Feb 22
P0102 Jan 12 Jan 19 Jan 26 Feb 2 Feb 9 Feb 23
Assignment: 7 8 Lab Exam Project Project Demo
P0101 Mar 1 Mar 8 Mar 15 Mar 22 Mar 29 Apr 5
P0102 Mar 2 Mar 9 Mar 16 Mar 23 Mar 30 Apr 6

  
Tutorials

Tutorials are scheduled for Friday from 4-5pm in room SF1105. However, they will be held only when necessary, as announced in class, or by request. No new material will be presented in the tutorial sessions. They are used to deal with difficulties experienced in understanding key concepts or programming.

  
Textbooks

The recommended textbook for this course is:

Cay S. Horstmann, Computing Concepts with Java Essentials, Wiley, 1998.
available at the University of Toronto bookstore. It may also be available at the Engineering Store, and/or Unitext.

All students should go through the Getting Started with UNIX guide to be able to use the Engineering Computing Facility computers in the laboratory. This is available online at http://www.ecf.toronto.edu/ecf/docs/. There are also other useful documents there.

In addition to the above books, every student in the course is expected to understand a number of basic concepts in computer hardware, computer software and computer science, which will be covered in the lectures, but will not necessarily be found in the textbook.

  
Grading

In addition to the lab work, there will be two quizzes, a lab exam, and a final exam. The final exam will be comprehensive, covering all material. The lab exam will involve writing java programs on-the-spot in the lab. The quizzes will be held during the tutorial period and test your grasp of the course material. The tests are on the following days:

What? When? Where?
Quiz 1 January 29, 4-5 TBA
Quiz 2 March 12, 4-5 TBA
Lab Exam March 15-16 In-lab
The composition of the final grade is as follows:
Lab Assignments 5%
Lab Project 10%
Lab Exam 15%
Quizzes 20%
Final Exam 50%
No calculators and no aids are allowed for the final exam or quizzes.

  
Getting Help

If you would like clarifications or explanations of laboratory materials, the first sources of help are the Teaching Assistants (TAs) in the laboratory. Sending email to one of the TAs should also get you a response fairly quickly. Otherwise, feel free to get in touch with the instructor.

If you run into some code that does not work, you have tried everything you know, and you are really stuck, sending mail to someone saying ``My program does not work'' will not elicit much sympathy. You should narrow down the problem by trying this:

Exercises-Practice! Practice!

Practice is the only way to learn programming. If you do only the assigned laboratory exercises of this course, you will not develop your programming skills adequately to earn a decent mark in this course nor to sustain you in the requirements of the second year computing courses. There are many programming exercises in the textbook.


next up previous
Up: APS105S 1999 Home
Guy G. Lemieux
1999-01-19