Programación de Computadores - Universidad Nacional de Colombia - 2018-III
Important Links
Syllabus
Course’s credits: 3 (one credit equals 3 hours of work a week)
Instructor: Elkin Cruz, elacruzca@unal.edu.co
Office Hours: Wednesday 14:00-16:00, Friday 9:00-11:00. Lab 207 - Aulas de Ingeniería[1]
Webpage: here (slides, contents and announcements)
Prerequisites: (high-)school maths
How is the class organized
The class is (highly) practical. Learning to code is not easy, it will require many hours of individual and, often, lonely work!
There will be homework every week, the homework is mandatory but it will no be graded. I assume you will do it diligently each week. I will take every week some exercises from the homework and I will quiz you on them! All quizzes will be on the second class of the week (either Wednesday or Thursday), please arrive on time.
There will be three (3) exams during the semester, they are mandatory and represent 50% of the final grade. All students of all courses of “Intro To Programming” take the exams on the same week.
All students must present at the end of the semester (on the last week of class) a class project. The topic of the project will be defined at least 5 weeks in advance.
Content (Goals)
The course is divided into three blocks (and one small kickstart block)
- Structure of class, presentation, Motivation, Examples of Programming in the wild, and some history of programming languages. (about week and a half)
- Getting C++, how to compile, how to run executables, logic and sets (maths),
if
statement, loops (while
andfor
statements), and functions. (about 6 weeks) - Recursive functions,
do-while
loop, input from the user, passing by value and reference, and arrays. (about 4 weeks) - Pointers (the messy truth behind arrays),
new
keyword, string operations, matrices (arrays of arrays), structures, and some functions fromstd
libraries.
Material
We will focus on learning the basics of C. So, you will need to install a compiler for
C (a tool to work with C). We will work with a tool called "Code::Blocks
Dev-C"[2]. You can download it from: http://www.codeblocks.org/downloads/26
(recommended version to download: mingw-setup
).
We will follow the book "The Little CPPler". You can find it in the webpage of the class, or in the following link:
Optionally, an additional book to learn some more mathematical topics related to computing can be found at:
Evaluation of knowledge from content (exams)
Each of the three blocks of the course ends with an exam. The exam will be on an online platform. Registration steps will be given before the first exam.
The topics to appear on each exam are[3]:
- Programming Languages basics (history and types), logic and sets (maths), simple
programs in C++, and
if
statement. - Recursive functions, and loops (
while
,for
, anddo-while
). - Arrays, matrices, and strings.
Grades
- 50% Exams (one per block, divided in 15%, 15% and 20%)
- 20% Quizzes and Homework (at least 8)
- 30% Class Project (due to the second last week of class)
- half of Class Project’s grade corresponds to the implementation (code)
- half of Class Project’s grade corresponds to a quiz on the implementation (on the code)
Code of Conduct
You (the student) must conform to the University’s Regulation. If you incur into any kind of plagiarism (that includes quizzes) or misconduct, your grade for the assignment (whichever it is) will be zero!
Repeated infractions may be a causal to be expeled from the university!
Please, take a closer look at “Concepto 2 de 2015 Oficina Jurídica Nacional”[4]
Please send me an email before you arrive to the lab. I may not be present if I don’t receive an email. ↩
Code::Blocks is an IDE, it is a tool that combines several other tools to make your life easier. An IDE typically is comprised of a compiler (or interpreter), a text editor, and a debug tool. ↩
Small disclosure, the topics to appear on each exam may change due to changes on the schedule or any unintended problem that may appear on any of the other groups of intro to programming. Any change in the exams’ topics will be notified at least a week in advance. ↩
http://www.legal.unal.edu.co/sisjurun/normas/Norma1.jsp?i=87497 ↩