CMPE-CMSE 107 Foundations of Computer-Software Engineering

Announcement: LABS will start on 21st of March

Instructors

  • Asst. Prof. Dr. Cem Ergün      E-mail: cem.ergun@emu.edu.tr,  Office: CMPE108  Group 1
  • Assoc. Prof. Dr. Adnan Acan E-mail: adnan.acan@emu.edu.tr,  Office: CMPE110  Group 2
  • John Olafia E-mail: john.olafia@emu.edu.tr,  Office: CMPE104  Group 3

Catalog description:

  • Design of computer algorithms with pseudo-code to solve problems, analyze engineering related problems using computer. 
  • Basic elements of a high level computer programming language: Data types, constants and variables, arithmetic and logical operators and expressions. 
  • Fundamental components of Python programming language: Storing and manipulating user-input data, design and use of selection structures, design and use of repetition structures, lists and other data structures, functions, modular designs, dictionaries and sets, file input/output.

Textbook(s):
  • Charles Dierbach, Computer Science using Python: A Computational Problem Solving Focus, Wiley,  ISBN 978-0-470-55515-6
Indicative basic reading list:
  • Eric Matthes, Python Crash Course: A Hands-on Project-based Introduction to Programming,  ISBN-10: 1-59327-603-6

Brief list of topics to be covered:

Week 1A closer look at a computer system: Basic software and hardware components.
Week 2-3Introduction to problem solving techniques, Algorithms and  Pseudo Code
Week 4Introduction to Python programming language: basic data types, constants and variables, basic operators and expressions.
Week 5Data and Expressions: Writing code to store and manipulate user-input data.
Week 6-7Control and repetition structures, Lists and List comprehensions
Weeks 8-9 Mid-Term Examination
Week 10Functions.
Week 11Modular Designs Dictionaries and Sets
Weeks 12 Modular Cont.
Weeks 13 File Input/Output

Laboratory  

  • Weeks 1, 2         No Lab
  • Week 3: LAB 1  Introduction to Python Programming Environment/Numbers and Variable Assignment
  • Week 4: LAB 2  Strings and Printing formatting 
  • Week 5: LAB 3  Sequential code structure in Python Programming
  • Week 6: LAB 4  Selective code structure in Python Programming
  • Week 7: LAB 5  Repetitive code structure in Python Programming 
  •        Midterm
  • Week 9: LAB 6  Lists and Other Data Structures to Store Data
  • Week10: LAB 7  Functions and Their Use in a Program / File Input/Output
  • Week 12:     Lab Final Exam

Assesment 

 Assessment Method     No       Percentage
 Midterm Exam . . . . . . .   1     . . . . .  35%  
 Final Exam. . . . . . . . . . .  1      . . . . .  45%  
 Lab Work +Lab Exam . .  7+1 . . . . .  20%

Policy on makeups: 

For eligibility to take a makeup exam, the student should bring (submit) a doctor's report within 3 working days of the missed exam. You will have only one make-up for midterm or final exams only. Make-up will be organized after final exam period and will cover all the materials covered during the semester.

Attendance to lectures: 

Attendance will be taken in every lecture but will not be graded.
Attendance to labs: There is no makeup for labs. For a missed lab session, lab grade for that session will be taken as zero. If a student does not attend more than two lab sessions, his/her overall lab grade will be taken as zero.

Policy on cheating and plagiarism: 

Any student caught cheating in exams or in any other graded course work will automatically fail from the course and may be sent to the disciplinary committee at the discretion of the instructor.
Policy on NG grades: NG grade will be given in case of Missing Midterm and Final without official excuse.

Contribution of course to ABET criterion 5

Credit Hours for:

Mathematics & Basic Science : 0 Engineering Sciences and Design : 4 General Education : 0

Relationship of the course to program outcomes

The course has been designed to contribute to the following program outcomes:
  • 1.  an ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics
  • 6.  an ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions

Prepared by:

Assist. Prof. Dr. Cem ERGÜN Assoc. Prof. Dr Adnan ACAN