CIS*2750 Software Systems Development and Integration
Skills and knowledge students should have prior to beginning the course:
CIS*2430: Even though the bulk of assignment programming is in (procedural) C, the GUI toolkit is object-oriented, and Python can be used in OO fashion.
CIS*2520: A great deal of data manipulation is done using C strings, arrays, arrays of arrays, structs, arrays of structs, structs with array elements, and pointers.
Ability to plan and schedule your work: The assignments are intentionally too large and complex to be successfully completed at the last minute. This course is 0.75 credits for a reason! The main cause for students to fail this course is because they don't take the several learning curves and the programming effort seriously, and wait till too late to start the assignments, or they don't keep doing sufficient incremental work from day to day. Because the assignments build up in layers, it is hard to recover from getting a late start on A1.
Course Topics:
Advanced Programming Concepts
Programming style
Advanced programming concepts in C
libraries, identifying and debugging errors, profiling and optimization, advanced I/O operations (file and record I/O)
Graphical user interface (GUI) design
Software Tools
Scripting languages: Python, Perl, shell (bash)
GUI toolkit: Tkinter
Regular expressions
Lex and YACC
XML
An Introduction to the Use of Databases
SQL and MySQL
Software Development as a Profession
Standards
Software life cycle
Intellectual property and free software
Course Format:
Lecture format: YES
Online materials location and format: CourseLink and instructor's website
Lab or tutorial format and expectations: Weekly lab sessions conducted by TAs
reinforce concepts covered in lectures
teach additional skills needed for assignments
provide help with assignments
Method of evaluation:
Number of Assignments: 4 (each building on the previous) plus tiny “A0” to exercise assignment submission protocol
A1 and A2 are coded in C, and are tested with an automated marking program at the function level
A3 and A4 are coded in Python 3, with the Tkinter GUI toolkit
Number of Graded Labs: none
Number of Quizzes: none
Formal Midterm: TWO
Course project: no
Final Exam: YES
Group work: not permitted
Mostly programming assignments: YES
Written documents: only a software structure chart in conjunction with A3
Clickers: optional, worth up to 10% of course grade if it helps you, but you can still achieve 100% without clicking