Courses taught at UTEP

Fall 2004



MIT 5310 - Fundamentals of Computers



Objectives:

The objective of this course is to provide the students with a general understanding of computer science, ranging from computer architecture, data representation, to problem solving and an introduction to operations research, in a breadth-first manner. At the end of the semester, all successful students will be skilled enough to be able to understand essential issues arising in computer science, and therefore to make appropriate decisions accordingly in their future career in any field involving computer science.

Another objective of this course lies more in the way students will be asked to work. They will be given assignments that will require them to go and look for information and / or solving techniques on their own. This way, students will become more autonomous.

As a last point to mention about this course, students will have to implement concepts presented in class. This is to help them understand the issues arising in computer science (such as algorithm performance), by facing them from a practical point of view. The programming language will be Java. The objective is not at all to make the course a Java course. Java will only constitute a practical mean to understand better what computer science is.

Syllabus: here



Important dates:

  • October 7: midterm #1 (take-home) due on October 14, download available here
  • November 4: midterm #2 (take-home)due on November 11, download available here
  • November 26: Thanksgiving holiday, no class
  • December 9: final exam


    Course progress:

  • week #1: introduction to computers (quick notes from the class(*) are available here)
          + 1st reading assignment given: on data representation

  • week #2: introduction to algorithms and problem-solving
          (quick notes from the class(*) are available here)
          + intro. to data representation
          + series of exercises on algorithms (not to be turned in)

  • week #3: algorithm performance
          (quick notes from the class(*) are available here)
          1st quiz on 1st and 2nd lectures
          introduction to algorithm analysis (class notes, see week #2)
          + 1st programming assignment: small programming problems to get into Java here
          + programming tips

  • week #4: algorithm performance (cont'd)
          algorithm analysis: lecture cont'd (quick notes from the class(*) are available here)
          + exercises on algorithm analysis (not to be turned in)

  • week #5: algorithm performance (cont'd)
          algorithm analysis: lecture cont'd (quick notes from the class(*) are available here)
          + study of a specific problem + search algorithms
          + 2nd programming assignment: small team prog. project on performance analysis (here),
          to be turned in on October 28; teams are as follows:

    Team #1 Team #2 Team #3
    Rebattu Gregory Saldivar Leonel Portillo Ricardo
    Armendariz Tomas Sterling David     
    Olivas Haydee Rodriguez Edgar      (Muņoz Maria)
    Babers Charles Lopez Laura Haque Ehsanul
    Team #4 Team #5
    Tungjatooronrusamee Prayook Galdo Jorge
    Tonthat Nam Williams Simeon
    Aggarwal Sandeep Sigala Omar
    Ornelas Tomas
  • week #6: review of algorithm performance
          correction of quizzes
          questions about the programming assignment
          + 2nd reading assignment: on software engineering

  • week #6: MID-TERM #1 -- take-home

  • week #7: data structures: arrays and linked-lists, class notes available here
          + 3rd programming assignment: on data structures (here): due on November 17

  • week #8: data structures: queues and stacks

  • week #9: data structures: trees

  • week #10: midterm #2: take-home available here
          + introduction to artificial intelligence (slides avalaible here)

  • week #11: artificial intelligence: problem-solving

  • week #12: evaluations
          + quiz on problem-solving in AI (available here)
          + artificial intelligence: a few words about robots and path finding
          + surprise :-)

  • week #13:no class, Thanksgiving holiday
          assignment: take some rest :-)

  • week #14: review before the final: come with questions (almost last chance to ask)

  • week #15: final examination: Thursday December, 9, from 7:00pm to 8:45pm

    (*) notes from the class do not constitute the course in its entirety, but only a guide to revise the topics presented in class


    Class material:

  • Lectures: intro, algorithms (including algorithm analysis), data structures, a few notes about software engineering (file in progress) here

  • Exercises: algorithms, complexity,

  • Programming assignments: programming tips, 1st assignment: small problems, 2nd assignment: algorithm analysis, 3rd assignment: data structures,

  • Mid-terms: #1 (solution will be given in class on November 4 -- right after the second mid-term), #2

  • Quizzes: quiz #1 (solution in the class notes), quiz #2, quiz #3 (solutions given in class), quiz #4



    Useful links and references books:

  • Data representation: here

  • Introduction to computers:

  • Algorithms: 3

  • Algorithm analysis: 1, 2, 3, 4

  • Software engineering: 1, 2, 3,

  • Data structures: 1, 2,

  • Problem-solving / Artificial intelligence / Operations research: 1, 2, 3

  • Misc.: Dictionary of algorithms and data structures here

    What to revise for the final:

  • Basic computer architecture
  • Algorithms: definition and methods to find algorithms
  • Reliability of computers: e.g., problems with real numbers representation
  • Algorithm analysis: complexity
  • Data structures: arrays, linked-lists, queues, stacks, trees
  • Software engineering: the life cycle
  • Artificial intelligence: what this is (cf. intro slides), problem-solving, traditional problems



    Classes of Spring 2004: click here
    Classes of Fall 2003: click here


    Martine Ceberio
    Last modified: Wed Jan 19 17:00:06 MST 2005