EMT1111: Logic and Problem Solving
General Information
Course CoordinatorProf. Benito Mendoza Office: V620 Office Hours : Wednesday 12:00- 1:00, Thursdays 10:00-11:00, or by appointment. Email : bmendoza@citytech.cuny.edu Website: https://openlab.citytech.cuny.edu/members/bmendoza/ InstructorsProf. Robert Armstrong Office: V623 Office Hours: Monday(4:00-6:00), Thursday (12:00-1:00), Friday (1:00-2:00) eMail: rarmstrong@citytech.cuny.edu Website: https://openlab.citytech.cuny.edu/members/rarmstrong/ Prof. Marius Constantin Office: V627 Office Hours: Friday (12:00-1:00) eMail: mconstantin@citytech.cuny.edu Text Books (Free online materials):
|
Course Overview
This course introduces the foundations of problem solving and computer programming as it is applied to computer engineering technology. It provides a basic understanding of programming techniques, logic, and number systems through hands-on laboratory exercises in a modern programming language. Students will learn Python to understand basic programming concepts and AppInventor to create fun and useful applications (Apps) for Android based phones and devices. The course encourages students to cooperate with others and use their imagination, creativity, and problem solving skills to develop a successful final project.
Course Designation: Required for bachelor in Computer Engineering Technology
Course Credits: 1
Grading Policy
- Labs : 20%
- Quizzes : 20%
- Mid term : 20%
- Final Exam : 20%
- Final Project : 20%
- Total :100%
- A – 93-100,
- A- – 90-92.9,
- B+ – 87-89.9,
- B – 83-86.9,
- B- – 80-82.9
- C+ – 77-79.9,
- C – 70-76.9,
- D – 60-69.9,
- F – <=59.90
Quizzes
There will quizzes assigned based on the material covered during the lecture as well as the assigned readings. These quizzes will be taken online using Blackboard and you can take them anytime before the deadline.
Labs
There will be different labs assigned where you will apply the lessons learned in class. When finished, each lab must be posted on your OpenLab portfolio. The student’s portfolio should contain a tab named EMT1111. Under that tab, a page for each lab should be created. Each page must contain the following items: a description of the program/App, a picture of the program/App running, the source code (Python) or the blocks diagram (AppInventor). You must show your program/App running to your professor to receive full credit. Late labs will not be accepted and labs will be graded individually.
Midterm
A midterm exam will be administered to test the knowledge acquired up to half of the semester. Students are required to take exams the day and time they are scheduled. There is no make-up exam unless you have a valid reason according to CityTech’s policy.
Project
There will be one project where you will develop a program or App using the skills learned in the course. For the project you will work in groups and the requirements are similar as for labs: a description of the program/App, a picture of the program/App running, the source code (Python) or the blocks diagram (AppInventor). You must show your project program/App running to your professor to receive full credit.
Final Exam
There will be one final examination at the end of the semester. This is a comprehensive exam covering material from the entire semester.
Homework, Quizzes, Midterm, and Final Examination Appointment
There will be no make-up of missed homework, quizzes, midterm, and final examination unless you have a valid reason according to CityTech’s policy.
Attendance
Under CUNY mandate, attendance for each class is required and attendance will be taken at each class meeting. You are allowed a maximum of 3 absences. If you exceed that number, you may receive a WU grade. If for any reason you miss a class, it is your responsibility to review all the material covered in the class and to complete the corresponding reading and programming assignments. Excessive lateness (more than 15 minutes) will be considered to be an absence from that class meeting.
In-class Expected Behavior
Students should show respect to each other and to the professor. The use of phones for talking and texting during the class is prohibited, except when you are programming or testing a program (App) directly into your phone. Please make sure you put your phone on silent mode or to turn it off. Please refrain from accessing sites such as Facebook, Twitter, YouTube, or playing games while in class. Use your computer to work on the class projects and tutorials, to find information that allows you to either participate on class or to understand the concepts studied in class.
Topics
- Week 1: Syllabus, objectives, and policies. The class website, Blackboard, basic computer skills, get an OpenLab account, create your portfolio, more details about computer engineering technology
- Week 2: Computers, Hardware, Software, Bits and Bytes, Data (storing and transmitting), Programming Languages, and Computer Networks.
- Week 3: Programs, Algorithms, The Programming Process, Variables, Statements and Expressions, Data types, Operators
- Week 4: Boolean Logic, Boolean expressions, Logical operators, If and if/else statements, Loops
- Week 5: Functions, Built in functions, User defined functions, Abstraction, Reusability, Parameters and arguments, Returning values, Variables Scope.
- Week 6: Strings, Traversing strings, String slices, Lists, Traversing a list, Lists operations, Lists slices
- Week 7: Midterm exam
- Week 8: App Inventor Setup, What is an App, Event driven programming, Components and properties, Events and event handlers, Calling built-in function blocks, Reference Documentation site
- Week 9: Variables, Parameters, Operators, Drawing Canvases, Working with images and sound, Algorithms
- Week 10: Software engineering principles, Comments and documentation, Timer Events, Canvases and Image Sprites, Moving Objects over Time, Drag and Touch Events. Project Selection
- Week 11: Boolean expressions, Relational operators, If and If/else statement
- Week 12: Procedures and functions, Lists of data, Iterating a list with an index, Lists of lists
- Week 13: Loops, While, For Each, For Range, Databases, TinyDB, TinyWebDB
- Week 14: Project Presentation
- Week 15: Final Exam