2017 Programming I

Font size  SML

Register update notification mail Add to favorite lecture list
Academic unit or major
Undergraduate major in Mathematical and Computing Science
Wakita Ken  Mori Ryuhei  Masuhara Hidehiko 
Class Format
Lecture / Exercise     
Media-enhanced courses
Day/Period(Room No.)
Mon7-8(W833)  Tue5-6(W833)  Fri5-6(W833)  
Course number
Academic year
Offered quarter
Syllabus updated
Lecture notes updated
Language used
Access Index

Course description and aims

The course is a continuation of MCS.T204 (Introduction to Computer Science) and offers intermediate-level of programming techniques. We focus on programming methodology. Through programming projects, students will have the chance to tackle problems of analysis of the domain demand, identification of technical obstacles, and choice of appropriate implementation techniques.

Student learning outcomes

At the end of this course, students will be able to:
1) effectively use modern programming environment that covers the automated build system, compiler, testing tools, and software repositories,
2) comprehend that concept of states and structure and implement stateful systems,
3) build medium-scale software.


Programming, Software development, Scala, Testing

Competencies that will be developed

Specialist skills Intercultural skills Communication skills Critical thinking skills Practical and/or problem-solving skills

Class flow

The course is comprised of lectures and software development exercises. Students must complete individual and group project assignments.

Course schedule/Required learning

  Course schedule Required learning
Class 1 Program, Compiler, Executables Learn various execution models of programs.
Class 2 Unit test, Test-driven development Learn the concept of unit testing and test-driven development.
Class 3 Debugging Further learn about test-driven development and apply TDD to debugging.
Class 4 Numerical data representation Understand digital representations of numbers.
Class 5 States and variables Learn modeling the system in terms of state transition and a methodology to form the system by combining variables.
Class 6 Design recipe for stateful programs Learn a methodology to design and program a stateful system
Class 7 Stateful programming
Class 8 Compound data structures Combination of state variables forms compound data.
Class 9 Objects and Classes Objects and classes are abstraction of the compound data structure.
Class 10 Exception Handling Exception handling
Class 11 Final Project: Introduction Starting from this week, students tackle on a mid-scale software development project. On the first week, students are given a framework code of the projects.
Class 12 Final Project: Extending the data representation On the second week of the final project, we extends the data representation of the system.
Class 13 Final Project: Extending functionalities On the third week of the final project, we extend the functionality of the system. Students are to form small groups to discuss features, design, obstacles, and solve issues of adding features to the system collaboratively.
Class 14 Final Project: I/O, Data exchange The fourth week of the final project deals with adding I/O features to the system.
Class 15 Wrap-up



Reference books, course materials, etc.

Pointers to all materials used in class will be made accessible via GitHub.

Assessment criteria and methods

The grade will be based on your abilities
1) to use various development tools, including build system and test system,
2) to analyze the requirement of small-scale projects, and
3) to program and complete the projects.
The course scores are based on quiz (30%) and exercise problems (70%).

Related courses

  • MCS.T204 : Introduction to Computer Science

Prerequisites (i.e., required knowledge, skills, courses, etc.)

Successful completion of MCS.T204 (Introduction to Computer Science) is prerequisite.

Page Top