TC1017 Page One

Page One/Syllabus

Tecnológico de Monterrey, Campus Guadalajara
Computer Science Department
TC1017 Solving Problems with Programming
January to May, 2015

Course Description

Course intent within the general study plan context

Basic computing course where the objective is to develop in students the logic of structured programming that permits them to solve engineering problems using the computer. It requires previous knowledge in computer handling and basic algorithms. The learning outcome of this course is that the student can design and develop algorithms in order to solve different kinds of problems in science, engineering or multimedia problems.

Course objective

Upon completion of this course, students will be able to apply logic to generate algorithms that provide solutions to engineering problems.


Official Text:    “How to Think Like a Computer Scientist, C++ Version”, Downey, Allen B. 2012.


Partial Evaluations Final Evaluation
Topic Mastery 20
WSQ 10
Quizzes 20
Partial Exam 50
Total Partial 100
Topic Mastery 15
Quizzes 5
Partial Exam#1 * 10
Partial Exam#2 * 20
Final Project 15
Final Exam ** 30
Total Final 100

* Partial (and Final) exams note: you *must* attend on the scheduled day for the exams in your scheduled group. Rescheduling of exams must go through the official processes of the Tecnológico de Monterrey Campus Guadalajara.

** Final Exam Note: The final exam covers all material in partial 1, partial 2 and any material covered up to the final day of classes.

Topic Mastery

You are responsible for tracking and reporting to the instructor your progress on the mastery topics. I recommend a Google Spreadsheet shared with the instructor. We are currently working on a Mastery Tracking Application (developed in Django) but there is no release date yet for this.

See the section “Assignment Details” below for more information about how Mastery will be scored.

WSQ (Watch, Summarize, Question)

Outside work will include watching videos, reading material in a textbook or an article and similar activities.

Part of learning to review material in an academic style involves pausing, highlighting, note taking, summarizing and questioning the content.

The goals of the outside work is to prepare all students for the activity in the classroom. We will discuss this in detail in the group but you need to realize the outside activity is a large part of your educational process.

Topic List to be Mastered by End of Course (subject to change)

  1. Ability to create C++ file and run from command line
  2. Ability to create C++ project in IDE and run inside the IDE
  3. Create accounts: Blog, Twitter, GitHub
  4. Submit work via Blog RSS and GitHub
  5. Demonstrate use of Linux sufficient for quizzes/exams
  6. Install Linux on their own computer
  7. Use of comments in C++
  8. C++ coding conventions
  9. Basic types and their use in C++
  10. Basic output (printing) and input (text based) in C++
  11. Calling C++ functions
  12. Creating C++ functions
  13. Importing and using C++ libraries
  14. Creating your own and using C++ libraries
  15. Use of the conditional “if”
  16. Use of “else” with a conditional
  17. Use of “switch” as a conditional
  18. Nesting of conditional statements
  19. Use of loops with “while”
  20. Use of loops with “for”
  21. Use of recursion for repetitive algorithms
  22. When to use what type of repetition in a program
  23. Creation and use of vectors in C++
  24. Creation and use of arrays in C++
  25. Creation and use of strings in C++
  26. Creation and use of matrixes in C++
  27. Validated user input in C++
  28. Reading and writing of files in C++
  29. Data analysis with tools (to be determined which tool)
  30. Visualization of data with tools

This Course is Different than Others

Note that we are using an educational paradigm that is called the “Flipped Classroom” in this course. This will be a change for you in that you are responsible for reviewing any videos, reading of textbooks or other materials requested outside of classroom time. The time inside the classroom is principally dedicated to actively programming or asking questions about programming problems or theory from materials that you or your classmates did not understand.

This means that you need to arrive to the classroom ready to program. I am a big proponent of “pair-progamming” as well as “pair learning” which means I often will ask you to work in pairs at the computers. You should however ensure you have your personal computers setup with the tools we need for the course.

Important Dates

The dates of partial exams and final exams for all courses follow the general academic calendar which can be found at

Group 2 (2:30pm Tuesday/Friday) Feb 13 and March 27 (partials) and May 14 (final)

Group 3 (8:30am Monday/Thursday) Feb 12 and March 26 (partials) and May 11 (final)

Assignment Details

Assignments are flexible in that I will provide various assignments to work on that are not directly worth marks. Your grades will be based on three types of assessments: topic mastery, quizzes and exams.

Topic mastery are marked as OSU (Outstanding, Satisfactory, Unsatisfactory) with a 2/1/0 scale.  The expected level to pass the course is satisfactory (1) in each topic. A significant extra effort is required to achieve “Outstanding” in any of the topics but in order to achieve a high grade in the course you will want to aim for these. In order to achieve full points in mastery you need to have at least satisfactory on all and outstanding on ⅓ of the topics. You cannot go over the full points in mastery and all other calculations are relative to this maximum.

There is no schedule for the mastery marks but you obviously need to meet longer range goals for the total.  Some students will choose to move quickly through the topics while others will move at a slower pace. The choice is yours.

The quizzes are sometimes “pop quizzes”, planned mini-exams and levels in between.

Course Policies

Classroom Policies

  • Behaviour should be based on discipline, responsibility and respect.
  • We expect everyone to follow the code of ethics of the Tecnológico de Monterrey.
  • Everyone in this class promises to act and be bound by academic honesty.
  • Attendance is taken at the beginning of class when the bell sounds.
  • There is no forgiving attendance or late attendance, the professor simply records who is in class and who is not.
  • If a student arrives after attendance is taken, she/he may enter orderly but the absence remains.
  • The limit for absences is the equivalent to three weeks of classes. If a student passes this limit, their final grade for the course will be (EF).
  • There is no removal/justification of absences for any reason.
  • An absence therefore has other consequences beyond simply missing the activities of a class session.

Examination Policies

  • It is strictly prohibited to use mobile devices during exams, they should be turned off and stored in your backpack/bag.
  • Use of unauthorized electronic items during an exam will result in the reporting of DA (deshonestidad académica).

General Policies of the Campus

  • The use of laptops or any other computing device is prohibited unless the professor indicates/prescribes their use.
  • Food consumption is prohibited inside the classroom.
  • The student (and instructor) should leave the classroom furniture in an ordered condition.

“Sign” here

Indicate that you have read this document and are in agreement of this as our course policy for the semester. You can do that by writing a comment here with your name.

CC BY 4.0 TC1017 Page One by Ken Bauer is licensed under a Creative Commons Attribution 4.0 International License.

48 responses to “TC1017 Page One

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.